4

我已经在我的CentOS 7.2 VPS 上安装了MongoDB ,并尝试从我的客户端通过 Robomongo 访问数据库。但是,当我尝试从27017端口连接服务器时,出现“网络无法访问”错误。

我已经在服务器上启用了firewalld并为27017端口添加了一个例外。

firewall-cmd --list-all

结果:

结果:

在我永久添加异常并通过 --reload 重新加载防火墙后,我得到了这个结果。

当我使用以下方式查询端口时:

firewall-cmd --query-port=27017/tcp

我从系统中得到“”。但是,当我尝试通过 Robomongo 连接或通过端口检查器服务(如http://ping.eu/port-chk/ )查询端口时,我得到了否定的结果。

你对我的案子有什么建议吗?

谢谢你。

4

2 回答 2

13

我有同样的问题,但在 Centos 7 Vm 中运行 mongod。

首先我必须用firewall-cmd打开mongodb端口:

 sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent

 sudo firewall-cmd --reload

然后我不得不更改 /etc/mongodb.conf 中的网络配置条目 另请参阅:https ://docs.mongodb.com/manual/reference/configuration-options/#net-options

我删除了 bindIp: Entry 并添加了 bindIpAll: true

net:
  port: 27017
  bindIpAll: true

使用 bindIp:根据您需要输入的文档:

mongos 和 mongod 应该侦听客户端连接的 IP 地址和/或完整的 Unix 域套接字路径。您可以将 mongos 和 mongod 附加到任何接口。要绑定到多个地址,请输入逗号分隔值列表

默认值为:

net:
  port: 27017
  bindIp: 127.0.0.1

这意味着mongodb只听localhost

于 2018-03-12T20:57:55.757 回答
4

通过执行以下步骤,我能够在 VPS 支持团队的帮助下解决该问题:

执行,

ss -plnt

查看套接字统计信息。我的输出如下:

套接字统计

从结果中可以看出,mongod进程仅在 127.0.0.1 上监听27017端口。为了配置该绑定,请编辑/etc/目录中的mongod.conf并注释掉该行

bindIp: 127.0.0.1

重新启动 mongodb 服务,一切都应该没问题。

于 2016-06-03T06:34:13.580 回答