4

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

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

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

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

任何想法 ?

4

2 回答 2

1

您应该在启动 mongod 时配置 bind_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 以 27017 作为端口连接 Google Cloud VM 上的 Mongo。

于 2015-01-29T15:34:44.663 回答
0

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

sudo netstat -nap | grep 27017

我还建议您尝试关闭 VM 上的 IP 表并尝试访问,也许规则阻止了您的访问。还要检查的一件事是您的bindIp使用db.serverCmdLineOpts()

于 2014-11-13T23:23:23.607 回答