SYSTEM(PID 4)正在使用端口80,那是啥?
Posted
技术标签:
【中文标题】SYSTEM(PID 4)正在使用端口80,那是啥?【英文标题】:Port 80 is being used by SYSTEM (PID 4), what is that?SYSTEM(PID 4)正在使用端口80,那是什么? 【发布时间】:2010-11-28 15:28:47 【问题描述】:我正在尝试将端口 80 用于我的应用程序服务器,但是当我执行 netstat -aon
时,我得到:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
当我在任务管理器中查找进程时,它显示PID 4
是SYSTEM
,就是这样。没有扩展......什么都没有。只是“SYSTEM
”。这是怎么回事?
我害怕结束这个过程,我该怎么办?
【问题讨论】:
超级用户superuser.com/questions/352017/pid4-using-port-80和superuser.com/questions/43307/…有同样的问题 对于未来的读者,阅读serverfault.com/questions/65717/… 应该是有益的,以便了解为什么下面发布的一些答案有效(但没有一个答案进入细节级别)。 您说的是Microsoft Windows 对吧?这应该写下来,而不是让其他人猜测。 【参考方案1】:Windows 11
对我来说,是万维网发布服务让系统使用端口 80。
希望这对 Win11 新用户有所帮助。
【讨论】:
好的,那么你将如何改变这个?【参考方案2】:在最新版本的 Windows 上,此服务称为“万维网发布服务”(W3SVC)
C:\Windows\system32\svchost.exe -k iissvcs
您可以通过转到服务(services.msc)并停止服务然后设置“启动类型”来停止此服务 -> 禁用以防止它在 Windows 启动时运行。
【讨论】:
【参考方案3】:这可以通过以下五个步骤轻松解决:
-
打开服务
右键单击万维网发布服务
点击停止
为了防止以后出现这个问题:
-
转到属性
将启动类型更改为手动
维奥拉你很高兴!
有关根本原因的更多信息:https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4-what-is-that
【讨论】:
正是我需要的。谢谢。 我的荣幸!【参考方案4】:在阅读了有关该问题的所有答案并尝试了所有方法后,我卸载并重新安装了 XAMPP,它成功了。
【讨论】:
【参考方案5】:netsh http show urlacl
之前的评论中提到了该命令,但我想提出它作为答案。它将为您获取系统中所有保留的 URL。如果你浏览所有URL中带有“80”的记录,你就会有答案。
例如,就我而言,我得到了:
Reserved URL: http://+:80/Temporary_Listen_Addresses/
User: \Everyone
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;WD)
Reserved URL: http://+:80/0131501b-d67f-491b-9a40-c4bf27bcb4d4/
User: NT AUTHORITY\NETWORK SERVICE
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;NS)
通过 Google 快速搜索后,我了解到“NT AUTHORITY\NETWORK SERVICE”属于 SQL Server。所以我去了服务并停止了 SQL Server 报告服务,当我检查 netstat -a -b
时,端口 80 再次空闲。
【讨论】:
这行得通。 “Power BI Report Service”是我的问题。 'NT AUTHORITY\NETWORK SERVICE' 也在端口 80 上显示,但它和 SQL Server 正在运行,与我机器上的 ingresss-nginx 没有冲突。【参考方案6】:另一个可能占用 80 端口的服务是 BranchCache
services.msc
显示为“BranchCache”
或者使用net
命令停止服务之类的
net stop PeerDistSvc
更新:
PeerDistSvc是svhost.exe后面的服务,查看svchost服务类型
tasklist /svc /fi "imagename eq svchost.exe"
【讨论】:
这对我也有用 - 服务描述说:BranchCache - 此服务缓存来自本地子网上对等方的网络内容。 MSDN: BranchCache Overview This article 解决了我的 BranchCache 问题 Windows Server 2019,卸载 IIS,BranchCache 是罪魁祸首。想要使用端口 80 运行 Kestrel,但它拒绝以错误启动:System.Net.Sockets.Socket 的权限被拒绝。希望这可以帮助其他人寻找解决方案。【参考方案7】:以编程方式识别进程
迄今为止的所有答案都要求用户进行交互操作。这就是当 netstat 向您显示 PID 4 时您如何找到 PID,而无需打开某些 GUI 或处理有关依赖服务的对话。
$Uri = "http://127.0.0.1:8989" # for example
# Shows processes that have registered URLs with HTTP.sys
$QueueText = netsh http show servicestate view=requestq verbose=yes | Out-String
# Break into text chunks; discard the header
$Queues = $QueueText -split '(?<=\n)(?=Request queue name)' | Select-Object -Skip 1
# Find the chunk for the request queue listening on your URI
$Queue = @($Queues) -match [regex]::Escape($Uri -replace '/$')
if ($Queue.Count -eq 1)
# Will be null if could not pick out exactly one PID
$ProcessId = [string]$Queue -replace '(?s).*Process IDs:\s+' -replace '(?s)\s.*' -as [int]
if ($ProcessId)
Write-Verbose "Identified process $ProcessId as the HTTP listener. Killing..."
Stop-Process -Id $ProcessId -Confirm
这真的让我大吃一惊。我讨厌 HttpListener,希望我只使用 Pode。
【讨论】:
【参考方案8】:此外,“开发者门户”(在 Windows 10 上)会导致系统侦听 TCP 端口。通常是端口 50080 和 50443。
【讨论】:
【参考方案9】:BranchCache 是我的问题。我的决定是以管理员身份运行 Powershell 并运行:
Disable-BC -Force
参考:https://docs.microsoft.com/en-us/powershell/module/branchcache/disable-bc?view=win10-ps
【讨论】:
【参考方案10】:这些都不适合我。我不得不去a SuperUser question。
如果是系统进程(PID 4),您需要禁用由其他服务按需启动的 HTTP.sys 驱动程序,例如 Windows 远程管理或 Windows 7 或 2008 上的打印后台处理程序。
有两种方法可以禁用它,但第一种更安全:
进入设备管理器,从菜单/视图中选择“显示隐藏设备”,进入“非即插即用驱动程序”/HTTP,双击禁用它(或设置为手动,一些服务取决于它)。
重启并使用
netstat -nao | find ":80"
检查80是否还在使用。
这对我有用!
【讨论】:
为了完整起见,您可能需要添加第二种更危险的禁用方式。【参考方案11】:我停止了万维网发布服务,然后它工作了。
【讨论】:
【参考方案12】:我刚刚去服务并停止了网络部署代理
【讨论】:
【参考方案13】:这个过程对我有用:
-
右键单击我的电脑。
选择管理。
双击服务和应用程序。
然后双击服务。
右键单击“万维网发布服务”。
选择停止
重启 XAMPP
【讨论】:
【参考方案14】:经过测试的工作解决方案:(WINDOWS 10)
这有很多原因,我推荐的一个原因/解决方案是:
使用管理员权限打开您的窗口命令然后:
net stop http /y
以上将同意停止http服务:
sc config http start= disabled
以上将配置服务默认禁用
如果上述解决方案不起作用,请在此处查找您的具体案例:
来源:http://www.devside.net/wamp-server/opening-up-port-80-for-apache-to-use-on-windows
重新启动您的网络服务器/XAMPP/APACHE 并完成。
如果您需要重新启用默认设置,这里是命令sc config HTTP start= demand
,解释来源在这里http://servicedefaults.com/10/http/
【讨论】:
我过去做过一次,效果很好。 Windows 更新后,我遇到了同样的问题,这个解决方案再次为我工作!谢谢@Dung【参考方案15】:如果您使用 Razer 产品并在您的 PC 上安装 Razer Synapse 软件,它也会阻止端口 80。
它不包含在netstat
命令中,因此我无法对其进行故障排除。由于软件中包含许多服务,我无法分析哪个服务阻塞了端口。卸载 Razer Synapse 后,我可以在 Windows 10 上再次启动 Apache 服务器。
【讨论】:
谢谢,我认为它是 Razer Chroma SDK 服务器。我在 msconfig 中禁用了它,这为我解决了问题!【参考方案16】:输入netstat -a -n -b -o |more
如果停止 World Wide Web Publishing Service
有帮助
然后在IIS 管理器 中查看每个站点的绑定 设置,方法是选择一个站点并在侧面板上单击绑定。然后根据需要将端口 80 更改为其他端口。
【讨论】:
【参考方案17】:IP地址为0.0.0.0,state=LISTENING:表示80端口正在监听所有接口(未使用)
如何读取 NETSTAT -AN 结果:
https://sites.google.com/site/xiangyangsite/home/technical-tips/linux-unix/networks-related-commands-on-linux/how-to-read-netstat--an-results【讨论】:
“表示端口 80 正在侦听所有接口(未使用)”不完全是 - 服务“万维网发布服务”正在侦听此端口。手动停止它后,您可能会释放该端口(至少在 Windows 7 中) 澄清一下,万维网发布服务是 W3SVC。停止此服务可以解决我的问题。 停止和禁用 W3SVC 服务也适用于我:sc stop w3svc
然后sc config w3svc start= disabled
这个链接 (devside.net/wamp-server/…) 帮助我缩小了罪魁祸首的范围,最终找到了我想要的东西。令人讨厌的是,直到我解决了这个 *** 帖子才在我的搜索中弹出。
LISTENING 表示使用。这意味着有一个进程正在使用该特定端口,等待来电。我试图启动默认网站,IIS 告诉我有另一个进程使用端口 80。投票最多的答案 - 关于“Web 部署代理服务”(MsDepSvc) 的答案 - 是对正在发生的事情的更好解释。【参考方案18】:
问题是如何释放它,只需使用
net stop http
https://***.com/a/16243333/777982
【讨论】:
【参考方案19】:如果您运行的是 Windows Server 2012 R2,请确保删除工作文件夹:http://blogs.technet.com/b/filecab/archive/2013/10/15/windows-server-2012-r2-resolving-port-conflict-with-iis-websites-and-work-folders.aspx 删除文件服务器下的工作文件夹功能对我有用。
【讨论】:
【参考方案20】:我遇到了同样的问题,这是因为服务器上运行着 IIS,如果你遇到这种情况,你可以使用 IIS 管理器停止它。
【讨论】:
【参考方案21】:我发现“SQL Server Reporting Services (MSSQLSERVER)”会自动启动并侦听端口 80。
我希望这会有所帮助。
哦
【讨论】:
【参考方案22】:我四处寻找 PID 4 并提出了这个问题。从this answer 和blog post 我发现任何与PID 4 相关的都可能是Windows 服务,因此您可能需要在services.msc
中查找相关服务。
此外,此进程由系统运行,系统被视为另一个“登录”用户。
【讨论】:
【参考方案23】:有很多服务,可以在windows上监听80端口。
幸运的是,您可以检测并阻止它们全部运行简单的控制台命令:
NET stop HTTP
当你启动它时,你会首先得到列表:
为避免以后出现此问题,请转到本地服务和disable listed services。
注意 - 一些服务会立即自行重启,只需运行 'NET stop HTTP' 几次。
【讨论】:
注意...以管理员身份运行 cmd 它也会停止负责打印机的spooler服务。 我错过了一个微妙的事实,即首先向您显示正在运行的服务列表,然后选择继续停止它们。这使我可以查看正在运行的内容,选择不全部停止,然后在我的“服务”面板中找到可疑服务,将其停止,并将其设置为手动。安东的解决方案很棒。易于记忆和使用。 @barlop 对试图帮助你的人的反应真的很奇怪 找到罪魁祸首的更好命令:netsh http show urlacl
和 netsh http show servicestate
(查找所有包含 :80 的命令。)来源:devside.net/wamp-server/…【参考方案24】:
即使勾选了“显示所有用户的进程”,PID=4 也不会显示在任务管理器中。好吧,只有一个用户。
但是,netstat -b 显示多个连接指向同一 PID=4,这台计算机上显示以下内容。
我只选择了那些与 TCP 协议有关的。
这是在对 IIS 进行故障排除时获得的,该 IIS 在尝试了许多其他方法后无法启动。我认为你不应该停止这个过程。
【讨论】:
【参考方案25】:我今天才遇到这个问题,因为它是在诺顿请求重新启动后出现的,所以我责怪诺顿。 但不是诺顿,我删除了诺顿,重新启动 -> 问题仍然存在。
netstat -nao 显示 PID 4 拥有我的端口 80 连接。
然后我去了控制面板, 然后“打开或关闭 Windows 功能” 然后取消选中 Internet 信息服务。 重新启动,问题消失了。 我的 xampp 服务器现在运行正常。
我不记得一开始就打开了 IIS。 在这件事发生之前,我已经跑了好几个月了。 我仍然不知道是什么原因造成的。 也许以前的 windows 更新启用了 iis 并且我重新启动它打开了它,我不知道。
【讨论】:
【参考方案26】:对我来说,我必须在我的 VM 上卸载“Citrix Virtual Desktop Agent”
【讨论】:
GoToMeeting 也是 CitrixOnline,只需卸载【参考方案27】:这对我有用:
-
右键单击我的电脑。
选择管理。
双击服务和应用程序。
然后双击服务。
右键单击“万维网发布服务”。
选择停止。
【讨论】:
对于第 5 步,我的问题在于 SQL Server 报告服务。我把它关掉了,问题就解决了。我之前关闭了 WWWPublishing 服务,但这并没有解决问题。 ReportServer$SQLEXPRESSS2016 在我的电脑上执行此操作。 @Auguste 你的解决方案对我有用,谢谢:)【参考方案28】:我知道这些答案是正确的,但我的 services.msc 没有显示服务,但是这成功了:
sc stop "MsDepSvc"
sc config "MsDepSvc" start= disabled
【讨论】:
在我的 Azure VM - Windows 10 中工作。:)【参考方案29】:对我来说,它在停止 Web 部署代理服务后工作。
【讨论】:
【参考方案30】:就我而言,它发生在安装 Microsoft Web Matrix 之后。与“Microsoft Web Deploy”一起卸载这个垃圾箱解决了这个问题。
【讨论】:
以上是关于SYSTEM(PID 4)正在使用端口80,那是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]