在 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 netfilter-persistent save
如果你用的是老版本 Ubuntu:
sudo nano /etc/rc.local
在 exit 0 前加入:
iptables-restore < /etc/iptables.rules
并赋予执行权限:
sudo chmod +x /etc/rc.local
创建服务文件:
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.v4
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl enable iptables-restore
sudo iptables -L -n -v
| 方法 | 推荐度 |
|---|---|
| netfilter-persistent | ⭐⭐⭐⭐⭐ |
| systemd 自定义服务 | ⭐⭐⭐⭐ |
| rc.local | ⭐⭐ |
如果你告诉我 Ubuntu 版本 或 用的是 nftables 还是 iptables,我可以给你更精确的步骤。