mongodb.conf bind_ip = 127.0.0.1不起作用,但0.0.0.0起作用
我不明白在bind_ip
中bind_ip
是什么。 我可以通过bind_ip = 0.0.0.0
从桌面到EC2机器进行远程连接,但无法使其与bind_ip = 127.0.0.1
。
请解释一下bind_ip是什么,为什么它对0.0.0.0
而不是对127.0.0.1
。
有关mongodb文档的参考:
bind_ip
默认:所有接口。
设置这个选项来configurationmongod进程或者mongos进程来绑定和监听这个地址上的应用程序的连接。 您可以将mongod或mongos实例附加到任何接口; 但是,如果将进程附加到可公开访问的接口,请执行适当的身份validation或防火墙限制,以保护数据库的完整性。
您可以连接一个逗号分隔值列表,以将mongod绑定到多个IP地址。
将您的计算机绑定到EC2上的127.0.0.1
时,将无法访问您的计算机。 这不是一个错误,这是由networking接口绑定的原因。
127.0.0.1
将仅绑定到回送接口(因此您只能在本地访问),而0.0.0.0
将绑定到所有可用的networking接口。
这就是为什么当你将它绑定到0.0.0.0
(因为它现在通过互联网可用),而不是通过127.0.0.1
你可以访问EC2上的mongodb。
对于本地服务器(如WAMP或本地mongodb服务器),看起来不会有所不同,但是对于这种情况,您还应该为本地服务器绑定到0.0.0.0
,这样可以使它们在所有networking接口上都可用(所以它如果没有防火墙的话,对于知道你的IP的人可能是公开的)
请在这里阅读有关服务器故障的类似问题 。
到处写着你必须像这样绑定他们
bindIp : 127.0.0.1,192.168.0.50
但它不起作用。
它是如何工作的 ,在3.2.0版本中是
bindIp : [127.0.0.1,192.168.0.50]
所以尝试在[]中添加您的ips
例如:
# network interfaces net: port: 27017 bindIp : [127.0.0.1,0.0.0.0]
但0.0.0.0打开。 虽然这对TESTING是可以的,但对于生产你应该知道这个设置的安全含义!
对于查询这个答案的人来说,将mongoDB绑定到0.0.0.0应该是你有史以来最糟糕的举动。
请阅读以下文章 ,并确保无论何时您决定公开您的(和您的客户)数据,请考虑以下事项:
- 你有额外的防火墙规则来决定谁或什么可以
访问您的服务 - 了解在使用亚马逊EC2时,如果允许“内部”stream量应该被认为是相同的,把它放开,你并不孤单在亚马逊
- 你的服务密码是否被保护? 什么样的authentication? 数据是以明文forms提交还是使用
encryption - 你使用默认的数据库名称,还是复制粘贴的例子?