Ubuntu 上的 iptables 端口重定向

Xi *_*ang 5 iptables

我有一个运行在8100上的 apache 服务器。当在浏览器中打开http://localhost:8100 时,我们将看到该站点正常运行。

现在我想将 80 上的所有请求定向到 8100,以便可以在没有端口号的情况下访问该站点。我对iptables不熟悉,所以我在网上搜索了解决方案。这是我尝试过的方法之一:

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
Chain PREROUTING(策略接受14个数据包,2142字节)
 pkts 字节目标 prot 选择退出源目标         
    0 0 重定向 tcp -- * * 0.0.0.0/0 0.0.0.0/0           
tcp dpt:80 重定向端口 8100 

Chain INPUT(策略接受14个数据包,2142字节)
 pkts 字节目标 prot 选择退出源目标         

Chain OUTPUT(策略接受177个数据包,13171字节)
 pkts 字节目标 prot 选择退出源目标         

Chain POSTROUTING(策略接受 177 个数据包,13171 字节)
 pkts 字节目标 prot 选择退出源目标 

操作系统是 VMware 上的 Ubuntu。我认为这应该是一项简单的任务,但我已经为它工作了几个小时没有成功。:(我错过了什么?

小智 3

尝试: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8100