在 Debian 系统中迁移 iptables 规则,常见场景有:
下面按最常用、最稳妥的方式说明。
在源服务器执行:
iptables-save > /root/iptables.rules
如果你还用了 IPv6:
ip6tables-save > /root/ip6tables.rules
建议检查文件内容:
cat /root/iptables.rules
scp /root/iptables.rules root@目标服务器:/root/
scp /root/ip6tables.rules root@目标服务器:/root/
iptables-restore < /root/iptables.rules
ip6tables-restore < /root/ip6tables.rules
✅ 立即生效,但 重启后会丢失
apt update
apt install iptables-persistent
安装时会自动提示保存当前规则
之后规则保存在:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
✅ 系统重启自动加载
✅ 迁移时直接替换这两个文件即可
apt install iptables-persistent
然后:
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
可以写自定义 service,一般没必要。
Debian 新版默认使用 nftables,但仍兼容 iptables 命令(通过 iptables-nft)。
update-alternatives --display iptables
apt install iptables-nftables-compat
然后:
iptables-restore-translate -f /root/iptables.rules > rules.nft
加载 nftables:
nft -f rules.nft
✅ 这是 Debian 官方推荐方式
systemctl enable nftables
规则存放位置:
/etc/nftables.conf
迁移后确认:
iptables -L -n -v
nft list ruleset # 如果用的是 nftables
检查:
| 问题 | 说明 |
|---|---|
| 重启规则丢失 | 没用 iptables-persistent |
| Docker 规则消失 | Docker 会重写 iptables |
| nftables + iptables 混用 | 建议统一 |
| 规则顺序错误 | iptables 是顺序匹配 |
你可以直接告诉我:
cat /etc/debian_version)我可以给你 精确的一步到位方案 ✅