运行 firewall-cmd --list-all 可一次性查看当前默认活跃区域的全部规则,包括开放端口、启用服务、绑定接口、icmp 设置等;加 --zone=xxx 查指定 zone,加 --permanent 查永久配置,用 --get-active-zones 和 --get-default-zone 可确认 zone 状态。

直接运行 firewall-cmd --list-all 就能一次性看到当前活跃区域的全部规则详情,包括开放端口、允许的服务、绑定接口、ICMP 设置等。
查看当前默认区域的完整规则
这条命令默认作用于当前默认 zone(通常是 public),输出内容清晰直观:
- 显示该区域是否处于 active 状态
- 列出所有已开放的端口(如
80/tcp、22/udp) - 列出已启用的服务(如
ssh、dhcpv6-client) - 显示绑定的网络接口(如
eth0)和来源 IP 段 - 包含 masquerade、forward、icmp-block-inversion 等高级设置
查看指定区域的完整规则
如果想查其他 zone(比如 internal 或 dmz),加上 --zone=xxx 参数即可:
firewall-cmd --zone=internal --list-allfirewall-cmd --zone=dmz --list-all
注意:只有当该 zone 已被激活(即绑定了接口或源地址)或明确设置了默认 zone,才能查到有效配置。
区分运行时与永久配置
firewalld 分为 runtime(立即生效)和 permanent(重启后仍保留)两套配置。上面命令查的是 runtime 状态。若要对比永久配置,加 --permanent 参数:
-
firewall-cmd --permanent --list-all—— 查永久默认 zone 规则 -
firewall-cmd --permanent --zone=public --list-all—— 查永久 public zone 规则
两者输出结构一致,但内容可能不同。例如刚添加的端口若没加 --permanent,在永久配置里就不会出现。
确认当前活跃 zone 和默认 zone
有时你不确定规则到底应用在哪个 zone 上,可先查基础信息:
-
firewall-cmd --get-active-zones—— 查哪些 zone 正在使用、绑定了哪些接口 -
firewall-cmd --get-default-zone—— 查默认 zone 名称(多数是public)
再结合 --list-all 命令,就能精准定位规则归属。











