在 Ubuntu 上让 iptables 规则开机自动生效,常见做法有以下几种(按推荐程度):
netfilter-persistentsudo apt update
sudo apt install iptables-persistent
安装过程中会询问是否保存当前规则,选 Yes。
sudo netfilter-persistent save
规则会保存到:
/etc/iptables/rules.v4(IPv4)/etc/iptables/rules.v6(IPv6)sudo systemctl enable netfilter-persistent
✅ 重启后规则自动生效
sudo iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables
内容:
#!/bin/sh
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.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/iptables.rules
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl enable iptables-restore
iptables 实际是 nft 的兼容层nft:sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables
✅ 最简单可靠:
sudo apt install iptables-persistent
sudo netfilter-persistent save
如果你愿意,可以告诉我:
我可以给你更精确的配置。