我有一个运行在8100上的Apache服务器。当在浏览器中打开http:// localhost:8100时 ,我们将看到该站点正确运行。
现在我想指示所有的请求在80到8100,这样的网站可以访问没有端口号。 我不熟悉iptables,所以我在网上search解决scheme。 这是我尝试过的方法之一:
user @ ubuntu:〜$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT user @ ubuntu:〜$ sudo iptables -A INPUT -p tcp --dport 8100 -j ACCEPT user @ ubuntu:〜$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8100
这不起作用。 该网站在8100上运行,但不在80上。如果使用“iptables -t nat -L -n -v”打印出规则,这就是我所看到的:
user @ ubuntu:〜$ sudo iptables -t nat -L -n -v
链PREROUTING(策略接受14个数据包,2142字节)
pkts字节目标人选退出源目的地
0 0 REDIRECT tcp - * * 0.0.0.0/0 0.0.0.0/0
tcp dpt:80个redir端口8100
链接INPUT(策略接受14个数据包,2142字节)
pkts字节目标人选退出源目的地
链OUTPUT(策略ACCEPT 177个数据包,13171字节)
pkts字节目标人选退出源目的地
链POSTROUTING(策略接受177个数据包,13171字节)
pkts字节目标人选退出源目的地
操作系统是VMware上的Ubuntu。 我认为这应该是一个简单的任务,但我一直在努力了几个小时没有成功。 :(我错过了什么?
试试:sudo iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT – 到127.0.0.1:8100
“PREROUTING”链只适用于从networking接收的stream量。 如果你想redirect本地生成的stream量,你需要使用“OUTPUT”链。
你可能也想在目标IP地址上进行一些匹配。