在 CentOS 上备份和恢复 iptables 规则,常见做法如下(适用于 CentOS 6,以及 CentOS 7/8 在 未使用 firewalld 的场景)。
iptables-save(推荐 ✅)iptables-save > /root/iptables.backup.rules
✅ 示例输出:
# Generated by iptables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --dport 22 -j ACCEPT
COMMIT
service 命令(CentOS 6)service iptables save
默认保存到:
/etc/sysconfig/iptables
iptables-restoreiptables-restore < /root/iptables.backup.rules
✅ 立即生效
❌ 重启后丢失(除非再次保存)
iptables-restore < /root/iptables.backup.rules
service iptables save
或加入启动脚本:
echo "iptables-restore < /root/iptables.backup.rules" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
保存规则:
service iptables save
规则文件位置:
/etc/sysconfig/iptables
不要直接改 iptables,而是:
firewall-cmd --list-all
firewall-cmd --runtime-to-permanent
# 备份
iptables-save > /backup/iptables_$(date +%F).rules
# 恢复
iptables-restore < /backup/iptables_2026-01-21.rules
| 场景 | 建议 |
|---|---|
| 临时备份 | iptables-save |
| 长期保存 | /etc/sysconfig/iptables |
| 自动化部署 | 版本控制 iptables 规则文件 |
| 新系统 | 优先考虑 firewalld |
如果你告诉我 CentOS 版本 和 是否使用 firewalld,我可以给你一套最合适的备份方案。