netstat -ano 可查端口占用,需关注本地地址、状态和pid三列;用 findstr ":端口号" 精准过滤;再用 tasklist | findstr "pid" 查进程名;注意加冒号避免误匹配,pid 4 多为系统服务。
直接用 netstat -ano 就能查清端口占用情况,关键在理解输出字段和后续定位步骤。
查所有端口状态(基础全景)
这是第一步,先掌握系统整体网络连接和监听情况:
- 按 Win + R,输入
cmd回车打开命令提示符 - 执行命令:
netstat -ano - 输出中重点关注三列:本地地址(含端口号)、状态(State)、PID(最右一列数字)
- LISTENING 表示该端口正在被程序监听,是最常需要排查的状态;ESTABLISHED 是已建立的连接;UDP 条目无状态字段
精准定位某个端口(快速过滤)
如果已经知道目标端口号(比如 3306、8080),不用翻完整列表:
- 执行命令:
netstat -ano | findstr ":3306"(注意冒号,避免匹配到 33060、13306 等干扰项) - 返回结果中,最后一列数字就是占用该端口的 PID
- 若无任何输出,说明该端口当前未被占用
根据 PID 找到具体程序名
光有 PID 不知道是哪个程序,需进一步确认:
- 执行命令:
tasklist | findstr "12345"(把 12345 替换为上一步查到的实际 PID) - 输出中的 映像名称(Image Name) 就是进程文件名,例如
mysqld.exe、chrome.exe、java.exe - 如果没结果,可能是权限不足——请右键“命令提示符”,选择“以管理员身份运行”后重试
补充提醒:几个常见易错点
实际操作中容易卡在这几个地方:
-
findstr "80"会匹配 80、8080、180 等所有含“80”的字符串,推荐加冒号写成":80"更准确 - PID 为 4 通常对应 System 进程,但实际多是 IIS、SQL Server 或 Hyper-V 等服务在背后运行,不建议直接终止
- 某些系统服务(如 svchost.exe)会托管多个子服务,单看进程名不够,可配合 PowerShell 命令查详细路径或资源监视器确认









