加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows – SYSTEM(PID 4)正在使用端口80,那是什么?

发布时间:2020-12-13 19:28:43 所属栏目:Windows 来源:网络整理
导读:我正在尝试将端口80用于我的应用程序服务器,但是当我执行“netstat -aon”时,我得到了 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 当我在任务管理器中查找进程时,它显示PID 4是SYSTEM,就是它,而不是扩展……没有,只是“SYSTEM”.这里发生了什么? 我害怕结束这个
我正在尝试将端口80用于我的应用程序服务器,但是当我执行“netstat -aon”时,我得到了

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

当我在任务管理器中查找进程时,它显示PID 4是SYSTEM,就是它,而不是扩展……没有,只是“SYSTEM”.这里发生了什么?

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

虽然人们指出了特定的服务(例如“Web部署代理服务”),但这无法解决根本原因.如果你只是禁用触发问题的服务,那么将来可能会以略微不同的形式重新抬头.因此值得了解出现了什么问题,因为这会导致更好的解决方案.

当应用程序服务器想要完全控制端口80时会出现此问题.这与Windows的一项功能冲突,该功能旨在使多个进程能够处理端口80上的请求.完全可以让任意数量的进程都在端口上接收HTTP请求80,因为Windows有一个内置的HTTP调度机制.每个进程都可以告诉Windows它想要处理哪些URL.

但是,如果应用程序服务器完全忽略了这一点,那么您将回到灵活性较低的旧式套接字世界,其中只有一个进程可以接收发往任何特定端口的请求.

这可能没问题 – 如果你真的不想要在端口80上处理HTTP请求的特定进程以外的任何东西,那么使用不能支持Windows提供的更灵活机制的应用服务器就可以容忍了. (并且一些流行的应用程序服务器有这个限制.例如,AFAIK,Tomcat无法与其他人一起玩,并且坚持将端口80全部用于自身.所以如果你使用别人的应用服务器,那么它可能是不切实际的.使其适应使用首选机制.)

Windows试图通过不将其调度机制绑定到端口80来适应这种不灵活的服务,直到某些主动要求它为止. (这就是为什么你最初不一定会看到问题的原因,但是在某种更新或配置更改之后可能会遇到这个问题.)但是依靠这个并不是一个非常可靠的解决方案 – 你基本上相信运气,没有什么尝试在应用服务器启动之前在端口80下进行侦听. (进程可能会推测性地尝试在端口80上注册某些URL,并且如果不允许则返回,则有多种原因.)

因此,如果您希望一个服务具有对端口80的独占访问权限,那么您最好告诉Windows.尝试关闭可能尝试使用通常的端口共享机制的所有服务并不是很好,因为很难确信您已经找到了所有这些机制. (特别是当Windows更新似乎改变默认设置时.)禁用你所知道的那些可能是一种好习惯,但最好从两端接近:禁用你不想要的服务,并确保它不是你可能不知道要绊倒你的人.

默认情况下,HTTP.SYS(Windows中的基础端口共享HTTP分派机制)能够侦听所有地址.但你可以告诉它不要.此页面显示了一种方法:http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

这是一种相对较轻的方法,因为它仍然可以在localhost上侦听IPv6.它只是释放了IPv4端口80.您可以通过更专业的配置进一步使用它. (你甚至可以完全禁用HTTP.SYS,但这可能会破坏80以外的端口,所以它可能会导致问题.)

但无论你做什么,重点是确保HTTP.SYS不会尝试在你关心的IP地址上侦听端口80.完成后,您无需担心禁用服务,也不必担心重新引入问题的其他更改.如果您确保所需的端点实际上不受端口共享的约束,那么您应该发现系统进程停止绑定它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读