如何保存iptables的规则?

Gus*_*avo 113 iptables

我为 iptables 创建规则。但是,当我重新启动计算机时,规则不起作用!如何在 Ubuntu 上保存规则?


问题解决了!

做:

在编写命令 iptables 之后,执行以下操作:

 1. sudo su
 2. iptables-save > /etc/iptables.rules
 3. In /etc/network/if-pre-up.d/iptables,put:

 #!/bin/sh
 iptables-restore < /etc/iptables.rules
 exit 0

 4. After, in /etc/network/if-post-down.d/iptables,put:
 #!/bin/sh
 iptables-save -c > /etc/iptables.rules
 if [ -f /etc/iptables.rules ]; then
 iptables-restore < /etc/iptables.rules
 fi
 exit 0
 5. After, give permission to the scripts:
 sudo chmod +x /etc/network/if-post-down.d/iptables
 sudo chmod +x /etc/network/if-pre-up.d/iptables
Run Code Online (Sandbox Code Playgroud)

更多信息:https : //help.ubuntu.com/community/IptablesHowTo#Saving_iptables 祝你好运!

小智 173

简单的方法是使用iptables-persistent.

安装iptables-persistent

sudo apt-get install iptables-persistent
Run Code Online (Sandbox Code Playgroud)

安装后,您可以随时保存/重新加载 iptables 规则:

sudo /etc/init.d/iptables-persistent save 
sudo /etc/init.d/iptables-persistent reload
Run Code Online (Sandbox Code Playgroud)

Ubuntu 16.04 服务器

如上所述的安装工作没有问题,但是上面用于保存和重新加载的两个命令似乎不适用于 16.04 服务器。以下命令适用于该版本:

sudo netfilter-persistent save
sudo netfilter-persistent reload
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我想知道为什么它不适用于 Ubuntu 16.04 (4认同)
  • netfilter-persistent 作为服务运行,在关机和启动时提供钩子。安装iptables-persistent作为netfilter-persistent的插件后,需要netfilter-persistent服务调用iptables-persistent插件进行保存和加载。但在某些配置中似乎有意跳过写入。其原因是以及如何控制它是不透明的。 (3认同)
  • 因此,我不能将此答案视为实际答案。 (2认同)

and*_*dol 51

保存 iptables 规则的通用方法是使用命令 iptables-save,它会写入 stdout。

iptables-save > /etc/network/iptables.rules
Run Code Online (Sandbox Code Playgroud)

iptables-save 创建的输出然后可以通过 iptables-restore 在 stdin 上读取。如果在没有 NetworkManager 的服务器上,常见的方法是在 /etc/network/interfaces 中使用 pre-up 命令。

iface eth0 inet static
        ....
        pre-up iptables-restore < /etc/network/iptables.rules
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 NetworkManager,应该可以从 /etc/NetworkManager/dispatcher.d/ 下创建的脚本运行相同的命令。在社区文档 - iptables howto 中,请参阅NetworkManager 启动时配置以获取更多信息。

请注意,iptables、iptables-save 和 iptables-restore 命令仅适用于 IPv4。对于 IPv6 流量,等效命令是 ip6tables、ip6tables-save 和 ip6tables-restore。