80端口被SYSTEM (PID 4)占用,这是什么?

我试图为我的应用服务器使用端口80,但当我执行netstat -aon时,我得到:

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

当我在任务管理器中查找进程时,它显示PID 4SYSTEM,就是这样。没有扩展…什么都没有。只是“SYSTEM"。这是怎么回事?

我害怕结束这个过程,我该怎么办?

617346 次浏览

听起来好像IIS正在监听HTTP请求的80端口。

尝试通过进入控制面板/管理工具/Internet信息服务停止IIS,右键单击默认网站,然后单击弹出菜单中的停止选项,并查看端口80上的侦听器是否已清除。

尝试netstat -b,这可能会对情况有所帮助(显示什么.exe正在使用端口)。祝你好运。

IP地址为0.0.0.0,state = LISTENING:表示80端口正在监听所有接口(未被使用)

如何读取NETSTAT -AN结果:

这不能解释PID方面的事情,但如果你运行Skype,它喜欢使用端口80出于某种原因。

另外,尝试停止“SQL Server Reporting Services (MSSQLSERVER)”,显然默认值是80。我这样做了,端口80释放了。PID认为罪魁祸首是“系统”,但显然这个系统可以有多种含义。

我有同样的问题,除了我从来没有使用IIS。当我修复另一个系统错误时,我将apache服务设置为手动启动,希望降低系统的复杂性。在我修复了另一个bug后,apache无法启动。我弄了一段时间,但只需要将apache设置为自动启动:启动>管理工具>服务。

显然,当Apache以这种方式启动时,它会在SYSTEM进程之前声明端口80。

hth某人。我在谷歌上搜索的结果都是“IIS和Apache不能在同一台机器上”。“这是为了我们当中的百分之一。

一个名为“Web部署代理服务”(MsDepSvc)的新服务也可以触发PID=4的“系统”在80端口上监听。

我也有同样的问题。可以通过停止正在运行的服务下的万维网发布服务来修复它。

以我为例,它发生在安装Microsoft Web Matrix之后。卸载这个垃圾连同“微软Web部署”解决了这个问题。

对我来说,它在停止Web部署代理服务后工作了。

我知道这些答案是对的,但我的服务。MSC没有展示这些服务,但这确实奏效了:

sc stop "MsDepSvc"
sc config "MsDepSvc" start= disabled

这对我来说很管用:

  1. 右键单击我的电脑
  2. 选择管理
  3. 双击服务和应用
  4. 然后双击服务
  5. 右键单击“万维网出版服务”。
  6. 选择停止

对我来说,我必须在我的虚拟机上卸载“Citrix虚拟桌面代理”

我今天才遇到这个问题,因为它在诺顿请求重新启动后出现,我责怪诺顿 但不是诺顿,我删除了诺顿,重新启动->问题仍然存在

netstat -nao显示PID 4拥有我的端口80连接。

然后我进入控制面板, 然后“打开或关闭Windows功能”
.
. 重新启动后,问题消失了 我的xampp服务器现在运行正常

我不记得在第一时间打开IIS。 这件事发生之前,我已经跑了好几个月了。 我还是不知道最初是什么引起的。 可能之前的一个windows更新启用了iis,我的重启打开了它,我不知道

另一个可以占用端口80的服务是BranchCache

services.msc显示为"BranchCache"

或使用net命令停止服务

net stop PeerDistSvc

更新:

PeerDistSvc是svhost.exe后面的一个服务,可以查看svchost服务类型

tasklist /svc /fi "imagename eq svchost.exe"

这些对我都没用。我必须去超级用户问题

如果是System Process-PID 4,则需要禁用HTTP。sys驱动程序,由其他服务按需启动,如Windows 7或2008上的Windows远程管理或打印假脱机程序。

有两种方法可以禁用它,但第一种更安全:

    <李> < ul >
  1. 进入设备管理器,从菜单/视图中选择“显示隐藏设备”,进入“非即插即用驱动程序”/HTTP,双击关闭它(或设置为手动,一些服务依赖于它)。

  2. 重新启动并使用netstat -nao | find ":80"检查80是否仍在使用。

  3. 李< / ul > < / >

这招对我很管用!

即使在“显示来自所有用户的进程”上放置了复选标记,PID=4也不会显示在任务管理器中。只有一个用户。

但是,netstat -b显示指向同一PID=4的多个连接,在此计算机上显示如下所示。

enter image description here

我只选择了那些与TCP协议有关的。

这是在解决IIS的问题时获得的,IIS在尝试了许多其他人之后没有开始。我认为你不应该停止这个过程。

