Windows 10 提供五种定位端口占用者的方法:一、netstat -ano 查看所有端口及PID;二、findstr 精准过滤指定端口;三、tasklist 查询PID对应进程名;四、资源监视器图形化查看监听端口;五、PowerShell直接获取端口对应进程信息。

如果您尝试启动某项网络服务,但提示“端口已被占用”或无法绑定指定端口,则很可能是该端口号正被其他进程监听或使用。以下是通过 Windows 10 系统内置工具定位端口占用者的多种方法:
一、使用命令提示符配合 netstat -ano 查看全部端口及 PID
该命令可一次性列出所有 TCP/UDP 连接、监听端口及其关联的进程标识符(PID),是识别端口占用的基础手段,无需安装第三方软件,适用于所有标准 Win10 安装环境。
1、同时按下 Win + R 组合键,打开“运行”对话框。
2、输入 cmd 并按回车,启动命令提示符窗口。
3、在窗口中输入以下命令并回车:netstat -ano。
4、观察输出结果中的“本地地址”列(含冒号后端口号,如 :8080)、“状态”列(显示 LISTENING 表示端口正被监听)以及最右侧的“PID”列。
二、用 findstr 精准过滤指定端口的占用记录
当已知目标端口号(如 3306、8080 或 5000)时,直接筛选 netstat 输出可避免人工扫描大量条目,显著提升定位效率,尤其适用于多服务共存的系统环境。
1、在已打开的命令提示符中,输入格式为:netstat -ano | findstr ":8080"(注意保留冒号以精准匹配端口字段,防止误匹配 PID)。
2、若无返回结果,尝试去掉冒号再执行:netstat -ano | findstr "8080"(部分 Windows 版本对格式敏感)。
3、成功匹配后,从输出行末尾提取 PID 数值(例如 12345)。
三、通过 tasklist 查询 PID 对应的进程名称
获得 PID 后,需将其与实际运行的程序名称建立对应关系,以便识别是合法服务(如 nginx.exe、java.exe)还是异常进程,这是判断是否可安全终止的关键环节。
1、在命令提示符中输入:tasklist | findstr "12345"(将 12345 替换为上一步查得的实际 PID)。
2、输出结果第一列为映像名称(如 node.exe、mysqld.exe、svchost.exe)。
3、若输出为空,说明该 PID 进程已退出但端口状态未刷新;可等待数秒后重试,或执行 netstat -ano 再次验证。
四、使用资源监视器图形化查看监听端口
资源监视器提供免命令、全字段可视化的界面,直接展示协议类型、完整进程路径、用户账户及网络吞吐量,适合不熟悉命令行或需交叉验证的用户快速确认端口归属。
1、同时按下 Win + R 键,输入 resmon 并按回车,启动资源监视器。
2、点击顶部选项卡中的 网络。
3、向下滚动至 监听端口 区域,此处按端口号排序列出所有处于 LISTEN 状态的端口。
4、每行包含端口、协议、进程、PID、路径等完整信息,可直接定位占用者。
五、使用 PowerShell(管理员权限)直接获取端口对应进程
PowerShell 提供更简洁的 cmdlet,能绕过 PID 中转步骤,直接根据端口号查出进程名和完整路径,减少人为误操作风险。
1、右键点击“开始”按钮,选择 Windows PowerShell(管理员) 以提升权限运行。
2、输入命令:Get-NetTCPConnection -LocalPort 8080 | Select-Object -ExpandProperty OwningProcess(将 8080 替换为目标端口)。
3、记下返回的 PID,再执行:Get-Process -Id 12345(替换为实际 PID)。
4、结果中 ProcessName 和 Path 字段即为占用端口的程序信息。










