先执行 sudo firewall-cmd --runtime-to-permanent 将运行时规则持久化至 xml 文件,再用 rsync -a /etc/firewalld/ /backup/firewalld_$(date +%y%m%d_%h%m)/ 完整备份配置目录及所有子项。

导出并备份 firewalld 的全部安全规则配置,核心是确保运行时规则已持久化,再完整拷贝配置目录。firewalld 的规则分两层:内存中生效的 runtime 规则,和写入磁盘的 permanent 配置(XML 文件)。只导出当前列表或部分命令输出,无法还原完整行为。
先同步运行时规则到永久配置
很多操作(如 firewall-cmd --add-port)默认只影响 runtime。不执行这步,备份的 XML 文件里就没有新规则:
- 运行
sudo firewall-cmd --runtime-to-permanent,把当前所有生效规则写入/etc/firewalld/zones/下的 XML 文件 - 该命令会覆盖已有 zone 文件,但不会删除未被引用的服务或 rich rules 配置
- 建议执行前先确认当前规则:
sudo firewall-cmd --list-all
完整备份整个 firewalld 配置目录
firewalld 的全部策略由以下文件共同定义:zone 配置、自定义服务、rich rules、ICMP 类型、ipsets 等。只备份 zones 不够:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 用
rsync完整复制(保留权限与 SELinux 上下文):sudo rsync -a /etc/firewalld/ /backup/firewalld_$(date +%Y%m%d_%H%M)/ - 或用
cp -r(适合简单场景):sudo cp -r /etc/firewalld /backup/firewalld_$(date +%s) - 备份内容包括:
zones/、services/、ipsets/、icmptypes/、richrules/和主配置firewalld.conf
补充导出可读性高的摘要信息(非替代,仅辅助验证)
这些命令输出是文本快照,不能用于恢复,但便于人工核对或存档记录:
- 所有活动 zone 及其完整规则:
sudo firewall-cmd --list-all-zones > /backup/firewalld-summary-$(date +%F).txt - 当前启用的服务列表:
sudo firewall-cmd --list-services - 开放的端口和协议:
sudo firewall-cmd --list-ports - 富规则详情:
sudo firewall-cmd --list-rich-rules
验证备份是否可用
真正有效的备份,必须能还原出相同行为。建议定期抽检:
- 在测试机上替换
/etc/firewalld目录,然后执行sudo firewall-cmd --reload - 检查关键服务是否仍可访问,
firewall-cmd --list-all输出是否与备份前一致 - 注意:reload 不中断已有连接,适合生产环境验证










