升级前需区分iptables或firewalld:iptables用iptables-save > file备份、iptables-restore
升级系统前备份防火墙策略,核心是区分使用
iptables还是firewalld—— 两者机制不同,备份与恢复方式也不同。升级过程可能重置或覆盖配置文件,所以必须提前保存运行时规则 + 永久配置,并在升级后验证并重新加载。iptables 防火墙的备份与恢复
适用于 CentOS 7 之前、Debian/Ubuntu 默认未启用 firewalld 的场景。
备份当前全部规则(含 raw/mangle/nat/filter 表):
sudo iptables-save > /backup/iptables-$(date +%Y%m%d).rules若只备份 IPv4 规则,路径可设为
/etc/iptables/rules.v4;IPv6 则用iptables-save -t ip6tables > /etc/iptables/rules.v6。同时备份服务脚本依赖的持久化文件(如存在):
sudo cp /etc/sysconfig/iptables /backup/iptables-sysconfig-$(date +%Y%m%d)升级后恢复:
- 确保
iptables-services或对应包已安装(如iptables-persistent在 Debian/Ubuntu)。- 执行恢复:
sudo iptables-restore- 若需开机自动生效:
- RHEL/CentOS:将规则写入
/etc/sysconfig/iptables,再执行sudo systemctl enable iptables(如有服务)。- Debian/Ubuntu:安装
iptables-persistent后运行sudo netfilter-persistent save。firewalld 防火墙的备份与恢复
RHEL/CentOS 7+、Fedora、新版 Rocky/AlmaLinux 默认使用 firewalld。
先同步运行时配置到永久配置(关键!否则
--runtime-to-permanent不生效):sudo firewall-cmd --runtime-to-permanent完整备份配置目录(含 zones、services、icmptypes 等):
sudo cp -r /etc/firewalld /backup/firewalld-$(date +%Y%m%d)升级后恢复:
- 替换配置目录:
sudo rm -rf /etc/firewalld sudo cp -r /backup/firewalld-20260729 /etc/firewalld- 重启服务并重载:
sudo systemctl restart firewalld sudo firewall-cmd --reload- 验证是否生效:
sudo firewall-cmd --list-all升级过程中需注意的关键点
- 不要跳过
--runtime-to-permanent:firewalld 的运行时规则默认不落盘,直接备份/etc/firewalld目录而没执行该命令,会导致备份为空或过期。- 检查服务状态:升级后确认
firewalld或iptables服务已启用并开机自启(sudo systemctl is-enabled firewalld)。- 避免规则冲突:
iptables-restore默认清空现有规则;若想追加,加-n参数(iptables-restore -n),但需自行评估顺序逻辑。- 测试再上线:恢复后建议用
curl、telnet或nc测试关键端口连通性,尤其 SSH 和业务端口。不复杂但容易忽略。












