当服务器和客户端在同一台机器上时,iptables 端口转发不起作用?

当服务器和客户端在同一台机器上时,iptables 端口转发不起作用?

我有一个在端口 8080 上运行的 Web 服务器。我想通过端口 80 访问它,因此我执行以下操作:

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

如果我使用以下方式从其他机器访问服务器,它就可以工作

http://ipoftheserver/  

但如果我使用以下方式从同一台机器访问服务器,它就不起作用

http://localhost/

这是为什么?

提前致谢。

答案1

我不确定你是否可以通过 iptables 做你想做的事情,localhost 不会通过 NAT 路由。请参阅此那么问题来了和这个SF 问题了解详情。

如果是,您可以让服务器绑定到多个端口Apache。有关详细信息,请参阅此页面,http://httpd.apache.org/docs/2.2/bind.html

httpd.conf

Listen 80
Listen 8000

-或者-

Listen 192.0.2.1:80
Listen 127.0.0.1:80
Listen 192.0.2.1:8000

答案2

PREROUTING链在路由之前影响收到的数据包。本地生成的数据包从该OUTPUT链开始。

相关内容