Can';t从RoboMongo访问托管在Google云VM中的MongoDB实例

Can';t从RoboMongo访问托管在Google云VM中的MongoDB实例,mongodb,google-app-engine,google-cloud-storage,robo3t,Mongodb,Google App Engine,Google Cloud Storage,Robo3t,我已经创建了一个项目,并使用“单击部署”部署了MEAN stack。当我访问/3000时,我确实看到来自服务器的平均页面。我还可以通过ssh连接到那台机器,查看那里的所有内容。我可以通过这种方式访问MongoDB实例 我还创建了一个单独的VM,在那里我自己安装了Node.JS和MongoDB。两者的工作方式相似 我的问题是-我不能从本地RoboMongo实例访问任何一台机器,也不能从本地shell访问它们。我在aws世界遇到了类似的问题,解决方案是创建安全组来允许mongodb端口(27017)

我已经创建了一个项目,并使用“单击部署”部署了MEAN stack。当我访问/3000时,我确实看到来自服务器的平均页面。我还可以通过ssh连接到那台机器,查看那里的所有内容。我可以通过这种方式访问MongoDB实例

我还创建了一个单独的VM,在那里我自己安装了Node.JS和MongoDB。两者的工作方式相似

我的问题是-我不能从本地RoboMongo实例访问任何一台机器,也不能从本地shell访问它们。我在aws世界遇到了类似的问题,解决方案是创建安全组来允许mongodb端口(27017)。所以我尝试了一下,在“网络”下添加了“防火墙规则”,并允许所有传入流量使用该端口-->如下所示

来自外部的mongodb通信 源范围: 0.0.0.0/0 允许的协议或端口: tcp:27017 但问题仍然存在,我无法从robomongo或本地shell访问mongodb实例


有什么想法吗?

我建议您通过运行以下命令检查您的MongoDB是否正在侦听端口27017:

sudo netstat -nap | grep 27017
我还建议您尝试关闭VM上的IP表,并尝试访问可能有规则阻止您的访问。
还需要检查的一件事是使用db.serverCmdLineOpts()的bindIp。

您应该在启动mongod时配置bind\u ip=0.0.0.0 如 mongod.conf如下所示

fork = true
bind_ip = 0.0.0.0
port = 27017
quiet = true
dbpath = /srv/mongodb
logpath = /var/log/mongodb/mongod.log
logappend = true
journal = true
并以此命令启动mongo

sudo mongod --config /etc/mongodb.conf

现在,您可以通过外部IP连接Google cloud VM上的Mongo,端口号为27017。

似乎不知何故,特定的端口并未公开。我无法连接到端口:连接被拒绝-当端口在网络中打开时-firewallMongoDB确实正在侦听27017。让我检查一下IPTables