我想使用以下命令在我的 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 指向 giuliopizzini.com:8080,它工作正常,但重定向失败。
我启用了防火墙,但如果我用
sudo iptables -F
行为完全相同,所以这似乎在这里不起作用。
我怎样才能使重定向在 localhost 上也起作用?
您需要为本地主机重定向添加另一个规则才能工作:
您需要包括用于连接的目标 IP,例如本地主机或任何接口 IP。
本地生成的流量不会命中
PREROUTING
链。它命中OUTPUT
nat 表中的链,这就是上述规则所做的。