window系统80端口被占用 ,解除了NT Kernel & System PID=4 进程占用80端口,先判断是否开启了sqlserver报表服务

这篇博客介绍了如何处理Windows系统中NT Kernel&Systen进程占用80端口导致的冲突,通过cmd的netstat命令定位到PID=4的进程,然后通过修改注册表将HTTP服务的启动参数从3改为4,重启电脑释放80端口,使得Tomcat可以正常使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window系统80端口被占用问题排查

tomcat 配置的80端口 ,启动时报错80端口 冲突

我这边window 虚拟机服务器是运维人员新配置的,80冲突,然后我把java程序都关闭,已查到不到java的进程

之前已经处理过几次,都没记录,这次记录下,原因我已经猜到了,是window一个自带的服务占用了80端口

1.cmd 执行指令

netstat -ano

执行netstat -ano|findstr 80 可以模糊查找,不过他查询的是包含80的端口和pid,netstat -ano|findstr 80XX 3-4位数的端口比较准确定位

netstat -ano|findstr 80

只要包含了80就会查询出来

通过find查询4位数的端口就比较准确了

看到80端口被PID=4的进程占用了

2.任务管理器查找pid=4的进程的的程序 NT Kernel & System

这是一个window系统进程,具体作用我也不太清楚,下一步我们要把它占用的80端口解除掉

因为这个是window进程,不是随意kill进程,而是通过修改注册表方式接触80端口占用

一、先判断是否开启了sqlserver报表服务

说明:发现如果服务器按照了sqlserver数据库,并且开启了sqlserver报表服务的话,windwos的NT Kernel & System系统进程使用的端口就成了80了,所以后续碰到80端口被占用先判断是否开启了sqlserver报表服务。

步骤:windows运行窗口,输入services.msc

先看是否安装了SQL server数据库服务,安装了查看

SQL Server Reporting Services (MSSQLSERVER) 服务是否开启,如果是开启的话关闭,然后启动类型改为禁用。

关闭禁用了,重启操作系统,再次查看发现PID为4的NT Kernel & System系统进程的端口从80变成变为445了

二、NT Kernel & System修改默认80端口,下面通过注册表解除占用80

如果和sqlserver报表服务没关系在使用通过注册表解除占用80的方式

3.1运行-》regedit

3.2找到HKEY_LOCAL_MACHINE目录

3.3找到System

3.4找到CurrentControlSet--》Services

3.5再找到http,点击http找到Start参数

3.6 打开,将3改为4,确定,记得选10进制

 3.7重启电脑,就解除了NT Kernel & System占用80端口,如果要使用vs能够正常运行,则反过来把4改成3即可。

重启后再次查看,pid=4的进程没占用80端口了,现在tomcat可以使用80端口了。

### Windows 查看端口占用情况的方法 #### 使用命令提示符 (CMD) 进入命令提示符的方式是在开始菜单中选择“运行”,然后输入 `cmd` 并按回车键。 为了查看所有连接及其对应的 PID进程标识符),可以执行如下命令: ```bash netstat -ano ``` 这会显示所有活动的 TCP 和 UDP 连接以及监听状态下的本地地址和外部地址,还有每个条目的关联进程 ID(PID)[^1]。 对于特定端口的查询,则可以通过管道操作结合 `findstr` 来实现。例如要查找端口号为 80服务,应使用下面这条指令: ```bash netstat -aon | findstr "80" ``` 上述命令将会过滤出包含字符串 `"80"` 的行,从而帮助定位到具体的端口信息[^2]。 一旦获得了目标端口对应的 PID 后,在任务管理器里能够进一步确认该 PID 所属的具体应用程序。如果在任务管理器中的列视图找不到 PID 列,可通过点击“查看”-> “选择列...”,勾选上 PID 复选项使其可见。 另外一种方式是利用 `tasklist` 命令配合 `findstr` 工具来获取某个具体 PID 对应的应用程序名。比如已知某端口PID 为 1234进程持有,那么可以用下列语句找出它所属的服务或应用: ```bash tasklist | findstr "1234" ``` 当遇到像系统内核 (`NT Kernel & System`)这样的特殊进程占用端口时,通常意味着这是操作系统本身的一部分正在使用的资源,处理这类问题可能需要更深入的研究或是调整配置文件[^3]。 最后,若决定终止某个进程以释放其所持有的端口,可以根据获得的 PID 或者直接依据进程的名字来进行强制停止。这里给出两种不同的做法作为参考: - **基于 PID 关闭**: ```bash taskkill /F /T /PID <Your_PID> ``` - **按照进程名称关闭**: ```bash taskkill /F /T /IM <Process_Name>.exe ``` 以上就是关于如何在 Windows 上检查哪些程序正占用着网络端口的一些基本指导[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值