firewalld通过区域管理网络信任,支持服务与端口配置,使用--permanent添加永久规则并需--reload生效,确保防火墙策略正确加载。

Linux系统中管理防火墙规则主要通过firewalld工具实现,尤其在CentOS、RHEL和Fedora等主流发行版中广泛使用。firewalld提供动态管理防火墙的能力,支持网络区域、服务和端口配置,相比iptables更加灵活易用。
firewalld基本概念
firewalld使用“区域(zone)”来管理不同网络环境下的信任级别,每个区域可定义允许的服务、端口和协议。常见区域包括:
- public:默认区域,适用于公共网络,仅开放明确允许的服务
- internal:内部网络,信任度较高,通常用于家庭或企业内网
- trusted:完全信任的网络,允许所有流量通过
- dmz:用于对外提供服务的隔离区,如Web服务器
服务(service)是预定义的端口和协议组合,例如http服务对应80/tcp,ssh对应22/tcp。
查看和设置默认区域
使用以下命令查看当前激活的区域:
firewall-cmd --get-default-zone修改默认区域:
firewall-cmd --set-default-zone=internal查看当前运行时区域及其接口归属:
firewall-cmd --get-active-zones添加服务或端口规则
若需允许某个服务(如HTTP),可在指定区域中启用:
firewall-cmd --zone=public --add-service=http --permanent临时生效(重启后失效)可省略--permanent参数:
firewall-cmd --zone=public --add-service=http开放特定端口(如8080/tcp):
支持范围端口,例如开放5000-5100:
firewall-cmd --zone=public --add-port=5000-5100/udp --permanent重载与验证规则
添加--permanent参数的规则需重载防火墙才能生效:
firewall-cmd --reload检查某区域已启用的服务:
firewall-cmd --zone=public --list-services查看开放的端口:
firewall-cmd --zone=public --list-ports确认规则是否生效,可通过telnet或nc测试端口连通性。
移除规则
删除已添加的服务或端口:
firewall-cmd --zone=public --remove-service=http --permanent firewall-cmd --zone=public --remove-port=8080/tcp --permanent执行后同样需要--reload使更改生效。
基本上就这些。掌握区域划分、服务与端口管理,就能高效控制Linux系统的网络访问权限。不复杂但容易忽略的是永久规则必须配合--reload才真正持久化。建议配置完成后始终检查列表状态,确保预期规则已加载。










