iptables-persistent 在启动时不加载规则

iptables-persistent 在启动时不加载规则

我有一些想要永久使用的 iptables 规则。因此,我安装了 iptables-persistent 并将规则保存在 /etc/iptables/rules.v4 和 /etc/iptables/rules.v6 中。

我还打开了 iptables-persistent 服务的自动启动

$ sudo update-rc.d iptables-persistent defaults
$ sudo update-rc.d iptables-persistent enable 2345

但系统启动后iptables规则仍然为空

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

当我手动启动 iptables-persistent 时,一切顺利

$ sudo service iptables-persistent start
 * Loading iptables rules...
 * IPv4...
 * IPv6...

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source                destination         
DROP       all  --  domain.ru             anywhere            
DROP       all  --  srv246-131.domain.ru  anywhere
etc ...

我错过了什么?

答案1

问题是,iptables-persistent 在网络初始化之前启动时调用 iptables-restore。因此此时您无法进行 dns 查找。

您必须使用 IP 地址而不是域名,或者稍后通过 rc.local 加载与域相关的规则。

相关内容