Centos 7.2上的防火墙配置

Phy*_*ist 3 mongodb centos7 firewalld robo3t

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

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

firewall-cmd --list-all
Run Code Online (Sandbox Code Playgroud)

结果:

结果:

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

当我使用以下命令查询端口时:

firewall-cmd --query-port=27017/tcp
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢。

小智 7

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

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

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

 sudo firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

然后,我不得不在/etc/mongodb.conf中更改net配置条目。另请参见:https ://docs.mongodb.com/manual/reference/configuration-options/#net-options

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

net:
  port: 27017
  bindIpAll: true
Run Code Online (Sandbox Code Playgroud)

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

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

默认值为:

net:
  port: 27017
  bindIp: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这意味着mongodb仅侦听localhost


Phy*_*ist 4

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

执行,

ss -plnt
Run Code Online (Sandbox Code Playgroud)

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

套接字统计

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

bindIp: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

重新启动 mongodb 服务,一切应该都会好起来。