![Ubuntu 上的 iptables 规则恢复](https://linux22.com/image/1278167/Ubuntu%20%E4%B8%8A%E7%9A%84%20iptables%20%E8%A7%84%E5%88%99%E6%81%A2%E5%A4%8D.png)
我在 Ubuntu 10.04 上使用 iptables,每当我设置 iptables 规则时,它们都会在一段时间后恢复。我使用 iptables -I INPUT 或 iptables -D INPUT 设置它们,它们立即起作用,我在 iptables -L INPUT 中看到它们,但过了一会儿规则又恢复了。
我甚至导出了规则
iptables-save > /etc/firewall.conf
我甚至创建了一个脚本 /etc/network/if-up.d/iptables
#!/bin/sh
iptables-restore < /etc/firewall.conf
我甚至检查了firewall.conf,里面有我想要的规则。
那么为什么 iptables 会恢复呢?
更新:
我在 /etc/cron.daily/apf 中发现了这个
#!/bin/bash
/etc/apf/apf -f >> /dev/null 2>&1
/etc/apf/apf -s >> /dev/null 2>&1
这会刷新 iptables 规则吗?
答案1
维基页面引用了 feisty 等。可能已经过时了,但我猜它仍然有意义:
https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup这表明 NetworkManager 可能是罪魁祸首……
https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20Startup%20for%20NetworkManager然后建议如何让 NetworkManager 正常运行。
答案2
我不熟悉 apf,但很容易检查它是否是罪魁祸首。将其从 cron 中删除。
我也会做一些类似的事情grep -ri --color iptables /etc
,并检查/var/log/messages
任何/var/log/syslog
可能导致这种情况的事情。