原创

firewall-cmd向指定IP开放端口

温馨提示:
本文最后更新于 2026年01月08日,已超过 72 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

firewall-cmd命令介绍

firewall-cmd是Linux系统中firewalld防火墙服务的命令行管理工具,用户配置和管理防火墙规则,支持动态更新规则而无需重启服务。

核心功能

区域管理

● 查看当前区域:firewall-cmd --get-active-zones
● 查看默认区域:firewall-cmd -get-default-zone
● 修改默认区域:firewall-cmd --set-default-zone=public

端口管理

● 开放端口:firewall-cmd --zone=public --add-port=8848/tcp --permanent
● 查看开放端口:firewall-cmd --zone=public --list-ports
● 删除端口:firewall-cmd --zone=public --remove-port=8848/tcp --permanent

服务管理

● 开放服务:firewall-cmd --zone=public --add-service=http --permanent
● 查看服务:firewall-cmd --zone=public --list-services

富规则(Rich Rules)

● 允许指定IP访问端口:firewall-cmd --permanent --zone=public --add-rich-rules='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8848" accept'
● 查看富规则:firewall-cmd --zone=public --list-rich-rules

配置生效

● 重载配置:firewall-cmd --reload
● 查看配置:firewall-cmd --list-all

常用参数

--permanent:永久生效(需配合--reload)
--zone:指定防火墙区域
--add-port/--remove-port:添加/删除端口
--add-service/--remove-service:添加/删除服务
--add-rich-rule/--remove-rich-rule:添加/删除富规则

使用示例

添加规则

# 允许指定IP访问指定端口(示例:允许192.168.1.100访问8848/tcp)
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8848" accept'

# 允许IP段访问(示例:允许192.168.1.0/24网段访问8848/tcp)
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8848" accept'

# 重载规则使配置生效
firewall-cmd --reload

# 查看已添加的富规则
firewall-cmd --zone=public --list-rich-rules

参数说明:

--permanent:永久生效(不加则重启后失效)
--zone=public:指定防火墙区域(通常使用public)
source address:源IP地址,支持单个IP或CIDR网段
port protocol:协议类型(tcp/udp)
port:目标端口号
accept:允许访问

删除规则

firewall-cmd --permanent --zone=public \
--remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8848" accept'

firewall-cmd --reload

验证

执行firewall-cmd --zone=public --list-rich-rules查看规则是否生效,或从指定IP测试端口连通性。

正文到此结束