有许多服务可以在windows上监听端口80。

幸运的是,你可以通过简单的控制台命令来检测并停止它们:

NET stop HTTP
当你启动它时,你会首先得到list: enter image description here

为了在将来避免这个问题,请访问本地服务和禁用列出的服务

注意: -一些服务会立即重新启动自己,只是运行'NET stop HTTP'几次

我在寻找PID 4,然后想到了这个问题。从这个答案博客中,我发现任何与PID 4有关的东西都可能是一个Windows服务,所以你可能想在services.msc中寻找相关服务。

此外,该进程由System运行,它被认为是另一个“登录”用户。

我发现“SQL Server Reporting Services (MSSQLSERVER)”自动启动并在端口80上监听。

我希望这能有所帮助。

O

我有同样的问题,这是因为IIS运行在服务器上,你可以停止它使用IIS管理器,如果这是你的情况。

如果你运行的是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 删除文件服务器下的工作文件夹功能对我有用

问题是如何释放它,简单地使用

net stop http

https://stackoverflow.com/a/16243333/777982 < a href = " https://stackoverflow.com/a/16243333/777982 " > < / >

类型netstat -a -n -b -o |more

如果停止World Wide Web Publishing Service有帮助的话

然后在IIS管理器中查看每个站点的绑定设置,通过选择一个站点并在侧面板上单击binding。然后如果需要,将端口80更改为其他端口。

工作解决方案-在Windows 10上测试

造成这种情况的原因有很多,我推荐的一个原因/解决方案是:

以管理员身份打开命令行,然后:

  1. 停止HTTP服务

Net停止HTTP /y

  1. 配置'http'服务默认为禁用

Sc config HTTP start=disabled

如果上述解决方案不工作,找到你的具体情况- 在这里

重新启动web服务器/XAMPP/Apache,你就完成了。


重新启用http服务

使用

sc config HTTP start= demand

解释的来源在这里

https://web.archive.org/web/20190917190806/http://servicedefaults.com/10/http/

如果您使用雷蛇产品并在PC上安装雷蛇Synapse软件,它也会阻塞端口80。

它不包括在netstat命令中,所以我无法排除故障。由于软件中包含了许多服务,所以我无法分析是哪个服务阻塞了端口。卸载Razer Synapse后,我可以在Windows 10上重新启动Apache服务器。

这个过程对我很有用:

  1. 右键单击我的电脑。
  2. 选择管理。
  3. 双击“服务和应用程序”。
  4. 然后双击“服务”。
  5. 右击“万维网出版服务”。
  6. 选择停止
  7. 重启XAMPP

我只是去服务和停止web部署代理

我停止了万维网出版服务,然后它就工作了。

以下五个步骤可以很容易地解决这个问题:

  1. 打开服务
  2. 右键单击万维网出版服务
  3. 单击停止

为防止此类问题再次发生:

  1. 属性
  2. 将启动类型更改为手册

维奥拉准备好了!

有关根本原因的更多信息:https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4-what-is-that

BranchCache是我的问题。我的决心是以管理员的身份运行Powershell,然后运行:

Disable-BC -Force

参考:https://learn.microsoft.com/en-us/powershell/module/branchcache/disable-bc?view=win10-ps

此外,“开发人员门户”(在Windows 10上)会导致系统在TCP端口上侦听。通常为50080和50443端口。

以编程方式标识流程

到目前为止,所有的答案都要求用户进行一些交互操作。这就是当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。

netsh http show urlacl

这个命令在前面的评论中提到过,但我想把它作为一个答案。它将为您提供系统中所有保留的url。如果你查阅了所有的“80”字的记录;在URL中,您将得到您的答案。

例如,在我的例子中,我得到:

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)

在快速的谷歌搜索之后,我了解到“NT AUTHORITY\NETWORK service &;属于SQL Server。所以我去了服务,停止SQL Server报告服务,端口80是空闲的,因为我检查netstat -a -b

在阅读了关于这个问题的每个答案并尝试了所有方法后,没有任何效果,我卸载并重新安装XAMPP,这是有效的。

在windows的最新版本中,这项服务被称为“万维网出版服务”。(W3SVC)

C:\Windows\system32\svchost.exe -k iissvcs

您可以通过转到Services (Services .msc)并停止服务,然后设置“启动类型”来停止此服务。→禁用用于防止它在windows启动时运行。

WINDOWS 11

对我来说,是万维网发布服务(World Wide Web Publishing Service)让系统使用80端口。

希望这对Win11新用户有所帮助。