无法从第二个虚拟机实例

时间:2016-05-20 12:58:30

标签: mongodb ubuntu google-compute-engine

我在两台Ubuntu 16虚拟机上安装了MongoDb,这两台虚拟机都托管在Google Cloud的计算引擎上的同一网络上。连接实例具有内部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进行测试,没有结果。

在任一实例上运行mongo都会正确连接到它自己的mongodb服务,因此它们已经安装,运行和运行。

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

在数据库实例上,编辑了/etc/mongod.conf处的配置文件,因此bind_ip也具有所述实例的内部IP。 (https://gyazo.com/20fb669506e7e67ef49fdcf9af6df144) 我也尝试过0.0.0.0用于测试目的,没有结果。

从连接实例运行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已关闭。 (https://gyazo.com/7ccd905db5b9946d616176b9ab75479c

我完全失去了,请帮助我吗? :其中

2 个答案:

答案 0 :(得分:1)

您的mongodb服务器仅侦听本地主机地址(127.0.0.1),而不是INADDR_ANY(在|----------| udp tunnel |----------| | Server |----------------------| Client | | 10.8.0.1==========tcp=============10.8.0.2 | | |----------------------| | |----------| |----------| 中显示为*:27017)。

Like this question,您似乎需要在netstat中设置bind_ip = 0.0.0.0

答案 1 :(得分:0)

感谢E. Anderson的链接,我设法解决了这个问题;突然把它变成了副本。但是,这个答案和链接中的答案都不是正确的"。

bind_ip=0.0.0.0中设置mongod.conf的解决方案相当危险,此外,它不起作用。但是,杀死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"`也适合我。我没有得到它,但是,它肯定能够手动给它一个IP地址来听。