ber*_*436 26 iptables iptables-persistent
我按照本教程在 ubuntu 12.04 上设置 IP 规则。设置时一切正常——但现在我对防火墙进行了更改,这些更改在重新启动时不会持续存在。我不明白为什么会这样。这是我如何使用 iptables-persistent 的演示。我究竟做错了什么?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
Run Code Online (Sandbox Code Playgroud)
Ste*_*day 50
iptables-persistent不能那样工作。重启iptables-persistent“服务”不会捕获iptables的当前状态并保存;它所做的只是恢复上次配置包时保存的 iptables 规则。
要配置iptables-persistent,您需要告诉它您当前的 iptables 规则集。
实现这一点的一种方法如下:
iptables-save >/etc/iptables/rules.v4
ip6tables-save >/etc/iptables/rules.v6
Run Code Online (Sandbox Code Playgroud)
或者,等效地,该iptables-persistent软件包还提供以下内容:
dpkg-reconfigure iptables-persistent
Run Code Online (Sandbox Code Playgroud)
(您需要对有关是否保存规则的问题回答“是”。)
之后,下次iptables-persistent启动/重新启动时,将加载您期望的 iptables 规则集。
Ope*_*TeX 13
保存当前 iptables 规则的非常简单的方法是使用以下命令:
sudo service netfilter-persistent save
使用上面的方法,在安装netfilter-persistent(and iptables-persistent) 包后至少在 Ubuntu 中工作,不需要手动运行 iptables 命令或重新配置包(正如上面接受的答案所建议的那样)。
小智 6
安装 iptables-persistent:
sudo apt install iptables-persistent
Run Code Online (Sandbox Code Playgroud)
进行所需更改后保存规则:
sudo netfilter-persistent save
Run Code Online (Sandbox Code Playgroud)