在 Windows 里用 CMD(命令提示符) 查端口占用,核心就两条命令:netstat 和 tasklist。下面按最常用 → 进阶给你完整步骤。
一、查某个端口被谁占用(最常用)
以查 8080 端口为例:
第 1 步:用 netstat 找到 PID
bat
netstat -ano | findstr :8080
输出类似:
纯文本
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234
TCP [::]:8080 [::]:0 LISTENING 1234
最后一列 1234 就是 PID(进程ID)
第 2 步:用 PID 查程序名
bat
tasklist | findstr 1234
输出类似:
纯文本纯文本java.exe 1234 Console 1 256,000 K
? 这就知道是 java.exe 占用了 8080 端口。
第 3 步(可选):结束该进程
bat
taskkill /PID 1234 /F
/F = 强制终止。不放心的话先不加 /F 试试软终止。
二、一次性查所有端口占用情况
bat
netstat -ano
参数
含义
-a
显示所有连接和监听端口
-n
以数字形式显示地址和端口(不解析域名,更快)
-o
显示 PID(关键!)
输出字段说明:
纯文本
协议 | 本地地址 | 外部地址 | 状态 | PID
三、查所有正在监听的端口(更清爽)
bat
netstat -an | findstr LISTENING
只列出正在监听的端口,排除已建立的连接,看起来更干净。
四、用 PowerShell(Win10/11 推荐,信息更全)
如果你用的是 PowerShell(不是 CMD),一条命令直接出端口 + 程序名:
powershell
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalPort, State, OwningProcess
然后再查进程名:
powershell
Get-Process -Id 1234
或者一步到位:
powershell
Get-NetTCPConnection -LocalPort 8080 | ForEach-Object { Get-Process -Id $_.OwningProcess }
五、常见端口速查表

六、查到之后怎么处理?

注意事项
建议以管理员身份运行 CMD/PowerShell,否则部分系统进程信息可能看不到
不要随意结束不认识的 PID,尤其是 PID 为 4(System) 的进程
WSL2 的端口映射比较特殊,查不到的话检查 WSL 的网络配置





