我有一台运行Ubuntu 12.04 LTS和MongoDB实例(服务正在运行并且可以在本地连接)的Linode服务器,我无法从外部来源连接到该服务器。
我已经将这两个规则添加到我的IP表中,其中是我要连接FROM的服务器(如本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
而且我在IP表中看到了一条规则,该规则允许27017与之间的连接,但是当我尝试使用以下命令从连接到我的mongo数据库时:
mongo databasedomain/databasename -u username -p password
我收到此错误:
`2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused 2014-07-22T23:54:03.094+0000 Error: couldn’t connect to server < ip address
:27017 (databaseserverip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed`
任何帮助都非常感谢!!!!谢谢!!!
感谢大家的帮助!
原来这是一个iptable冲突。有两个规则列出了打开的端口(导致端口关闭)。
但是,aka的另一条评论和manu2013的另一条评论是我遇到的问题,即使不是因为冲突。
所以!始终记住要编辑/etc/mongod.conf文件并进行设置bind_ip = 0.0.0.0,以便与外部建立连接。
/etc/mongod.conf
bind_ip = 0.0.0.0
另外,请确保您的iptable中没有针对mongo想要的端口的冲突规则(请参阅mongodb网站上的链接以正确设置iptables)。