无法从第二个VM实例连接到Google Compute Engine上的MongoDB服务器

我将MongoDb安装在两台Ubuntu 16虚拟机上,这两台虚拟机都托pipe在Google云计算引擎上的同一networking上。 连接实例具有内部IP 10.132.0.2,数据库实例具有10.132.0.3。 ( https://gyazo.com/59f9086591a1d6673e8194a50fff51e1 )

我打开了tcp 27017作为我想连接的实例。 我使用gcloud控制台命令添加了这个。 ( https://gyazo.com/0d158aa735c6967e278fac63d598721f )我也尝试打开tcp:1-65535; udp:1-65535为testing目的,没有结果。

在任一实例上运行mongo都会正确地连接到它自己的mongodb服务,所以它们被安装,运行和运行。

在数据库实例上, netstat -a | grep :27017 netstat -a | grep :27017显示它正在正确聆听。 ( https://gyazo.com/0f4fb3c49a51f6886ff4ccb2d44a132a )

在数据库实例上,编辑/etc/mongod.conf中的configuration文件被编辑,所以bind_ip也具有所述实例的内部IP。 ( https://gyazo.com/20fb669506e7e67ef49fdcf9af6df144 )我也尝试0.0.0.0用于testing目的,没有结果。

从连接实例运行mongo 10.132.0.3导致Failed to connect to 10.132.0.3:27017, reason: errno:111 Connection refused 。 ( https://gyazo.com/9e5aec732e3f09cbfa62a4d78df3620f )

在连接的实例上运行nmap -p 27017 10.132.0.3显示端口27017已closures。 ( https://gyazo.com/7ccd905db5b9946d616176b9ab75479c )

我彻底失败了,请帮我一下? <

您的mongodb服务器只能监听本地主机地址(127.0.0.1),而不是INADDR_ANY(在netstat显示为*:27017 )。

像这个问题一样,你需要在你的mongod.conf设置bind_ip = 0.0.0.0

感谢E.安德森的链接,我设法解决了这个问题。 突然把这个变成了重复。 但是,这个答案和链接中的答案都不是“正确的”。

mongod.conf设置bind_ip=0.0.0.0的解决方案是相当危险的,此外,它不起作用。 但是,查杀mongodb服务,然后手动运行mongod --bind_ip 10.132.0.3竟然让我的两个实例连接起来。

这意味着javadude在另一个线程中的回复说: "But I still dont get it. Why this did not work when I modified mongo.conf文件来接受bind_ip 0.0.0.0” "But I still dont get it. Why this did not work when I modified mongo.conf “也适用于我。 我不明白,但是,它肯定是手动给它一个IP地址来收听。