iptables 仅部分重定向端口

iptables 仅部分重定向端口

我正在将服务器上使用端口 80 的所有内容移至端口 9000,因此我将 apache + 它的虚拟主机配置为使用 ip xx.xx.xx.106 监听 9000,并且我将 iptables 设置为预路由,它们运行良好。

问题是我有一个在 xx.xx.xx.108:9000 上运行的 nodejs 应用程序,当我在浏览器中输入不带端口号的地址时,它不会被重定向。相反,它会转到端口 80 上的服务器默认目录。(当我直接转到地址:端口时,工作正常)

这是我的路线

➜  public_html  iptables -t nat -L -v -n --line-numbers
Chain PREROUTING (policy ACCEPT 639 packets, 80831 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      285 16568 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 9000

Chain POSTROUTING (policy ACCEPT 48 packets, 3125 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 45 packets, 2981 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        3   144 REDIRECT   tcp  --  *      *       0.0.0.0/0            127.0.0.1           tcp dpt:80 redir ports 9000
2        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            173.234.60.106      tcp dpt:80 redir ports 9000
3        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            173.234.60.108      tcp dpt:80 redir ports 9000

奇怪的是,没有任何程序监听端口 80,而默认目录中的 index.php 文件可以正确编译 PHP。这让我想知道是否有默认服务监听端口 80。

相关内容