Centos 7.2上的Firewalld配置

4
我已在我的CentOS 7.2 VPS上安装了MongoDB,并尝试通过客户端的Robomongo访问数据库。然而,当我尝试从27017端口连接服务器时,出现“网络不可达”的错误。
我已启用了服务器上的firewalld,并为27017端口添加了一个例外。
firewall-cmd --list-all

结果:

结果:

我已经永久添加了例外并通过 --reload 重新加载 firewalld,得到了这个结果。

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

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

系统显示我可以连接,但是当我尝试通过Robomongo进行连接或者使用像http://ping.eu/port-chk/这样的端口检查服务时,结果都是负面的。

您对我的情况有什么建议吗?

谢谢。


1
mongod进程使用哪个IP地址? - profesor79
本地地址:127.0.0.1:27017 外部地址:0.0.0.0:* - Phyticist
你对此有任何建议吗? - Phyticist
2个回答

15

我遇到了同样的问题,但是是在运行于CentOS 7虚拟机中的mongod。

首先,我需要使用firewall-cmd打开mongodb端口:

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

 sudo firewall-cmd --reload

然后我必须更改/etc/mongodb.conf文件中的net配置项。 参见: https://docs.mongodb.com/manual/reference/configuration-options/#net-options

我删除了bindIp条目,并添加了bindIpAll: true。

net:
  port: 27017
  bindIpAll: true

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

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

默认值为:

net:
  port: 27017
  bindIp: 127.0.0.1

这意味着 MongoDB 只监听本地主机


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

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

Socket Statistics

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

bindIp: 127.0.0.1

重启 MongoDB 服务,一切应该就没问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接