在 Debian 中,iptables 规则默认是内存中的,重启后会丢失。要实现持久化,常见做法有以下几种(推荐前两种):
iptables-persistent(推荐,最简单)sudo apt update
sudo apt install iptables-persistent
安装过程中会询问是否保存当前规则,选 Yes。
sudo netfilter-persistent save
或
sudo /etc/init.d/netfilter-persistent save
规则会保存到:
/etc/iptables/rules.v4 # IPv4
/etc/iptables/rules.v6 # IPv6
系统启动时会自动加载。
sudo netfilter-persistent reload
iptables-save / iptables-restoresudo iptables-save > /etc/iptables/rules.v4
编辑 /etc/rc.local(需可执行):
iptables-restore < /etc/iptables/rules.v4
或使用 systemd:
sudo systemctl enable netfilter-persistent
ufw(如果用户层防火墙)如果你用的是 ufw:
sudo ufw enable
规则自动持久化。
sudo iptables -L -n -v
✅ 新手 / 服务器:用 iptables-persistent
✅ 自定义脚本:用 iptables-save + rc.local
❌ 不建议手动写复杂启动逻辑
如果你用的是 Debian 10+ / 11 / 12,iptables-persistent 是最稳定的方案。需要我帮你写具体规则也可以。