【问题标题】:Can't Access MongoDB instance hosted in Google Cloud VM from RoboMongo无法从 RoboMongo 访问托管在 Google Cloud VM 中的 MongoDB 实例
【发布时间】:2015-01-08 04:52:48
【问题描述】:

我创建了一个项目并使用“点击部署”部署了 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 实例。

有什么想法吗?

【问题讨论】:

  • 似乎特定端口没有被公开。我无法连接到 > 端口 >:连接被拒绝 - 当端口在网络中打开时 - 防火墙

标签: mongodb google-app-engine google-cloud-storage robo3t


【解决方案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。

【讨论】:

    【解决方案2】:

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

    sudo netstat -nap | grep 27017
    

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

    【讨论】:

    • MongoDB 肯定在听 27017。让我检查一下 IPTables
    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2018-02-09
    • 2019-06-11
    相关资源
    最近更新 更多