Windows 端口被占用,如何找到占用进程并按 PID 结束它?

在 Windows 上用 PowerShell 查出监听端口的 PID,结束该进程,并确认端口已经释放。

Windows进程网络终端端口PowerShelltaskkill中风险
先用 Get-NetTCPConnection 找到 OwningProcess,再按这个 PID 结束进程。

快速开始

Windows 不允许两个进程绑定同一个 TCP 端口,后启动的程序常会报“address already in use”或“Only one usage of each socket address is normally permitted”。解决办法就是查出监听该端口的确切 PID,结束它,然后验证端口已经释放。

症状

?应用、开发服务器或服务启动失败,提示端口已被占用。常见信息包括 EADDRINUSE、bind,或“每个套接字地址只允许使用一次”。

先找出监听该端口的进程

先做这一步,因为拿到 PID 后,下一步才能安全且精确地结束进程。运行监听列表,再按报错里的端口号(例如 8080 或 3000)筛选。OwningProcess 一列就是你要的 PID,先记下来。如果没有任何进程在监听,冲突可能来自 UDP 套接字或其他用户会话。

netstat 的 PowerShell 原生替代品:按状态、端口、进程过滤连接,输出可直接管道处理而不用解析文本。

命令
$ Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess

按 PID 结束进程

把上一步记下的 OwningProcess 数字填入命令中的 <PID> 位置。这会结束该进程及其派生的子进程,通常正是开发服务器或应用留下工作进程时需要的做法。强制结束前,请确认这个 PID 就是监听你端口的那个进程。

用查到的数字 PID 结束某个进程以及它启动的所有子进程。

命令
$ taskkill /PID <PID> /T /F
!结束错误的进程可能导致未保存的工作丢失,或停掉 Windows 服务。请确认 PID 对应你预期的监听进程;只有在子进程确实属于该应用时才终止整个进程树。

如何确认已解决

在同一台机器上测试该端口:如果没有响应,说明监听进程已经消失。然后重新启动需要该端口的应用。

来源

  • PING - Windows CMD
    SS64 · technical · 2026-09-17
    依据: SS64 explains ping only tests ICMP echo, which many hosts and firewalls block, unlike a TCP port test.
  • Get-NetTCPConnection - PowerShell
    SS64 · technical · 2026-09-17
    依据: SS64 shows Get-NetTCPConnection usage with -State Listen and -LocalPort filters for listing bound ports.
  • Get-NetTCPConnection | Microsoft Learn
    Microsoft · vendor-doc · 2026-09-17
    依据: Microsoft documents Get-NetTCPConnection parameters including -State with the Listen value and the OwningProcess property returned for each connection.
  • taskkill — Microsoft Learn
    Microsoft · vendor-doc · 2026-09-21
    依据: /PID <processid> specifies the process to terminate; /T ends the specified process and any child processes started by it; /F forces termination.
  • taskkill — Windows CMD reference
    SS64 · technical · 2026-09-21
    依据: TASKKILL /PID pid /T /F terminates the given process and its child processes forcefully.
  • Test-NetConnection - PowerShell
    SS64 · technical · 2026-09-17
    依据: SS64 documents Test-NetConnection's -Port parameter for testing TCP connectivity and the TcpTestSucceeded result property.

最后验证: 2026-09-22

相关指南