不确定我的 Linux 机器上哪个应用程序正在提供 HTTP 端口 80 服务?

不确定我的 Linux 机器上哪个应用程序正在提供 HTTP 端口 80 服务?

我已经运行了netstat -anonetstat -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 -Liptables 规则将流量从端口 80 重定向到端口 8001,那么在端口 8001 上监听的应用程序就不可能看到端口 80 上的请求。

因此,如果您已经排除了所有这些因素,则您需要考虑系统外部的某些东西(例如外部防火墙)是否正在重写流量。

找出答案的最佳方式是监控网络流量tcpdump -i any port 80 or port 8001并查看流量似乎出现在哪个端口上。

相关内容