首先通过命令提示符运行netstat -ano查找占用端口的PID,再结合任务管理器或tasklist命令确定对应进程名称;也可使用PowerShell的Get-NetTCPConnection和Get-Process命令直接查询端口所属进程,高效定位并解决Windows 11中因端口被占导致的服务启动失败问题。
如果您需要在Windows 11系统中排查网络服务启动失败的问题,很可能是因为目标端口已被其他进程占用。了解具体是哪个进程占用了端口,是解决问题的关键步骤。
本文运行环境:Dell XPS 13,Windows 11
一、使用命令提示符结合任务管理器
该方法通过命令行工具定位占用端口的进程ID(PID),再利用图形化任务管理器识别具体进程名称,操作直观且无需额外安装软件。
1、按下 Win + R 组合键打开“运行”对话框,输入 cmd 并按回车键,或右键开始菜单选择“终端(管理员)”以管理员身份运行命令提示符。
2、在命令提示符窗口中输入以下命令并按回车执行,列出所有活动连接和监听端口:
netstat -ano
3、观察输出列表,找到您怀疑被占用的端口号(例如8080),记下该行末尾对应的PID数字。
4、按下 Shift + Ctrl + Esc 组合键直接打开任务管理器。
5、在任务管理器中切换到“详细信息”选项卡,查找与之前记录的PID相匹配的进程,即可确认是哪个程序占用了该端口。
二、使用命令提示符管道筛选特定端口
此方法利用管道符和字符串查找命令,直接从netstat的输出中筛选出指定端口的信息,避免了在大量数据中手动查找,提高了效率。
1、以管理员身份打开命令提示符或Windows终端。
2、输入以下命令并按回车执行,将8080替换为您要查询的实际端口号:
netstat -ano | findstr :8080
3、命令执行后,输出结果将只包含与该端口相关的信息,重点关注最后一列的PID。
4、使用 tasklist | findstr PID值 命令(将PID值替换为实际数字)来直接查询进程名称,例如:
tasklist | findstr 1234
三、使用PowerShell命令查询
PowerShell提供了更强大的对象处理能力,可以直接根据端口获取进程信息,适合习惯使用脚本的用户。
1、右键点击开始按钮,选择“Windows PowerShell(管理员)”或“终端(管理员)”。
2、在PowerShell窗口中输入以下命令并按回车执行,将8080替换为目标端口号:
Get-NetTCPConnection -LocalPort 8080 | Select-Object -ExpandProperty OwningProcess
3、命令会返回占用该端口的进程PID。
4、接着输入以下命令,将[PID]替换为上一步得到的实际PID数字,以获取进程名称:
Get-Process -Id [PID]