17370845950

Windows怎么查看端口占用 Win10/Win11命令行查看端口教程
遇到“端口已被占用”错误时,可先用netstat -ano查看监听端口及PID,再用tasklist或wmic查进程名;PowerShell中可用Get-NetTCPConnection一键获取端口、状态、进程名和PID;资源监视器提供图形化验证;确认非关键进程后,用taskkill /F /PID或/IM终止。

如果您在运行某个网络服务或应用程序时遇到“端口已被占用”错误,可能是其他进程正在使用该端口。以下是通过 Windows 10/11 命令行查看端口占用情况的具体方法:

一、使用 netstat 查看所有监听端口及对应 PID

netstat 是 Windows 内置的网络统计工具,可列出当前所有活动连接和监听端口,并显示占用端口的进程 ID(PID)。结合 tasklist 可进一步识别进程名称。

1、以管理员身份打开命令提示符(CMD)或 PowerShell。

2、输入以下命令并回车:netstat -ano -p TCP

3、若需查看特定端口(如 8080),执行:netstat -ano | findstr :8080

4、记下输出结果中“PID”列的数字(例如 12345)。

二、根据 PID 查询进程名称

获取 PID 后,需定位其对应的可执行文件名,以便判断是否为预期进程或可疑程序。

1、在同一条命令提示符中,输入:tasklist | findstr 12345(将“12345”替换为实际 PID)。

2、观察输出中的“Image Name”列,确认进程名(如 conhost.exe、java.exe、nginx.exe 等)。

3、如需更详细信息(含完整路径),可改用:wmic process where "ProcessId=12345" get Name,ExecutablePath,CommandLine

三、使用 PowerShell 一键查询端口与进程详情

PowerShell 提供更结构化的对象处理能力,可直接关联端口、协议、进程名与路径,无需手动匹配 PID。

1、以管理员身份启动 PowerShell。

2、执行以下命令(以端口 3389 为例):Get-NetTCPConnection -LocalPort 3389 | ForEach-Object { $pid = $_.OwningProcess; [PSCustomObject]@{Port=$_.LocalPort; State=$_.State; ProcessName=(Get-Process -Id $pid -ErrorAction SilentlyContinue).Name; PID=$pid} }

3、如需查询所有监听中的 TCP 端口,将 -LocalPort 3389 替换为 -State Listen

四、使用资源监视器图形化辅助验证

资源监视器提供实时、可视化的端口占用视图,适合不熟悉命令行的用户交叉核对结果。

1、按 Ctrl + Shift + Esc 打开任务管理器,切换到“性能”选项卡,点击底部“打开资源监视器”。

2、切换到“网络”选项卡,展开“监听端口”区域。

3、在列表中查找目标端口,观察“进程”列对应的应用程序名称及 PID,与命令行结果比对。

五、终止占用端口的进程(谨慎操作)

确认进程非系统关键服务后,可选择强制结束以释放端口。此操作可能导致相关应用异常退出。

1、在命令提示符中执行:taskkill /F /PID 12345(将“12345”替换为目标 PID)。

2、若已知进程名(如 nginx.exe),也可直接终止:taskkill /F /IM nginx.exe

3、执行后检查端口是否已释放:netstat -ano | findstr :端口号,若无输出则表示已释放。