如何知道谁在监听 Windows 上的 80 端口?
不建议使用
netstat -aon | findstr :80
因为它报告的 PIDNT Kernel & System
是无用的信息。
我需要知道组件的确切名称才能控制它。
答案1
好吧,让我们来回答一下。
您看到的结果很可能是程序使用http.sys
Windows Server 2003(和 XP?)中引入的 Windows 内核模式 HTTP 引擎的结果。它允许开发人员规避侦听端口一次只能由一个程序提供服务的限制。使用http.sys
,程序会注册一个命名空间,例如http://192.168.1.2:80/abc
。该程序现在接收以注册的命名空间开头的所有请求。同时,另一个程序可以侦听http://192.168.1.2:80/xyz
。
另一个副作用是,只要完成一次性设置,即使是“非 root”程序也可以监听端口 80。
当然,微软开发这个并不是因为它好玩。Internet 信息服务 (IIS) 用于http.sys
监听。所以对于你的情况来说,这可能是一个候选者。
如果当前没有程序注册命名空间,则http.sys
停止监听。
netsh http show servicestate
应该能够枚举所有活动的命名空间。