远程服务器防火墙阻止远程 mongodb 服务器

远程服务器防火墙阻止远程 mongodb 服务器

我有一台 Ubuntu 服务器正在尝试连接到远程 MongoDB 服务器。当我尝试通过以下方法连接到远程 MongoDB 服务器时:

mongo -u user -p pass yourdb.com:27017

它返回以下错误:

2018-06-04T20:41:36.667-0400 W NETWORK  [thread1] Failed to connect 
to 35.170.208.181:27017 after 5000ms milliseconds, giving up.
2018-06-04T20:41:36.667-0400 E QUERY    [thread1] Error: couldn't 
connect to server yourdb.com:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed

/etc/mongod.conf 上的 bindIP 设置为 0.0.0.0

net:
 port: 27017
 bindIp: 0.0.0.0

当我使用时sudo iptables -L -n | grep 27017,我得到以下结果:

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp 
dpt:27017

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp 
spt:27017 state ESTABLISHED

我可以从其他服务器和我自己的本地机器访问远程数据库,因此看来这台机器上的防火墙配置不正确。

远程 MongoDB 服务器已打开其安全组端口以与该服务器交互,因此这也不是问题。

已经寻找资源好几个小时了,所以需要帮助。谢谢!

编辑

尝试使用 telnet 从服务器实例测试远程 mongo 实例,它响应如下:

telnet: Unable to connect to remote host: Connection timed out

答案1

如果对端口 27017 上的 TCP 连接是否真正打开存在疑问,那么是时候使用 TCPDUMP 实用程序了。这允许您查看实际流量以查看 TCP 握手是否完成。

使用类似语法tcpdump -ni eth0 port 27017

假设您可以通过其他端口访问服务器,则流量可能在路由器/防火墙之间被丢弃,也可能是服务器错误处理了回复。TCPDUMP 有助于解释这一点,您可以关注日志文件或其他潜在原因。

相关内容