我有一个在端口 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
链开始。