firewalld配置27017端口IP访问限制失效,请求排查
解决Firewalld限制27017端口仅允许指定IP访问的问题
问题根源
你当前的配置中,public 区域直接开放了 27017/tcp 端口(在ports字段可见),这条规则会允许所有IP访问该端口,优先级高于你添加的富规则,导致限制失效。另外,--get-active-zones返回空说明没有网络接口关联到public区域,你的规则可能根本没作用在实际流量上。
修复步骤
移除全局开放的27017端口规则
先删除public区域中直接开放端口的配置,避免覆盖富规则:firewall-cmd --zone=public --remove-port=27017/tcp --permanent firewall-cmd --reload确保网络接口关联到public区域
查看你的主网络接口(如eth0、ens33)所属的zone:firewall-cmd --get-zone-of-interface=eth0如果返回不是
public,将接口添加到public区域:firewall-cmd --zone=public --add-interface=eth0 --permanent firewall-cmd --reload验证规则生效
现在public区域的默认策略是default(拒绝所有未明确允许的流量),加上你已有的两条富规则,仅指定的两个IP能访问27017端口。你可以用其他机器测试:- 指定IP测试:
telnet 你的服务器IP 27017应该能连接 - 非指定IP测试:相同命令会被拒绝连接
- 指定IP测试:
补充说明
- 富规则的优先级高于普通端口/服务规则,所以只要去掉全局开放的端口,富规则就能生效
- 每次修改
--permanent配置后,必须执行firewall-cmd --reload才能让规则生效
内容的提问来源于stack exchange,提问作者crafty
相关产品推荐
相关产品推荐

