为什么“系统”进程监听端口 443?

Cor*_*ius 53 windows

我在启动 Apache 服务器时遇到问题,因为端口 443 已在使用中。

事实证明,系统进程 (PID 4) 使用端口 443。我没有安装 IIS,services.msc 显示(可以预见)没有 Exchange 服务器在运行,也没有 WWW-Services,也没有 IIS。我不知道如何找出使用该端口的服务,只是一个接一个地禁用每个服务,我什至不确定这会有所帮助。

如果有人能指出我如何恢复我的 SSL 端口,我将不胜感激,谢谢:)

PS:当然“只需将Apache切换到另一个端口进行SSL”就可以解决无法启动Apache的问题。但我仍然想知道占用 443 端口的原因是什么。:)


我现在采取了“艰难的路线”,一个接一个地禁用了服务。事实证明,“路由和RAS”服务是罪魁祸首。

感谢大家在对抗“WTF 我的系统现在能做什么?”的斗争中提供宝贵的意见和新工具。

Nif*_*fle 32

我敢打赌是Skype。如果已安装,请取消选中下面显示的复选框。

替代文字

  • +1。其他 VoIP 客户端(以及其他软件,如 P2P 文件传输应用程序)如果在端口 80 和 443 上找不到其他任何东西,则会侦听端口,尽管 Skype 是最常见的“攻击者”。我不确定为什么 Skype 会显示为系统拥有的进程。 (3认同)

ton*_*oth 20

从提升的命令提示符运行以下命令:

netstat -ab
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,在 0.0.0.0:443 的行下我只是得到 **无法获得所有权信息**。 (8认同)
  • 以下内容也可以让您更深入地了解 wmic process > test.txt (2认同)

小智 19

