如何通过系统进程查找实际使用 80 端口的应用程序

如何通过系统进程查找实际使用 80 端口的应用程序

总结

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

相关内容