2016-10-31 2 views
1

У меня есть экземпляр Amazaon AWS EC2 с MongoDB 3.2.10, который я настроил с помощью these instrunctions. Я могу заманить в свой экземпляр EC2 и войти в оболочку MongoDB, вызвав mongo --port 27017 в оболочке Putty, поэтому демон mongod работает на этом компьютере отлично.Невозможно подключиться к MongoDB, работающему на экземпляре AWS EC2 через SSH

Я установил туннель SSH с моей машины на экземпляр EC2, отображая порт 12345 на моей машине до 27017 на удаленном экземпляре EC2. Однако, когда я пытаюсь подключиться к MongoDB из моей локальной машине окна по телефону mongo --port 12345, клиент Монго оболочки висит примерно минуту и ​​возвращается:

connecting to: 127.0.0.1:12345/test 
2016-10-31T11:31:39.727-0700 I NETWORK [thread1] Socket recv() errno:10054 An existing connection was forcibly closed by the remote host. 127.0.0.1:12345 
2016-10-31T11:31:39.727-0700 I NETWORK [thread1] SocketException: remote: (NONE):0 error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:12345] 
2016-10-31T11:31:39.728-0700 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:12345' : 
[email protected]/mongo/shell/mongo.js:231:14 
@(connect):1:6 

exception: connect failed 

В качестве фона я также амазонка RDS работает MySQL и прослушивание порта 3306 в экземпляре EC2 и порт 6789 отображения туннеля SSH на моей локальной машине на порт 3306 на экземпляре EC2, и у меня нет проблем с подключением к базе данных MySQL через mysql -P 6789 -u user_name -p, поэтому проблема специфична для MongoDB.

Что касается подключения, у меня есть keepalive вариант замазку в значение 1, и следующий тест PowerShell скрипт возвращает верно как для SSH туннелей портов, так что туннели, безусловно, связано:

function test-connection{ 
    param($IP,$PORT) 
    $connected = $FALSE 
    $s = New-Object Net.Sockets.TcpClient 
    try{ 
     $s.Connect($IP,$PORT) 
     $connected = !!$s.connected 
    }catch{ 
     #PASS 
    }finally{ 
     $s.close() 
    } 
    $connected 
} 
test-connection "127.0.0.1" 12345 
test-connection "127.0.0.1" 6789 

ответ

0

Проверьте bindIp в вашем mongod.conf

Указывает, какие IP-адреса могут прослушивать mongod. По умолчанию он принимает только localhost

+0

Я забыл упомянуть, что я уже прокомментировал эту строку 'bindIp: 127.0.0.1 # Прослушать только локальный интерфейс, прокомментировать все интерфейсы в'/etc/mongod.conf' , – Jthorpe

+0

Я также попытался установить bindIp на '0.0.0.0', но проблема не устранена. – Jthorpe