温馨提示×

iptables在Ubuntu怎么保存

小樊
47
2026-08-22 10:48:27
栏目: 智能运维

Ubuntu 里,iptables 规则默认不会自动保存,重启后就会丢失。要用下面几种方式之一来保存和恢复。


方法一:使用 iptables-save / iptables-restore(推荐,通用)

1️⃣ 保存规则

sudo iptables-save > /etc/iptables/rules.v4

如果是 IPv6:

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

如果 /etc/iptables/ 目录不存在,先创建:

sudo mkdir -p /etc/iptables

2️⃣ 开机自动恢复规则

创建或编辑 systemd 服务(Ubuntu 16.04+ 通用):

sudo nano /etc/systemd/system/iptables-restore.service

内容如下:

[Unit]
Description=Restore iptables rules
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/iptables/rules.v4
ExecStart=/sbin/ip6tables-restore /etc/iptables/rules.v6
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl daemon-reload
sudo systemctl enable iptables-restore
sudo systemctl start iptables-restore

方法二:使用 netfilter-persistent(Ubuntu 官方推荐 ✅)

1️⃣ 安装

sudo apt update
sudo apt install iptables-persistent

安装过程中会提示是否保存当前规则,选 Yes


2️⃣ 保存规则

sudo netfilter-persistent save

规则会保存到:

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

3️⃣ 重启后自动生效

sudo netfilter-persistent reload

✅ 开机自动加载,无需额外配置


方法三:Ubuntu 旧版本(不推荐)

以前用 iptables-save + /etc/network/interfacespost-up,现在基本不用了。


✅ 推荐总结

场景 推荐方式
Ubuntu 16.04+ iptables-persistent
手动控制 iptables-save / restore
脚本/自动化 systemd 方式

如果你愿意,可以告诉我:

  • Ubuntu 版本(lsb_release -a
  • 是否用 IPv6
  • 是否是服务器 / 云主机

我可以给你最合适的一套完整配置

0