我已经运行了netstat -ano
,netstat -lnp
并且都没有输出任何在端口 80 上监听的进程。
我有一个 node.js 应用程序设置为监听端口 8001,并且我应该让 Nginx 代理转发某些请求到我的节点应用程序。
我确实看到我的节点应用程序正在监听端口 8001。
据我所知,它是服务所有 http 请求的节点应用程序,因为我已经停止了 nginx。
我也跑了iptables --list
,但什么也没出现。
那么,我的应用程序在端口 8001 上运行,怎么可能从端口 80 处理请求呢?或者说,我还应该查看哪些其他配置内容?
答案1
从表面上看,你所描述的是不可能的......
如果lsof -i :80
说没有任何内容在端口 80 上监听,并且iptables -t nat -L
没有iptables -t mangle -L
iptables 规则将流量从端口 80 重定向到端口 8001,那么在端口 8001 上监听的应用程序就不可能看到端口 80 上的请求。
因此,如果您已经排除了所有这些因素,则您需要考虑系统外部的某些东西(例如外部防火墙)是否正在重写流量。
找出答案的最佳方式是监控网络流量tcpdump -i any port 80 or port 8001
并查看流量似乎出现在哪个端口上。