为什么重启 Debian 系统后 iptables 规则会消失?

为什么重启 Debian 系统后 iptables 规则会消失?

我添加这条规则:

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. 重新启动计算机时规则将被删除。为什么?
  2. 我可以做些什么来使规则持续存在?

答案1

在 Debian 上,安装iptables-persistent

sudo apt-get install iptables-persistent

该软件包将/etc/iptables/rules在启动期间自动为您加载。

每当您修改规则时,请运行/sbin/iptables-save > /etc/iptables/rules以保存它们。如果您愿意,您还可以将其添加到关闭序列中。

答案2

iptables 中没有任何选项可以使您的规则永久化。但您可以使用iptables-saveiptables-restore来完成您的任务。

首先使用您提供的命令添加 iptable 规则。

然后将 iptables 规则保存到某个文件,例如/etc/iptables.conf使用以下命令:

$  iptables-save > /etc/iptables.conf

添加以下命令/etc/rc.local以在每次重新启动时重新加载规则。

$  iptables-restore < /etc/iptables.conf

答案3

安装完上述内容后,iptables-persistent您还可以在 Ubuntu 16.04+ 上使用以下更短的命令保存规则: sudo netfilter-persistent save

它们还可以恢复到上次保存时的状态: sudo netfilter-persistent reload

答案4

  1. 安装iptables-persistent
  2. 每当您更改 iptables 规则时,您应该使用以下命令将备份保存到以下文件中:

iptables-save -f /etc/iptables/rules.v4(对于 iptables)

iptables-save -f /etc/iptables/rules.v6(对于 ip6 表)

相关内容