可通过netstat -ano查端口及PID,结合findstr过滤、tasklist查进程名,或用PowerShell一步获取进程名,亦可用资源监视器图形化定位。

如果您需要确认 Windows 系统中某个端口是否被占用,以及具体由哪个进程占用,则可通过 netstat 命令获取监听端口及其对应的进程 ID(PID)。以下是基于 netstat 实现端口占用排查的多种方法:
一、使用 netstat -ano 查看全部端口与 PID
该命令列出系统中所有活动连接、监听端口及对应进程 ID,是定位端口占用的基础操作。输出结果包含协议类型、本地地址(含端口号)、外部地址、连接状态和 PID,其中 PID 是后续匹配进程的关键标识。
1、按下 Win + R 组合键,输入 cmd 并回车,打开命令提示符。
2、在命令行中输入以下命令并回车:netstat -ano。
3、在输出列表中查找目标端口(例如 :8080),记录其所在行末尾的数字,即为该端口对应的 PID。
二、使用 netstat 与 findstr 联合过滤指定端口
当端口数量庞大时,直接查看全部输出效率较低;通过管道符 | 将 netstat 输出传递给 findstr,可快速筛选出含特定端口号的行,显著缩小排查范围。
1、在已打开的命令提示符中输入:netstat -ano | findstr ":8080"(将 8080 替换为实际需查询的端口号)。
2、确认返回结果中存在 LISTENING 状态的条目,其最后一列数值即为占用该端口的 PID。
3、若无任何输出,表示该端口当前未被任何进程监听或占用。
三、通过 tasklist 根据 PID 查询进程名称
netstat 仅提供 PID,无法直接显示进程名;tasklist 命令可依据 PID 检索运行中的进程映像名称(如 chrome.exe、java.exe),从而明确占用端口的具体程序。
1、记下上一步获得的 PID(例如 1234)。
2、在命令提示符中输入:tasklist | findstr "1234"。
3、输出结果中“映像名称”列显示的可执行文件名,即为实际占用端口的进程。
四、使用 PowerShell 一步获取端口对应进程名
PowerShell 提供更高效的对象化处理能力,无需分步查询 PID 与进程名,可直接通过端口号反查拥有该端口的进程全名,减少人工匹配误差。
1、右键点击“开始”按钮,选择 Windows PowerShell(管理员)。
2、输入以下命令(以端口 8080 为例):Get-NetTCPConnection -LocalPort 8080 | Select-Object -ExpandProperty OwningProcess,回车获取 PID。
3、将上步返回的 PID(如 5678)代入下一条命令:Get-Process -Id 5678 | Select-Object ProcessName,回车后直接显示进程名称。
五、通过资源监视器图形化定位端口占用进程
对于不熟悉命令行的用户,资源监视器提供可视化界面,以表格形式展示所有监听端口及其关联进程,支持排序、筛选与实时刷新,操作直观且不易出错。
1、按下 Ctrl + Shift + Esc 打开任务管理器。
2、切换至 性能 选项卡,点击底部的 打开资源监视器 链接。
3、在资源监视器窗口中,切换到 网络 选项卡,展开 监听端口 列表。
4、在“端口”列中查找目标端口号,对应“进程”列中显示的程序名称即为占用者。










