总结
netstat
一个应用程序正在侦听 TCP 端口 80,但是当我运行或TcpView
从 SysInternals 工具中列出的进程是System
。我想知道哪个应用程序真正在侦听此端口。
我读过了这个问题,并尝试运行 netstat,但它无法帮助找到使用端口 80 的实际应用程序。它给我的 PID 是 4,对应于System
。如果我尝试在 上打开浏览器localhost:80
,它只会给我一个基本的 404 页面(“HTTP 错误 404。未找到请求的资源。”)。
我尝试通过 telnet 使用一个简单的 HTTP 请求,并得到了以下结果:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 28 Jul 2016 19:22:42 GMT
Connection: close
Content-Length: 334
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>
还有其他方法可以找出哪个应用程序通过该System
过程阻止了我的端口 80?我正在使用 Windows 7。
更新
这是我运行时的输出摘录netstat -anbo | findstr :80
:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 3900
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 2876
并且我们无法启动自己的 HTTP 服务器,因为端口 80 已被使用。
更新2
最终,我们发现了哪个应用程序正在使用该端口(请参阅我的回答)。但是,我很好奇,是否有人有一套技巧可以加快查找哪个应用程序使用端口的过程,前提是该应用程序是通过系统进程使用该端口(而不是像 Steven 建议的那样,病毒正在模拟系统进程)。
答案1
我们终于找到了罪魁祸首。在我们的案例中,罪魁祸首是BranchCache 服务。据我们了解,该服务默认使用 TCP 端口 80,并且我们的 IT 服务没有更改默认配置。停止该服务会释放端口 80。
我们必须手动停止计算机上的所有服务,直到找到实际使用端口 80 的服务。但这可能会导致奇怪的行为,所以我不完全确定这是获取信息的最佳方式。
答案2
如果您从 Microsoft 下载 Sysinternals Suite 并将其解压到某个位置,请启动工具 TCPCon.exe(或 TCPMon)。这将列出所有服务和进程,包括 PID 和大量其他信息。如果服务不直观,请将其上传到virustotal.com
答案3
运行命令;
netsh http show servicestate view=requestq
这将提供所有 HTTP 侦听器的快照。找到包含您要查找的端口号的“已注册 URL”,控制进程的 PID 将位于其上方几行,就像我自己的恶意进程一样;
Request queue name: Request queue is unnamed.
Version: 2.0
State: Active
Request queue 503 verbosity level: Basic
Max requests: 1000
Number of active processes attached: 1
--> Process IDs:
14035
URL groups:
URL group ID: F80000014000004F
State: Active
Request queue name: Request queue is unnamed.
Properties:
Max bandwidth: inherited
Max connections: inherited
Timeouts:
Timeout values inherited
Number of registered URLs: 1
--> Registered URLs:
HTTP://+:8081/ROGUESERVICE/
Server session ID: F70000011000012D
Version: 2.0
State: Active
Properties:
Max bandwidth: 4294967295
Timeouts:
Entity body timeout (secs): 120
Drain entity body timeout (secs): 120
Request queue timeout (secs): 120
Idle connection timeout (secs): 120
Header wait timeout (secs): 120
Minimum send rate (bytes/sec): 150
答案4
这就是使用端口的内容:C:\Windows\system32\svchost.exe -k iissvcs
,我必须禁用它的启动类型services.msc
。