CentOS 7 及更早版本默认使用 firewalld 作为防火墙管理工具,而 CentOS 8 及以上版本则默认使用 nftables,无论是哪种防火墙,关闭 111 端口(通常用于网络文件系统 NFS 的 RPC 服务)需要谨慎操作,以免影响系统依赖该端口的网络服务,以下是详细的操作步骤和注意事项。

检查当前防火墙状态
在修改防火墙规则前,首先需要确认当前防火墙的运行状态,对于使用 firewalld 的系统(如 CentOS 7),可以通过以下命令检查:
systemctl status firewalld
对于使用 nftables 的系统(如 CentOS 8+),则需检查:
systemctl status nftables
如果防火墙未运行,建议先启动它以确保系统安全性,再进行端口关闭操作。
使用 firewalld 关闭 111 端口
若系统使用 firewalld,可以通过以下步骤关闭 111 端口:

- 查看当前是否已开放 111 端口:
firewall-cmd --list-ports
- 如果端口已开放,直接移除规则:
firewall-cmd --permanent --remove-port=111/tcp firewall-cmd --permanent --remove-port=111/udp
- 重新加载防火墙使配置生效:
firewall-cmd --reload
--permanent参数表示规则永久生效,若需临时关闭,可省略该参数。
使用 nftables 关闭 111 端口
对于 CentOS 8 及以上系统,nftables 的配置稍有不同:
- 编辑 nftables 规则文件:
vi /etc/sysconfig/nftables.conf
- 在文件中找到或添加以下规则,阻止 111 端口的访问:
table inet filter { chain input { tcp dport 111 drop udp dport 111 drop } } - 保存文件后重启 nftables 服务:
systemctl restart nftables
验证端口是否已关闭
无论使用哪种防火墙,关闭端口后都需要验证规则是否生效,可以通过以下命令测试:
ss -tulnp | grep 111
如果输出为空或显示端口被拒绝,则表示 111 端口已成功关闭,也可以使用 telnet 或 nc 工具从外部测试端口连通性。

注意事项
- 服务依赖性:111 端口是 NFS 服务的 RPC 端口,关闭后可能导致 NFS 客户端无法挂载远程共享目录,如果系统不使用 NFS,可安全关闭;若需保留 NFS 服务,建议仅限制特定 IP 访问而非完全关闭。
- 安全性:关闭不必要的端口是提升系统安全性的有效手段,但需避免误操作导致关键服务中断,建议在修改前备份防火墙配置。
- SELinux 影响:若系统启用了 SELinux,可能需要调整相关策略,否则防火墙规则可能被拦截,可通过
getsebool -a | grep nfs查看相关布尔值并调整。
相关问答 FAQs
Q1:关闭 111 端口后,如何重新开放?
A1:若需重新开放 111 端口,可通过以下操作恢复:
- 对于 firewalld:
firewall-cmd --permanent --add-port=111/tcp firewall-cmd --permanent --add-port=111/udp firewall-cmd --reload
- 对于 nftables:
编辑
/etc/sysconfig/nftables.conf文件,删除或注释掉对应的drop规则,然后重启nftables服务。
Q2:如何仅允许特定 IP 访问 111 端口?
A2:可通过防火墙的 IP 限制功能实现,在 firewalld 中使用 --add-rich-rule 参数:
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.100 accept port protocol=tcp port=111" firewall-cmd --reload
此规则仅允许 IP 为 168.1.100 的设备访问 111 端口,其他 IP 会被拒绝。