Centos 7.2 上的防火墙配置

Firewalld Configuration on Centos 7.2

我已经在我的 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/ 之类的端口检查器服务查询端口时,我得到了否定结果。

您对我的案例有什么建议吗?

谢谢。

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

执行,

ss -plnt

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

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

bindIp: 127.0.0.1

重启mongodb服务,一切正常。

我遇到了同样的问题,但是 运行 mongod 在 Centos 7 Vm 中。

首先我必须用 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: 条目并添加了 bindIpAll: true

net:
  port: 27017
  bindIpAll: true

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

IP 地址and/or 完整的 Unix 域套接字路径,mongos 和 mongod 应在其上侦听客户端连接。您可以将 mongos 和 mongod 附加到任何接口。要绑定到多个地址,请输入 comma-separated 个值

的列表

默认为:

net:
  port: 27017
  bindIp: 127.0.0.1

这意味着 mongodb 只监听 localhost