端口 80 重定向不适用于本地主机

端口 80 重定向不适用于本地主机

我想在我的 ubuntu linode 上运行一个简单的 python 网络服务器,使用以下命令(它只是将当前目录放在指定的端口上)

python -m SimpleHTTPServer 8080

我使用端口 8080 以避免使用 sudo 在端口 80 上运行

为了使其可访问,我使用以下命令将端口 80 重定向到端口 8080:

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

现在任何计算机都可以访问我的网站 giuliopizzini.com,但 localhost 除外,因为 localhost 会出现套接字错误,连接被拒绝。如果我将 localhost 指向 giuliopizzini.com:8080,它可以正常工作,但重定向会失败。

我已经启用了防火墙,但如果我用它重置

sudo iptables -F

行为完全相同,因此似乎在这里不起作用。

我怎样才能使重定向在本地主机上也能工作?

答案1

您需要添加另一条规则才能使 localhost 重定向正常工作:

sudo iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-port 8080

您需要包含用于连接的目标 IP,例如本地主机或任​​何接口 IP。

本地生成的流量不会影响PREROUTING链。它会影响OUTPUTnat 表中的链,而这正是上述规则所做的。

相关内容