首先,我将直接回答这个问题,任何阅读此问题的人都可以忽略任何有关使用系统进程的第 3 方非 Microsoft 应用程序的答案。

  1. 系统的过程被列为4个PID每一个现代的Windows系统上。它用于内核模式访问。这排除了大多数 3rd-party web 产品,如 Apache。

  2. 自 WinRM(Windows 远程管理)问世以来,HTTP服务(%SystemRoot%\system32\drivers\http.sys)一直是 Windows(Vista 及更高版本/Server 2008 及更高版本)的标准部分。http.sys 在系统进程 ( PID 4 )下运行。

  3. 其他微软开发的软件也可能在系统进程下使用 %SystemRoot%\system32\drivers\ http.sys,如IISSQL Reporting ServicesMicrosoft Web 部署服务( http://support.microsoft.com/kb/2597817))...

  4. WinRM 1.0 默认端口为:
    HTTP = 80
    HTTPS = 443
    WinRM 2.0 及更高版本的默认端口为:
    HTTP = 5985
    HTTPS = 5986
    使用以下命令检查:
    Winrm enumerate winrm/config/listener
    Winrm get http://schemas.microsoft.com /wbem/wsman/1/config

故障排除步骤:

获取您要查找的端口的进程号(在本例中为 443):

...从 Windows 的非映射驱动器避免“拒绝访问”:
netstat -aon | find ":443"系统进程的
输出应如下所示: C:>netstat -ano |find ":443" TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 4 TCP [::]:443 [: :]:0 LISTENING 4 最后一列是 PID (4)。




  1. 运行tasklist以找出进程中正在运行的内容被证明没有帮助:
    tasklist /SVC /FI "PID eq 4"
    tasklist /m /FI "PID eq 4"

  2. 在注册表中查找 HTTP 服务:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\UrlAclInfo
    将有一个 URL 列表(带有端口号),可以引导您找到正在运行的应用程序并持有哪些端口:
    http :// +:5985/wsman/ --> WinRM
    https:// +:5986/wsman/ --> WinRM
    http:// +:80/Reports/ --> SQL Reporting Server
    http:// +:80 /ReportServer/ --> SQL 报告服务器
    https:// server_fqdn:443/Reports/ --> SQL 报告服务器
    https:// server_fqdn:443/ReportsServer/ --> SQL 报告服务器
    http://* :2869/ - ->简单服务发现协议服务 (SSDPSRV)
    http://* :5357/ -->Web 服务动态发现 (WS-Discovery)
    https://* :5358/ --> Web 服务动态发现 (WS-Discovery)

然后你可以在系统上找到对应的服务并停止它,通过另一个netstat -aon |确认查看想要的端口被释放查找 ":443"命令。

  • 这是迄今为止(根据我的阅读)最有价值的答案。但是,它并不能解决我的问题。我在 Windows Server 2016 上遇到问题,上述步骤 6 在我的服务器上显示 `https://+:443/sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/`。 GUID BA1959xxx 表示 SSTP 服务器。但我确信除了 SSTP 服务器之外,我至少还运行着另一个在 443 上侦听的进程。无论如何,我投你一票。 (3认同)
  • 由于您的回答,我查找了 **http.sys**,并找到了命令 `netsh http show servicestate`,它转储了大量数据,包括实际的当前侦听 URL。它解决了我“为什么系统在端口 X 上侦听”的问题,它可以帮助其他人。 (3认同)

小智 11

我遇到的问题是,在我的 Windows 7 机器上,PID 为 4 的“系统”使用了端口 443。我的解决方案是删除网络连接文件夹中存在的“传入连接”(VPN)。

好像是我创建的,用完忘记删除了...


小智 9

这通常是 VMware 主机代理服务(VM 主机到来宾通信所需) - vmware-hostd.exe

找出正在运行的子进程 svchost.exe 的一个好方法是使用 Sysinternals 的Process Explorer

  • 如果您确实安装了 VMware Workstation,请在 Edit -> Preferences -> Shared VMs 下检查。您可能启用了 VM 共享并且默认端口是 443。您可以禁用共享、更改端口并重新启用它,或者如果您不需要它就将其禁用。 (3认同)

小智 8

我在将 443 请求路由到我的 WAS 服务器时遇到了类似的问题。根据这个问题中的建议,这就是我所做的:

  1. 从提升的 cmd 提示符运行 netstat -a -n -o | findstr 443
  2. 识别出监听443的进程的PID
  3. 使用进程资源管理器从 PID 中识别进程。
  4. 在我的情况下,应用程序监听是 vmwarehostd.exe
  5. 从 停止 VMware Workstation 服务器services.msc。由 WAS 服务器重新启动。

从那以后,所有的 443 个请求都愉快地到达了 443。

PS:我已经卸载了 Windows 8 安装中内置的 Skype。我的机器禁用了路由和远程访问服务。

  • -1 他的 PID 为 4,这要困难得多。您编写了“使用进程资源管理器从 pid 识别进程”。<-- 你的不是 PID 4,例如 svchost 或类似的东西。你的是一些 3rd 方 exe。你可以只使用任务管理器!如果您尚未显示该列,则查看..选择列 但您很幸运,您的 PID 不是 PID 4。我不知道进程资源管理器是否可以提供帮助,尽管任务管理器不能。但在你的情况下,简单的任务管理器肯定会做到这一点。 (3认同)

小智 6

如果它是由服务启动的进程,netstat -ab则无济于事。

在这种情况下,请尝试netstat -ao | find /i "443"使用管理员命令行。这将为您提供如下输出:

    TCP   0.0.0.0:443   your_hostname:0   LISTENING   PID
Run Code Online (Sandbox Code Playgroud)

然后键入tasklist | find /i "<PID>"另一个管理员命令提示符。

在我的情况下,PID 是 2912,我的命令是:

tasklist | find /i "2912"
Run Code Online (Sandbox Code Playgroud)

我的命令的输出是:

vmware-hostd.exe   2912 Services   0   39 856 K
Run Code Online (Sandbox Code Playgroud)

哇,我什至忘记了我安装 VMware 是为了检查功能......

  • 对我来说,这是 PID 4 ... 是 System. 仍然没有线索:) (2认同)