firewalld通过区域(zone)按网络信任等级管理策略,核心操作包括查看活跃/默认/全部区域、切换绑定接口、查询区域规则及重载永久配置。

firewalld 通过“区域(zone)”实现按网络信任等级划分策略,管理区域是配置防火墙的核心起点。区域决定哪些服务、端口、源地址被允许,不同区域对应不同默认行为,不需要手动写底层规则。
查看当前区域状态
先确认系统正在使用哪些区域和接口:
- 列出所有已激活的区域及绑定的网卡:firewall-cmd --get-active-zones
- 查看默认区域名称(新接口自动归属于此):firewall-cmd --get-default-zone
- 列出全部预置区域(如 public、internal、trusted、dmz 等):firewall-cmd --get-zones
切换与绑定区域
区域可按接口或源 IP 应用,临时调整用于测试,永久设置才在重启后生效:
- 将网卡 ens33 临时加入 home 区域:firewall-cmd --zone=home --change-interface=ens33
- 永久设置默认区域为 internal:firewall-cmd --set-default-zone=internal --permanent
- 永久把 ens33 绑定到 dmz 区域:firewall-cmd --permanent --zone=dmz --add-interface=ens33
查看与验证区域规则
每个区域有独立配置,需指定 zone 名称才能查准内容:
- 查看 public 区域完整配置(含服务、端口、富规则等):firewall-cmd --zone=public --list-all
- 只看该区域启用的服务:firewall-cmd --zone=public --list-services
- 只看该区域开放的端口:firewall-cmd --zone=public --list-ports
区域配置生效要点
所有带 --permanent 的操作都只是写入配置文件,必须重载才能应用:
- 执行 firewall-cmd --reload 后,永久配置才真正加载进运行时
- 不带 --permanent 的命令(如 --add-service)仅临时生效,重启 firewalld 或系统即丢失
- 修改默认区域或接口绑定后,务必 reload;否则旧规则仍起作用


















