为什么 netfilter-persistent 不生效?
因为只安装 netfilter-persistent
没用,必须要另外安装 iptables-persistent
。
而安装 iptables-persistent
时会自动安装 netfilter-persistent
。
所以如果你想用 netfilter-persistent
命令,则运行以下命令安装即可:
sudo apt install iptables-persitent
怎么保存 iptables 规则?
方案 1: netfilter-persistent
sudo apt install iptables-persitent
sudo netfilter-persitent save
此时规则会被保存到 /etc/iptables/rules.v4
中,重启后会自动加载。
方案 2: iptables-save
# 保存 iptables 规则
sudo iptables-save > /etc/iptables/rules
# 读取规则并写入 iptables
sudo iptables-restore < /etc/iptables/rule
手动操作比较麻烦,这里可以利用 /etc/network/interfaces 配置文件,实现网卡加载后自动载入 iptables 配置:编辑 /etc/network/interfaces
,最最后添加一些内容:
pre-up iptables-restore < /etc/iptables/rules.v4
但是 ubuntu 20 利用 /etc/network/interfaces 的方法已经玩不转了,所以这个方法并不推荐使用。
方案 3: 自己实现一个 systemd 的 service
开个玩笑,哈哈哈,自己写一套脚本,其实最终就是 netfilter-persistent,直接用方案 1 吧。