如何永久更新iptables

haf*_*huk 39 ubuntu iptables

我正在尝试将http流量重定向到同一台计算机上的端口8080,并且iptables规则在下面工作.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)

我正在试图弄清楚如何在系统重新启动时永久性地进行此更改.

我正在使用Ubuntu 11.10服务器.

yom*_*ono 135

Ubuntu(和Debian)提供包iptables-persistent(Debian:http://packages.debian.org/wheezy/iptables-persistent,Ubuntu:http://packages.ubuntu.com/saucy/iptables-persistent),完全符合你的要求.作为root,或通过sudo:

apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4
Run Code Online (Sandbox Code Playgroud)

如果你正在和你一起工作ip6tables,你也会想要ip6tables-save > /etc/iptables/rules.v6.

在进行任何更改后iptables-save > /etc/iptables/rules.v4,您必须再次保存表格(,ip6tables-save > /etc/iptables/rules.v6).

在旧版本(在iptables-0.5之前,在Debian Wheezy之前),您需要写入不同的文件:

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

  • 万一它可以帮助其他人...我花了一段时间来追踪我真的需要这样做:iptables-save> /etc/iptables/rules.v4 (12认同)
  • 如果您也使用IPv6,确保规则到达正确的位置可能会很痛苦.您可以运行以下命令来实现自动化:`invoke-rc.d iptables-persistent save` (9认同)
  • dpkg-reconfigure iptables-persistent如果你想重新运行并保存,不理想,但又快又脏. (6认同)

vin*_*rag 17

一种方法是:

vim /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

将以下行与您的lo指令一起附加:

post-up /sbin/iptables-restore < /etc/iptables-up.rules
Run Code Online (Sandbox Code Playgroud)

现在运行以下命令

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

我希望这有帮助.

  • 无论谁发现这个,都应该考虑下面的yomimono关于`iptables-persistent`的更好的答案. (10认同)

小智 6

我们不能用rc.local做同样的事情,但执行以下步骤

iptables-save > current_iptables_rules
Run Code Online (Sandbox Code Playgroud)

然后进入/etc/rc.local并输入以下内容

iptables-restore < current_iptables_rules
Run Code Online (Sandbox Code Playgroud)

这不会完成同样的事情吗?我可能会遗漏一些东西.