问题描述
我正在尝试将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.v4
,ip6tables-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中设置任何规则。