温馨提示×

Debian iptables如何迁移

小樊
42
2026-08-25 14:36:55
栏目: 智能运维

在 Debian 系统中迁移 iptables 规则,常见场景有:

  • 从一台 Debian 服务器迁移到另一台
  • 从 iptables 迁移到 nftables(Debian 10+ 默认)
  • 系统重装后恢复规则

下面按最常用、最稳妥的方式说明。


一、迁移 iptables 规则(传统方式)

1️⃣ 导出当前 iptables 规则

源服务器执行:

iptables-save > /root/iptables.rules

如果你还用了 IPv6:

ip6tables-save > /root/ip6tables.rules

建议检查文件内容:

cat /root/iptables.rules

2️⃣ 拷贝规则到目标服务器

scp /root/iptables.rules root@目标服务器:/root/
scp /root/ip6tables.rules root@目标服务器:/root/

3️⃣ 在目标服务器导入规则

iptables-restore < /root/iptables.rules
ip6tables-restore < /root/ip6tables.rules

✅ 立即生效,但 重启后会丢失


二、让规则开机自动生效(非常重要)

Debian 9 及以前(sysvinit / 早期 systemd)

方法 1:使用 iptables-persistent(推荐)

apt update
apt install iptables-persistent

安装时会自动提示保存当前规则
之后规则保存在:

/etc/iptables/rules.v4
/etc/iptables/rules.v6

✅ 系统重启自动加载

迁移时直接替换这两个文件即可


Debian 10/11/12(systemd)

方法 1(推荐):iptables-persistent

apt install iptables-persistent

然后:

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

方法 2:用 systemd 服务(不推荐,维护成本高)

可以写自定义 service,一般没必要。


三、从 iptables 迁移到 nftables(Debian 10+)

Debian 新版默认使用 nftables,但仍兼容 iptables 命令(通过 iptables-nft)。

1️⃣ 查看当前模式

update-alternatives --display iptables

2️⃣ 使用官方迁移工具(推荐)

apt install iptables-nftables-compat

然后:

iptables-restore-translate -f /root/iptables.rules > rules.nft

加载 nftables:

nft -f rules.nft

✅ 这是 Debian 官方推荐方式


3️⃣ 启用 nftables 开机启动

systemctl enable nftables

规则存放位置:

/etc/nftables.conf

四、迁移检查清单(强烈建议)

迁移后确认:

iptables -L -n -v
nft list ruleset        # 如果用的是 nftables

检查:

  • 是否端口被误封
  • SSH(22)是否还通
  • Docker / K8s 规则是否丢失

五、常见坑总结

问题 说明
重启规则丢失 没用 iptables-persistent
Docker 规则消失 Docker 会重写 iptables
nftables + iptables 混用 建议统一
规则顺序错误 iptables 是顺序匹配

六、我可以进一步帮你

你可以直接告诉我:

  1. Debian 版本(cat /etc/debian_version
  2. 是否使用 Docker / K8s
  3. 服务器迁移 还是 系统升级
  4. 是否想迁移到 nftables

我可以给你 精确的一步到位方案

0