我无法启动 Apache 服务器,因为端口 443 已被使用。
事实证明,系统进程 (PID 4) 使用端口 443。我没有安装 IIS,services.msc 显示(可以预见)没有运行 Exchange 服务器、WWW 服务或 IIS。我不知道如何找出哪个服务使用了该端口,除非逐个禁用每个服务,而且我甚至不确定这是否有用。
如果有人能告诉我如何恢复我的 SSL 端口,我将不胜感激,谢谢 :)
PS:当然,“只需将 Apache 切换到另一个 SSL 端口”即可解决无法启动 Apache 的问题。但我还是想知道为什么要如此坚持占用 443 端口。:)
我现在采取了“硬路由”,并逐个禁用了服务。结果发现,“路由和 RAS”服务才是罪魁祸首。
感谢大家为解决“我的系统现在在做什么?”所提供的宝贵意见和新工具。
答案1
从提升的命令提示符运行以下命令:
netstat -ab
答案2
我敢打赌是 Skype。如果您已安装 Skype,请取消选中下面显示的复选框。
答案3
首先,我将直接回答这个问题,任何阅读这个问题的人都可以忽略任何谈论使用系统进程的第三方非微软应用程序的答案。
这系统流程列为PID 4在每个现代 Windows 系统上。它用于内核模式访问。这排除了大多数第三方 Web 产品,如 Apache。
自 WinRM(Windows 远程管理)诞生以来,HTTP服务 (%SystemRoot%\system32\drivers\http.sys) 已成为 Windows (Vista 及更高版本 / Server 2008 及更高版本) 的标准组成部分。http.sys 在系统过程 (PID 4)。
其他 Microsoft 开发的软件也可能使用 %SystemRoot%\system32\drivers\系统信息在系统进程下互联网信息服务,SQL 报告服务, 和Microsoft Web 部署服务(http://support.microsoft.com/kb/2597817)...
WinRM 1.0 默认端口为:
HTTP = 80
HTTPS = 443
WinRM 2.0 及更高版本的默认端口为:
HTTP = 5985
HTTPS = 5986
使用以下命令检查:
Winrm 枚举 winrm/config/listener
Winrm 获取http://schemas.microsoft.com/wbem/wsman/1/config
故障排除步骤:
获取您正在寻找的端口的进程号(在本例中为 443):
...从 Windows 的非映射驱动器来避免“拒绝访问”:
netstat -aon | 查找“: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)。
跑步任务列表找出正在运行的进程毫无用处:
tasklist /SVC /FI "PID eq 4"
tasklist /m /FI "PID eq 4"在注册表中查找 HTTP 服务:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\UrlAclInfo
将会有一个 URL 列表(带有端口号),可帮助您找到正在运行的应用程序以及占用的端口:
http:// +:5985/wsman/ -->温控器
https:// +:5986/wsman/ -->温控器
http:// +:80/报告/ -->SQL 报告服务器
http:// +:80/ReportServer/ -->SQL 报告服务器
https:// server_fqdn:443 / 报告 / -->SQL 报告服务器
https:// server_fqdn:443/ReportsServer/ -->SQL 报告服务器
http://* :2869/ -->简单服务发现协议服务 (SSDPSRV)
http://*:5357/ -->Web 服务动态发现 (WS-Discovery)
https://* :5358/ -->Web 服务动态发现 (WS-Discovery)
然后,您可以在系统上找到相应的服务并停止它,并通过与另一个服务确认所需的端口是否被释放netstat -aon | 查找“:443”命令。
答案4
通常这是 VMware 主机代理服务(VM 主机到客户机通信所需)- vmware-hostd.exe
。
找出 svchost.exe 正在运行的子进程的一个好方法是使用 Sysinternals 的进程探索器。