Мне было легко подключиться к моему удаленному серверу mysql в AWS с помощью sequelpro , однако я пытаюсь сделать то же самое с mongodb.
Я попытался настроить туннель SSH через командную строку так:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Я также попробовал с заменой хоста с IP-адресом
идея состоит в том, чтобы перенаправить все соединения mongodb через порт 9999 на соединение на хосте через порт 27101 .. однако, когда я запускаю команду:
mongo --host localhost --port 9999
соединение не устанавливается, я получаю это:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed
если я бегу, sudo netstat -plnt
я получаю следующее (что выглядит по порядку):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4242/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1342/httpd2-prefork
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2552/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2505/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11719/mongod
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16561/redis-server
Есть идеи, что я делаю не так?
обновление: так выглядит последняя функциональная команда (кредит переходит к kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 root@remote.server.com
где -fN
команда заставить эту команду работать в фоновом режиме
-L
кажется, противоречит справочной странице ssh:-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
там явно сказано, чтоhost
это хост удаленного сервера ... вы используете его для локального?Я выполнил несколько настроек на своем Ubuntu 18 Vagrant, чтобы успешно подключить MongoDB удаленно с помощью Robo 3T GUI. Я объяснил в следующих шагах.
Внутри оболочки Монго введите следующую команду, чтобы создать нового пользователя с правами администратора.
По умолчанию mongodb настроен на разрешение соединений только с локального хоста (IP 127.0.0.1). Нам нужно разрешить удаленные подключения с любого IP-адреса. Следующее изменение должно быть сделано только на вашем сервере разработки. Откройте файл etc / mongod.conf и внесите следующие изменения.
Также в том же параметре безопасности uncomment файла mongod.conf и добавьте параметр авторизации, как показано ниже.
Сохраните и выйдите из файла mongod.conf и перезапустите сервер mongodb.
Загрузите и установите Robo 3T GUI tool.
В графическом интерфейсе Robo 3T в настройках подключения необходимо внести несколько изменений, как показано на снимках экрана ниже.
Введите имя пользователя и пароль базы данных mongodb admin, которые вы создали ранее.
Здесь я ввел свои учетные данные SSH Ubuntu 18 Vagrant box.
Сохраните изменения и нажмите значок подключения, чтобы увидеть, работает ли подключение нормально.
источник