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

直接运行 firewall-cmd --list-all 就能一次性看到当前默认区域的全部生效规则,包括开放端口、允许的服务、绑定的网卡、ICMP 设置等。它反映的是 runtime(运行时)状态,也就是此刻真正起作用的配置。
确认当前活跃的区域
规则不是全局生效的,而是绑定在具体 zone 上。先搞清流量实际走哪个区域:
- firewall-cmd --get-active-zones:列出所有已激活的 zone 及其绑定的接口或源地址(比如 eth0 → public)
- firewall-cmd --get-default-zone:查默认 zone 名称(多数是 public),但注意:默认 zone 不一定就是当前生效的 zone
查看指定区域的完整规则
如果知道某个 zone(如 internal、dmz)被绑定了,但不确定它的规则细节,加 --zone=xxx 参数即可:
- firewall-cmd --zone=internal --list-all
- firewall-cmd --zone=dmz --list-all
只有该 zone 已被激活(绑了接口或源 IP),命令才会返回有效内容;否则可能为空或提示 zone 未使用。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
区分运行时与永久配置
firewalld 有两套配置:runtime(立即生效,重启丢失)和 permanent(需 reload 才生效,重启保留)。--list-all 默认查 runtime。要对比永久设置,加 --permanent:
- firewall-cmd --permanent --list-all:查永久默认 zone 规则
- firewall-cmd --permanent --zone=public --list-all:查永久 public zone 规则
例如刚执行 firewall-cmd --add-port=8080/tcp,它只出现在 runtime 的 --list-all 输出里;若没加 --permanent,永久配置中就不会有这一条。
快速定位规则归属的小技巧
当规则看起来“不生效”时,往往是因为区域没对上。建议按顺序执行这三步:
- 先跑 firewall-cmd --get-active-zones,看流量实际进哪个 zone
- 再用 firewall-cmd --zone=xxx --list-all 查那个 zone 的 runtime 规则
- 最后用 firewall-cmd --permanent --zone=xxx --list-all 对比,确认是否漏了 --permanent 或忘了 --reload










