将端口路由从 80 持续到 8080

将端口路由从 80 持续到 8080

我使用通过 ubuntu 运行的 amazon EC2 实例。默认情况下,根据安全限制,我无法将应用程序绑定到端口 80,因此我只需将其绑定到端口 8080,然后通过以下命令将路由重定向从端口 80 设置为 8080:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

但我发现当我重新启动服务器时,此设置不再有效,直到我再次调用此命令。

所以我的问题是,即使系统重新启动,如何启用端口的重定向工作?

答案1

您可以添加此命令/etc/rc.local,这样它将在重启后自动执行。

答案2

请改用iptables-save命令。

防火墙规则绝不应写入rc.local脚本。rc.local这是最后执行的操作。如果已将阻止规则写入,rc.local则攻击者可以在很短的时间内利用未实施的规则。

虽然这种情况可能无所谓,但最好还是不要养成以后可能会给你带来麻烦的坏习惯。

答案3

以下是 iptables 官方文档教给我们的方法。看这里

添加以下两行/etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save > /etc/iptables.rules

该行将post-down iptables-save > /etc/iptables.rules保存下次启动时要使用的规则。

答案4

我在 Ubuntu 16.04 中发现了一组目录,/etc/network它们会在网络初始化和关闭期间的不同时间运行脚本:

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

所以我发现我可以像往常一样转储配置:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

然后我创建了一个文件“/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

...并将其标记为可执行

$ sudo chmod 755 /etc/network/if-pre-up.d/restore

相关内容