インフラストラクチャ:同じLAN上のDMZ=に3つの仮想マシンIPがあります。それらの1つがmongodbを実行しています。OS:RHEL
Mongod.conf:bindIPオプションをコメントアウトしました
しかし、それでもmongodbはLAN上の他のサーバーからの接続を要求していません。 Telnetが他の2つのサーバーから失敗する
netstatの出力は
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 24251/./mongod
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1508/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1621/master
tcp6 0 0 :::22 :::* LISTEN 1508/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1621/master
27017ポートの外部アドレスも "::: *"のようになるはずだと思います。ここでは問題を捕捉できません。助けてください!
ファイアウォールを実行している場合は、ポート27017、MongoDBのデフォルトポートでの接続を許可します。
実行しているRHELのバージョンがわからないため、以下のコマンドが変更される可能性があります。
1。すべての接続がポート27017でMongoDBに接続できます
iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
2。特定のIPのみがポート27017でMongoDBに接続できます
iptables -A INPUT -s <ip-address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d <ip-address> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
For Eg:
iptables -A INPUT -s 192.168.6.100 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 192.168.6.101 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
また、個人的にはコメントバインドオプションは良い考えではないと思います。
代わりに、以下を/etc/Mongod.confで使用できます。
# Listen to local and LAN interfaces.
bind_ip = 127.0.0.1,x.x.x.x, x.x.x.x
その後
service mongod restart
上記の回答とともに@Sachin Singh
/ etc/hostsファイルを確認してIPアドレスとホスト名を追加してください。実行しているRHELのバージョンがわからないため、以下のコマンドが変更される可能性があります。
例:
192.168.6.100 hostname.domainname.com hostname