MongoDB接続ポートにクライアントから接続できない問題
MongoDB接続ポートに対し、クライアントから接続できない問題が発生。 原因を検証する。
以下のリンクが参考になりそう。 blog.asial.co.jp
クライアントからpingでの接続確認
- 以下のコマンドを実行。
$ ping 192.168.0.***
- 以下の応答が返るので、サーバと物理的には接続されている。
PING 192.168.0.*** (192.168.0.***) 56(84) bytes of data. 64 bytes from 192.168.0.***: icmp_seq=1 ttl=64 time=94.9 ms
クライアントからtelnetでの接続確認
- 以下のコマンドを実行。
$ telnet 192.168.0.*** 27017
- MongoDB接続ポートに接続できない。
Trying 192.168.0.***... telnet: connect to address 192.168.0.***: Connection refused
サーバでポートの状態を確認
- 以下のコマンドを実行。
netstat -ant | grep 27017
- MongoDB接続ポートはLISTENになっているが、ローカル(127.0.0.1)アクセスしか受け付けていないことが判明。
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
mongod.confの変更
- 調べたところ、mongod.confを変更する必要があったことが判明。
- mongod.confの編集。
$ sudo vi /etc/mongod.conf
- 以下のように編集。
# Listen to local interface only. Comment out to listen on all interfaces. #bind_ip=127.0.0.1 ←コメントアウト
- MongoDBを再起動。
$ sudo mongod -f /etc/mongod.conf --shutdown $ sudo mongod -f /etc/mongod.conf
- 再度、ポートの状態を確認。
netstat -ant | grep 27017
- MongoDB接続ポートが全てのIPアドレスに対しLISTENになっている。
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
MongoDB接続ポートに対しクライアントから再度接続すると、無事接続に成功。