我想配置mongodb以允许来自外部IP地址的远程连接,例如66.31.123.123
。
将0.0.0.0
设置为bind_ip
有效,但我希望限制性更强,只允许某些IP地址连接。我将66.31.123.123
附加到bind_ip
列表,但是mongodb会在下面抛出错误:
mongodb.conf
bind_ip = 127.0.0.1,66.31.123.123
port = 27017
auth = true
mongodb日志
Mon Dec 9 03:25:59 [initandlisten] ERROR: listen(): bind() failed errno:99 Cannot assign requested address for socket: 66.31.123.123:27017
问题:为什么添加外部IP不起作用?如果使用auth=true
,这是否足以让0.0.0.0
作为bind_ip
使用? mongodb将在Meteor.js应用程序中进行本地访问。
答案 0 :(得分:17)
正如guido所说,bind_ip用于mongo服务器自己的IP地址。
Auth是一个好主意但只依靠auth打开你的暴力攻击。
您可以bind_ip = 0.0.0.0
并使用防火墙来阻止到端口27017的所有传入连接,除非来自66.31.123.123。
另一个问题是您的流星服务器与您的mongo服务器的接近程度 - 是私有网络还是公共网络。如果是公开的,您应该recompile mongodb to support SSL,或者tunnel your mongodb connection through SSH。
如果您决定隧道,请将bind_ip绑定到127.0.0.1并忽略传入的27017。