在 Debian 系统中,iptables 规则默认不会自动保存,重启后会丢失。要永久保存,常见做法有以下几种(按推荐程度):
iptables-persistent(最推荐)这是 Debian 官方推荐的方式,简单可靠。
sudo apt update
sudo apt install iptables-persistent
安装过程中会询问是否保存当前规则:
如果之后修改了规则,需要手动保存:
sudo netfilter-persistent save
或者:
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
重启后自动加载:
sudo netfilter-persistent reload
iptables-save / iptables-restore(手动方式)sudo iptables-save > /etc/iptables.rules
sudo iptables-restore < /etc/iptables.rules
在 /etc/network/if-pre-up.d/ 中写脚本,例如:
sudo nano /etc/network/if-pre-up.d/iptables
内容:
#!/bin/bash
iptables-restore < /etc/iptables.rules
赋予执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
⚠️ 这种方式不如 iptables-persistent 稳定。
Debian 10 以后默认使用 nftables,但 iptables 命令仍然存在(作为兼容层)。
查看是否使用 nftables:
sudo update-alternatives --config iptables
如果你使用的是 nftables,推荐直接保存 nftables 规则:
sudo nft list ruleset > /etc/nftables.conf
重启前:
sudo iptables -L
重启后:
sudo iptables -L
规则仍然存在即成功。
| 场景 | 推荐方式 |
|---|---|
| Debian 稳定版 | ✅ iptables-persistent |
| 临时保存 | iptables-save |
| 新系统 / 高性能 | nftables |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你最合适的一套配置示例。