使用 netstat -ano 可查看端口占用的 PID,再通过 tasklist 或资源监视器定位进程,以管理员权限运行可提升排查效果,最后用 taskkill /f /pid 强制结束非关键进程释放端口。

如果您尝试启动某个服务或应用程序,但提示端口已被占用,则可能是由于其他进程正在使用该端口。以下是使用 Windows 自带命令 netstat -ano 查看端口占用情况的具体操作步骤:
一、使用 netstat -ano 查看所有端口及对应 PID
该命令用于列出当前系统中所有活动的网络连接、监听端口及其关联的进程 ID(PID),是定位端口冲突的基础手段。
1、按下 Win + R 键打开“运行”对话框。
2、输入 cmd 并按回车,启动命令提示符。
3、在命令行中输入:netstat -ano,然后按回车执行。
4、观察输出列表中的 Local Address 和 PID 列,找到目标端口号(如 :8080)所在行对应的 PID 值。
二、通过 PID 查找具体占用程序
获取 PID 后需进一步确认该 PID 对应的可执行文件名称,以便识别是哪个程序占用了端口。
1、在命令提示符中输入:tasklist | findstr "PID数值"(将“PID数值”替换为上一步查到的实际数字,例如 1234)。
2、回车后将显示该 PID 对应的 Image Name(进程名)和内存占用等信息。
3、若 Image Name 显示为 svchost.exe 或 conhost.exe 等通用宿主进程,需结合 tasklist /svc /fi "pid eq PID数值" 进一步查看其承载的服务名。
三、使用资源监视器精确定位端口占用者
资源监视器提供图形化界面,可直观筛选并终止占用端口的进程,尤其适用于无法通过 tasklist 明确识别的场景。
1、按下 Ctrl + Shift + Esc 打开任务管理器。
2、切换至 性能 选项卡,点击底部的 打开资源监视器 链接。
3、在资源监视器窗口中,切换到 网络 选项卡。
4、在 监听端口 表格中,查找目标端口号,右侧 PID 和 进程 列即显示占用者。
5、右键该进程条目,选择 结束进程 即可释放端口。
四、以管理员身份运行命令提升排查权限
部分系统级或服务类进程(如 IIS、SQL Server)仅在管理员权限下才能被 netstat -ano 完整列出,普通用户权限可能遗漏关键项。
1、点击开始菜单,搜索 cmd。
2、在搜索结果中右键 命令提示符,选择 以管理员身份运行。
3、确认用户账户控制(UAC)弹窗后,再执行 netstat -ano 及后续命令。
五、结合 netstat 与 taskkill 强制结束占用进程
当确认某 PID 对应非关键进程且需立即释放端口时,可直接通过命令终止该进程,避免手动操作。
1、在管理员命令提示符中,输入:taskkill /f /pid PID数值(例如 taskkill /f /pid 5678)。
2、回车后若显示 成功终止进程,表示端口已释放。
3、重新运行 netstat -ano 验证该端口是否不再出现在监听列表中。










