当前位置: 首页>>技术问答>>正文


如何永久更新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

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

我正在使用Ubuntu 11.10服务器。

最佳解决办法

一种方法是:

vim /etc/network/interfaces

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

post-up /sbin/iptables-restore < /etc/iptables-up.rules

现在运行以下命令

iptables-save > /etc/iptables-up.rules

我希望这有帮助。

次佳解决办法

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

如果您正在使用ip6tables,您还需要ip6tables-save > /etc/iptables/rules.v6

您做出任何更改后,必须再次保存表格(iptables-save > /etc/iptables/rules.v4ip6tables-save > /etc/iptables/rules.v6)。

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

iptables-save > /etc/iptables/rules

第三种解决办法

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

iptables-save > current_iptables_rules

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

iptables-restore < current_iptables_rules

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

第四种办法

将它们添加到/etc/ufw/before.rules。语法略有不同,但你会看到它是如何工作的。

UFW是iptables的Ubuntu防火墙前端。您可能需要使用sudo ufw enable启用UFW,但您不能在ufw中设置任何规则。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6889.html,未经允许,请勿转载。