2012-12-28 76 views
1

我试图连接到远程mongodb服务,无法弄清楚如何使其工作。远程mongod正在Ubuntu盒子上运行。我是一个非常新手的unix用户,但我相当确定问题在于我没有打开防火墙,可能是iptables,我试过了mongodb文档中的命令,但仍然没有成功。无法通过mongo shell连接到远程mongodb

mongodb.conf相关规则

bind_ip = 0.0.0.0 
port = 27017 
auth = false 

的netstat -A

Proto Recv-Q Send-Q Local Address   Foreign Address   State 
tcp  0  0 *:28017     *:*      LISTEN 
tcp  0  0 *:27017     *:*      LISTEN 

的iptables -L -n

target  prot opt source    destination 
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0 
ACCEPT  all -- 0.0.0.0/0   0.0.0.0/0   state RELATED,ESTABLISHED 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:22 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:80 
DROP  all -- 0.0.0.0/0   0.0.0.0/0 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:27017 state NEW,ESTABLISHED 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:28017 state NEW,ESTABLISHED 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 
ACCEPT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp spt:27017 state ESTABLISHED 

的iptables命令,在MongoDB的文档文件执行 - http://docs.mongodb.org/manual/tutorial/configure-linux-iptables-firewall/#patterns

这是我试过的:

浏览器:http://xx.xx.xx.xx:27017/没有回应。

browser:http://xx.xx.xx.xx:28017/ no response。

browser:http://www.hostname.com:27017/ no reponse。

浏览器:http://www.hostname.com:28017/无反应。

mongo.exe XX.XX.XX.XX:27017(远程)couldn't connect to server xx.xx.xx.xx

蒙戈XX.XX.XX.XX:27017(从本地主机)正确连接

蒙戈www.hostname.com :27017(从本地主机)连接正确

事实上,它连接在承载mongodb的服务器上的本地主机,即使我指定的IP地址,使我认为它必须是一个防火墙问题。有任何想法吗?

回答

4

iptables按照它们出现的顺序准确读入规则。 您现在有DROP优先于您的mongodb端口的ACCEPT

洗牌,设置了iptables和在您的特定脚本中的线齐平,并在重新阅读他们回来。

如果您还没有保存您的防火墙还没有,删除DROP规则并重新添加它,它会将其转移到列表中并解决您的问题。

+0

美丽,非常感谢。有了这么多不熟悉的技术,Ubuntu,Mongo,Iptables,Netstat,我甚至都不知道从哪里开始= p。 – Nucleon

相关问题