可通过netstat -ano命令查看端口与PID映射,再用findstr过滤端口、tasklist查进程名,或用PowerShell、资源监视器、TCPView等工具定位并管理占用端口的程序。

如果您需要确认 Windows 10 系统中某个端口是否被占用,或想找出具体是哪个程序正在监听指定端口,则可通过系统内置命令 netstat -ano 快速获取端口与进程的映射关系。以下是多种可行的操作路径:
一、使用命令提示符配合 netstat -ano 查看全部端口及 PID
该命令可一次性列出所有 TCP/UDP 连接、监听端口及其关联的进程标识符(PID),是定位端口占用的基础手段。
1、按下 Win + R 组合键打开“运行”对话框。
2、输入 cmd 并按回车,启动命令提示符窗口。
3、在窗口中输入以下命令并回车:netstat -ano。
4、观察输出结果中的“本地地址”列(含冒号后端口号,如 :8080)、“状态”列(显示 LISTENING 表示端口正被监听)以及最右侧的“PID”列。
二、用 findstr 精准过滤指定端口的占用记录
当已知目标端口号(如 3306、8080)时,无需人工浏览长列表,可借助管道符与 findstr 命令直接筛选出相关行,提高效率。
1、在已打开的命令提示符中,输入格式为:netstat -ano | findstr ":8080"(注意保留冒号以避免误匹配 PID)。
2、若无返回结果,尝试去掉冒号再执行:netstat -ano | findstr "8080"(部分系统版本对格式敏感)。
3、成功匹配后,从输出行末尾提取 PID 数值(例如 12345)。
三、通过 tasklist 查询 PID 对应的进程名称
获得 PID 后,需将其与实际运行的程序名称建立对应关系,以便识别是合法服务还是异常进程。
1、在命令提示符中输入:tasklist | findstr "12345"(将 12345 替换为上一步查得的实际 PID)。
2、输出结果第一列为 映像名称(如 java.exe、nginx.exe、svchost.exe)。
3、若输出为空,说明该 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 字段即为占用端口的程序信息。
五、通过资源监视器图形化查看监听端口
资源监视器提供可视化界面,无需记忆命令,适合不熟悉命令行操作的用户快速定位端口与进程关系。
1、按下 Win + R,输入 resmon 并回车,启动资源监视器。
2、点击顶部选项卡中的 网络。
3、向下滚动至 监听端口 区域,此处按端口号排序列出所有处于 LISTEN 状态的端口。
4、每行包含端口号、协议类型、进程名称、PID 及完整可执行文件路径等信息。
六、借助第三方工具 TCPView 快速识别并结束进程
TCPView 是微软 Sysinternals 官方提供的轻量级工具,支持实时刷新、颜色高亮及一键终止,适用于复杂排查场景。
1、从 Sysinternals 官网下载 TCPView 并解压运行(无需安装)。
2、启动后自动扫描所有 TCP/UDP 端口,列表默认按端口号升序排列。
3、在“Local Port”列中查找目标端口,其所在行的“Process”列即为占用程序名称。
4、右键单击该行,选择 End Process 即可强制关闭对应进程并释放端口。










