以下内容来自deepseek
在CentOS 7中,你可以使用防火墙的“富规则”(Rich Rule)来精确定义,只允许特定的IP地址访问某个端口。这是一种常见且安全的管理方式。
下面的表格汇总了实现此需求的核心命令和步骤,你可以根据你的具体情况进行调整。
步骤 操作 命令示例 (以IP 192.168.1.100 和端口 3306 为例)
1 添加富规则 sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="3306" protocol="tcp" accept'
2 重新加载防火墙 sudo firewall-cmd --reload
3 验证规则是否生效 sudo firewall-cmd --list-rich-rules
命令参数说明:
--permanent:表示这条规则是永久生效的,即使防火墙重启也会保留。如果不加此参数,规则在重启后会失效。
rule family="ipv4":指定规则针对IPv4地址。如果你的源IP是IPv6,则需要改为 ipv6。
source address="192.168.1.100":指定允许访问的源IP地址。
port port="3306" protocol="tcp":指定开放的端口号(如3306)和协议(TCP或UDP)。
accept:对匹配此规则的行为执行接受,即允许通过。
如何删除这条规则
如果你需要撤销这条规则,可以使用几乎相同的命令,只需将 --add-rich-rule 替换为 --remove-rich-rule:
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload
查看所有富规则
为了确认当前系统里所有已配置的复杂规则,你可以使用:
sudo firewall-cmd --list-rich-rules
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情