Windows 中查看端口占用并结束进程的方法
在开发或运维过程中,经常会遇到 “端口被占用” 的问题(如启动服务时提示 “Address already in use”)。以下是通过 CMD 命令行快速定位端口占用进程并结束它的完整步骤:
查看指定端口被哪个进程占用
打开 CMD 命令行:
按下Win + R
,输入cmd
,回车打开命令提示符(无需管理员权限)。执行端口查询命令:
使用netstat
命令结合findstr
筛选目标端口,语法如下:1
netstat -ano | findstr "端口号"
netstat -ano
:列出所有网络连接(-a
)、显示端口号(-n
)、显示进程 ID(-o
)。findstr "端口号"
:从结果中筛选包含目标端口的记录。
示例:查询 8990 端口的占用情况
1
netstat -ano | findstr "8990"
解析结果:
输出格式为:协议 本地地址:端口 外部地址 状态 进程ID(PID)
例如:1
TCP 127.0.0.1:8990 0.0.0.0:0 LISTENING 2700
说明:8990 端口被进程 ID 为 2700的程序占用,状态为 “LISTENING”(监听中)。
根据进程 ID 查询进程名称
通过第一步获取的进程 ID(PID),可以进一步找到对应的程序名称:
执行进程查询命令:
使用tasklist
命令结合findstr
筛选进程 ID,语法如下:1
tasklist | findstr "进程ID"
示例:查询 PID 为 2700 的进程名称
1
tasklist | findstr "2700"
解析结果:
输出格式为:进程名称 PID 会话名 会话号 内存使用
例如:1
kxescore.exe 2700 Services 0 29,284 K
说明:占用 8990 端口的进程是
kxescore.exe
(通常是金山毒霸的相关服务)。
结束占用端口的进程
找到进程后,可通过以下方式结束它:
方法 1:通过命令行强制结束(推荐)
以管理员身份打开 CMD(右键 CMD 图标,选择 “以管理员身份运行”)。
执行结束进程命令:
1
taskkill /f /pid 进程ID
/f
:强制结束进程(即使进程无响应)。/pid
:指定进程 ID。
示例:结束 PID 为 2700 的进程
1
taskkill /f /pid 2700
成功后会提示:
成功: 已终止 PID 为 2700 的进程。
方法 2:通过任务管理器结束
- 打开任务管理器:
按下Ctrl + Shift + Esc
,或右键任务栏选择 “任务管理器”。 - 切换到 “详细信息” 标签(Windows 10/11),找到对应 PID 或进程名称的条目。
- 右键选择 “结束任务” 即可。
常见问题解决
- 提示 “无法终止进程”:
需以管理员身份运行 CMD,或在任务管理器中勾选 “显示所有用户的进程” 后重试。 - 端口占用查询无结果:
可能端口未被占用,或目标端口使用的是 UDP 协议(可尝试netstat -ano -p udp | findstr "端口号"
)。 - 快速定位多个端口:
可同时查询多个端口,例如:netstat -ano | findstr "8080 8990 3306"
。
1.查看当前端口被哪个进程占用了(进入到CMD中)
1 | netstat -ano|findstr "8990" |
输出结果为:
TCP 127.0.0.1:8990 0.0.0.0:0 LISTENING 2700
我们发现8990端口被2700进程占用了
2.基于进程号找进程名称
1 | tasklist|findstr "2700" |
输出结果为:
kxescore.exe 2700 Services 0 29,284 K
可以去任务管理器停止kxescore.exe应用
v1.3.10