在 Debian 系统中,iptables 规则本身不会自动保存,需要手动配置“开机加载规则”。下面按常见场景说明几种做法。
sudo apt update
sudo apt install iptables-persistent
安装过程中会问是否保存当前规则,选 Yes。
sudo netfilter-persistent save
或
sudo iptables-save > /etc/iptables/rules.v4
iptables-persistent 会通过 systemd 服务自动加载:
systemctl status netfilter-persistent
只要服务是 enabled,重启后会自动应用规则。
iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables
内容示例:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules
sudo chmod +x /etc/network/if-pre-up.d/iptables
创建服务文件:
sudo nano /etc/systemd/system/iptables-restore.service
内容:
[Unit]
Description=Restore iptables rules
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/iptables.rules
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl enable iptables-restore
如果你用的是 Debian 10+,默认可能使用 nftables:
sudo apt install nftables
sudo systemctl enable nftables
iptables 命令可能只是 nftables 的兼容层。
iptables -L -n -v
systemctl list-unit-files | grep -i iptables
✅ 推荐做法:
Debian + iptables-persistent(netfilter-persistent)
如果你告诉我 Debian 版本(如 11 / 12) 和 是否用 nftables,我可以给你更精确的步骤。