在 Ubuntu 上,iptables 本身没有“快照”命令,但可以通过保存规则文件 + 版本管理来实现“快照”效果。下面给你几种常用、实用的做法。
iptables-save > iptables-snapshot-$(date +%F-%T).rules
例如:
iptables-save > iptables-snapshot-2026-01-15-10:30:00.rules
iptables-restore < iptables-snapshot-2026-01-15-10:30:00.rules
✅ 这是最标准、最可靠的方式
iptables-save > snapshot.rules
ip6tables-save >> snapshot.rules
恢复时分别执行:
iptables-restore < snapshot.rules
ip6tables-restore < snapshot.rules
Ubuntu 默认使用 netfilter-persistent
sudo netfilter-persistent save
规则会保存到:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
cp /etc/iptables/rules.v4 /backup/rules.v4.$(date +%F)
cd /etc/iptables
git init
git add .
git commit -m "iptables snapshot 2026-01-15"
以后随时:
git checkout rules.v4
✅ 适合服务器频繁变更防火墙规则
检查:
nft list ruleset
快照:
nft list ruleset > nft-snapshot.rules
恢复:
nft -f nft-snapshot.rules
#!/bin/bash
DATE=$(date +%F-%H%M%S)
iptables-save > /root/iptables-$DATE.rules
ip6tables-save > /root/ip6tables-$DATE.rules
echo "Snapshot saved: $DATE"
chmod +x ipt-snapshot.sh
./ipt-snapshot.sh
| 方式 | 适用场景 |
|---|---|
iptables-save |
最通用 |
netfilter-persistent |
Ubuntu 官方 |
| git | 多版本管理 |
| nftables | 新系统 |
如果你愿意,可以告诉我:
我可以帮你写一个自动快照 + 清理旧快照的完整方案。