Windows 10中定位占用端口的程序,可依次使用netstat -ano查PID、findstr筛选端口、tasklist反查进程名、任务管理器验证、资源监视器图形化查看,或PowerShell直接获取进程全路径。

如果您在Windows 10中遇到端口冲突或服务启动失败,很可能是某个程序正在占用目标端口。以下是定位该程序的多种实操方法:
一、使用netstat命令列出全部端口及对应PID
该方法通过系统内置netstat工具获取所有监听和已建立连接的端口快照,并附带进程唯一标识符(PID),为后续匹配程序名称提供原始依据。
1、同时按下Win + R键,打开“运行”对话框。
2、输入cmd,按回车键启动命令提示符窗口。
3、在命令提示符中输入命令:netstat -ano,并回车执行。
4、观察输出列表中的“本地地址”列,冒号后数字即为端口号;最右侧“PID”列为该连接所属进程的编号。
二、筛选指定端口并提取其PID
当已知需排查的具体端口号(如80、3306、8080)时,可直接过滤netstat结果,避免人工逐行扫描,快速锁定目标行及其PID值。
1、在上一步命令提示符窗口中,输入命令:netstat -aon | findstr "8080"(将8080替换为实际端口号)并回车。
2、确认返回结果中存在匹配行,检查“本地地址”列端口号是否准确,记录该行末尾的数字——即该端口对应的PID。
3、若返回多行,优先关注状态列为LISTENING的TCP条目,该类条目代表程序正在主动监听该端口。
三、通过tasklist命令反查进程名称
该方式不依赖图形界面,在无鼠标、远程CMD或自动化脚本场景下仍可独立完成,直接将PID映射为可识别的程序文件名。
1、保持当前命令提示符窗口开启,输入命令:tasklist | findstr "12345"(将12345替换为上一步查得的实际PID)并回车。
2、输出结果中第二列为“映像名称”,例如java.exe、nginx.exe或svchost.exe,即为占用端口的程序可执行文件名。
3、若输出为空,请确认PID输入正确,且该进程仍在运行;部分系统服务可能需管理员权限才能完整显示。
四、在任务管理器“详细信息”页验证PID与进程名
任务管理器提供可视化交互界面,支持列排序与高亮,可直观核对命令行结果,增强排查过程的可靠性与可追溯性。
1、按下Ctrl + Shift + Esc快捷键,直接打开任务管理器。
2、切换到“详细信息”选项卡。
3、右键点击任意列标题,在弹出菜单中勾选PID,确保该列可见。
4、点击PID列标题进行升序排列,快速定位目标PID所在行,确认其“映像名称”列内容与tasklist命令结果一致。
五、使用资源监视器图形化查看监听端口
资源监视器是Windows原生图形工具,无需记忆命令即可实时展示各进程使用的网络端口,尤其适合不熟悉命令行的用户快速识别占用者。
1、在任务管理器“性能”选项卡底部,点击打开资源监视器链接。
2、切换到“网络”标签页,向下滚动至监听端口区域。
3、在该列表中,可直接按“端口”列排序,查找目标端口号;其对应“进程”列即显示占用该端口的程序全名(如chrome.exe)及完整路径。
六、使用PowerShell一次性获取进程全路径
PowerShell提供面向对象的管道机制,可绕过PID中间环节,直接根据端口号返回进程ID及完整路径,适用于需要精确溯源或批量处理的场景。
1、右键点击“开始”按钮,选择Windows PowerShell(管理员)以提升权限。
2、输入命令:Get-NetTCPConnection -LocalPort 8080 | ForEach-Object { Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue }(将8080替换为实际端口号)并回车。
3、输出结果中ProcessName字段为程序名,Path字段为可执行文件完整路径,可据此判断是否为预期程序。











