man netfilter-persistent |grep start
netfilter-persistent start
start Calls all plugins with the start argument, causing them to load their rules into netfilter.
Plugins must implement the start flush and save arguments and must not rely on additional arguments for other functionality.
我的家里有一条规则/etc/iptables/rules.v4
。
cat /etc/iptables/rules.v4 |grep porn
-A INPUT -m string --string "porn" --algo bm --to 65535 -j DROP
规则尚未加载,无法获取任何结果sudo iptables -L |grep porn
。netfilter-persistent 服务已激活。
sudo systemctl status netfilter-persistent |grep Active
Active: active (exited) since Sat 2019-09-07 11:39:12 HKT; 15min ago
尝试加载它。
sudo systemctl start netfilter-persistent
检查规则是否已加载。
sudo iptables -L|grep porn
还没加载,用 试试iptables-restore
。
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables -L|grep porn
DROP all -- anywhere anywhere STRING match "porn" ALGO name bm TO 65535
为什么sudo systemctl start netfilter-persistent
不能像手册所说的那样将规则加载到 netfilter 中?
ls /usr/share/netfilter-persistent/plugins.d
15-ip4tables 25-ip6tables
netfilter-persistent
服务在启动时自动启动。
sudo systemctl enable netfilter-persistent
启动 netfilter-persistent 服务后没有任何相关的日志输出。
答案1
netfilter-persistent
是执行插件加载netfilter规则的框架,iptables规则的插件叫iptables-persistent
,你装了吗?
您可以通过检查插件目录的内容来检查正在运行哪些插件netfilter-persistent
,/usr/share/netfilter-persistent/plugins.d
。