我无法理解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地址。
答案 0 :(得分:46)
无处不在,你必须像这样绑定它们
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会打开。虽然这对测试来说没问题,但对于生产,您应该知道此设置的安全隐患!
答案 1 :(得分:39)
在将服务器绑定到0.0.0.0之前,请明确这些更改的安全隐患:您的服务器将公开暴露给整个互联网上的所有IP。请务必在您的服务器上启用身份验证!
将您的计算机绑定到EC2上的127.0.0.1
时,无法访问该计算机。这不是一个错误,它是由网络接口绑定引起的。
127.0.0.1
只会绑定到loopback接口(因此您只能在本地访问它),而0.0.0.0
会将其绑定到所有可用的网络接口。
这就是为什么当你将mongodb绑定到0.0.0.0
(因为它现在可通过互联网获取)而不是127.0.0.1
时,你可以在EC2上访问你的mongodb。
对于本地服务器(如WAMP或本地mongodb服务器),它们看起来与您不同,但对于这种情况,您还应该为本地服务器绑定到0.0.0.0
可能使它们全部可用网络接口(如果没有防火墙,那么知道你的IP的人可能会公开!)
答案 2 :(得分:12)
任何看过这个答案的人都应该清楚,将你的mongoDB绑定到0.0.0.0可能是你有史以来最糟糕的举动。
请阅读以下article并确保无论何时决定公开您的(和您的客户)数据,您都会考虑以下因素:
答案 3 :(得分:1)
对于链接到本地Mongo db安装(开发环境),我发现以下3个步骤的过程要容易得多-并且有效。
docker run -d -p 27017-27019:27017-27019 --name mongodb mongo
docker exec -it mongodb bash
蒙哥(瞧-您在与蒙哥民警的连接中)
来源:https://www.thepolyglotdeveloper.com/2019/01/getting-started-mongodb-docker-container-deployment/