我不知道mongodb中的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 docs的参考:bind_ip
默认值:所有接口。
设置此选项可配置mongod或mongos进程绑定到此地址上的应用程序并侦听其连接。您可以在任何接口上附加mongod或mongos示例;但是,如果将进程附加到可公开访问的接口,则应实现适当的身份验证或防火墙限制,以保护数据库的完整性。
您可以连接逗号分隔值列表,以将mongod绑定到多个IP地址。
5条答案
按热度按时间bejyjqdl1#
到处都写着要这样绑
但这行不通
工作原理,在3.2.0版本中是
所以请尝试在[ ]中添加您的IPS
示例:
然而0.0.0.0打开了这个东西。虽然这对于测试是可以的,但是对于生产,您应该知道此设置的安全含义!
s4n0splo2#
在将您的服务器绑定到www.example.com之前0.0.0.0,请清楚这些更改的安全影响:您的服务器将公开暴露给整个互联网上的所有IP。确保在服务器上启用身份验证!
当您将机器绑定到EC2上的
127.0.0.1
时,您无法访问您的机器。这不是一个bug,它是由网络接口绑定引起的。127.0.0.1
将只绑定到环回接口(因此您只能在本地访问它),而0.0.0.0
将把它绑定到所有可用的网络接口。这就是为什么当你将mongodb绑定到
0.0.0.0
(因为它现在可以通过互联网访问)而不是通过127.0.0.1
时,你可以在EC2上访问mongodb。对于本地服务器(如WAMP或本地mongodb服务器),它们看起来不会有什么不同,但在这种情况下,您还应该考虑绑定到本地服务器的
0.0.0.0
可能会使它们在所有网络接口上可用(因此,如果没有防火墙,它可能会对知道您的IP的人公开!)在similar question on Server Fault上阅读。
mznpcxlj3#
任何查找这个答案的人都应该清楚,将mongoDB绑定到0.0.0.0可能是你有史以来最糟糕的举动。
请仔细阅读下面的article,并确保每当你决定公开你(和你的客户)的数据时,你会考虑以下几点:
访问您的服务
加密
fivyi3re4#
对于连接到本地Mongo数据库安装(开发环境),我发现下面的3个步骤过程要容易得多-而且它工作得很好。
来源:https://www.thepolyglotdeveloper.com/2019/01/getting-started-mongodb-docker-container-deployment/
bpzcxfmw5#
当设置为
bindIp: 127.0.0.1
(或bindIp: localhost
)时,mongod
仅侦听环回IP,这意味着您只能从运行mongod
的本地计算机连接。当设置为
bindIp: 0.0.0.0
(或bindIpAll: true
)时,mongod
侦听所有IP,这意味着您可以从任何远程计算机连接-除非连接被防火墙阻止。注意,
localhost
是一个别名,它可以解析为IPv4地址127.0.0.1
或IPv6地址::1
,请参阅Can 't connect to MongoDB 6.0 Server localized using Nodejs driver