2016-10-31 22 views
1

these instrunctionsを使用して設定したMongoDB 3.2.10を実行しているAmazaon AWS EC2インスタンスがあります。私はEC2インスタンスにPuttyを入れ、Puttyシェルにmongo --port 27017を呼び出してMongoDBシェルに入ります。そのため、mongodデーモンはそのマシンでうまく動作しています。SSH経由でAWS EC2インスタンス上で動作するMongoDBに接続できません

自分のマシンからEC2インスタンスにSSHトンネルをセットアップしました。私のマシンのポート12345をリモートEC2インスタンスの27017にマッピングしました。しかし、私はmongo --port 12345を呼び出すことによって、私のローカルのWindowsマシンからのMongoDBに接続しようとすると、モンゴシェルクライアントが分程度とリターンのためにハングアップ:背景として

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 

、私はまた、MySQLを実行しているアマゾンRDSを持っており、 EC2インスタンスのポート3306とEC2インスタンスのポート3306へのローカルマシン上のSSHトンネルマッピングポート6789を参照し、mysql -P 6789 -u user_name -p経由でMySQLデータベースに接続する際に問題がないので、MongoDBに固有の問題です。接続用として

、私は1に設定パテのkeepaliveオプションを持って、そしてトンネルが確実に接続されているので、次のPowerShellスクリプトのテストでは、両方のSSHトンネルポートのためにtrueを返します:

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

これは、mongodが聞くことができるIPアドレスを指定します。デフォルトではlocalhostのみを受け付けます

+0

'/ etc/mongod.conf'の' bindIp:127.0.0.1#すべてのインターフェースでlistenするコメント 'を既にコメントしています。 。 – Jthorpe

+0

bindIpに '0.0.0.0'を設定しようとしましたが、問題は解決しません。 – Jthorpe

関連する問題