端口被占用时可用多种命令行方法检测:一、netstat -ano 查所有监听端口及PID;二、netstat -aon | findstr 筛选指定端口;三、tasklist 查询PID对应进程名;四、PowerShell用Get-NetTCPConnection和Get-Process直接定位;五、资源监视器图形化查看监听端口详情。

如果您尝试启动某个网络服务,但提示“端口已被占用”或“地址已在使用”,则可能是该端口正被其他进程监听或连接。以下是快速检测端口是否被占用的多种命令行方法:
一、使用 netstat -ano 查看全部监听端口
该命令列出系统中所有活动的 TCP/UDP 连接及监听端口,并显示对应进程 ID(PID),是端口占用检测的基础操作。
1、按下 Win + R 打开“运行”对话框,输入 cmd 并回车,启动命令提示符。
2、在命令提示符中输入以下命令并回车:netstat -ano。
3、观察输出中的 Local Address 列(如 :8080 表示本地 8080 端口),以及 State 列(LISTENING 表明该端口正在被监听)和最右侧的 PID 列。
二、用 findstr 快速筛选指定端口号
当已知目标端口(如 3306、8080)时,可结合管道符与 findstr 直接过滤匹配行,避免人工浏览大量输出。
1、在已打开的命令提示符中,输入格式化命令(以端口 8080 为例):netstat -aon | findstr ":8080"。
2、若无返回结果,尝试去掉冒号再执行:netstat -aon | findstr "8080"(部分 Windows 版本对格式敏感)。
3、成功匹配后,输出行最右侧的数字即为占用该端口的 PID(如 5678)。
三、通过 tasklist 查询 PID 对应的进程名称
获取 PID 后,需确认其代表的具体程序名称,以便判断是否为预期服务或异常进程。
1、在命令提示符中输入:tasklist | findstr "5678"(将 5678 替换为上一步查得的实际 PID)。
2、输出结果中第一列为映像名称(如 java.exe、nginx.exe 或 svchost.exe)。
3、若输出为空,说明该 PID 对应进程已退出但端口状态尚未刷新;可等待数秒后重试或重启相关服务。
四、使用 PowerShell 获取端口与进程的直接关联
PowerShell 提供更精准的内置 cmdlet,可跳过 PID 中转步骤,直接定位端口归属进程。
1、右键点击“开始”按钮,选择 Windows PowerShell(管理员) 启动。
2、输入以下命令(将 8080 替换为目标端口号):Get-NetTCPConnection -LocalPort 8080 | Select-Object -ExpandProperty OwningProcess。
3、命令输出即为占用该端口的 PID。
4、接着输入:Get-Process -Id 5678(将 5678 替换为上步所得 PID),返回结果中的 ProcessName 字段即为程序名。
五、通过资源监视器图形化验证监听端口
资源监视器提供无需记忆命令的可视化界面,适合快速确认端口占用关系及进程路径等完整信息。
1、按下 Win + R,输入 resmon 并回车,启动资源监视器。
2、切换到顶部 网络 选项卡。
3、向下滚动至 监听端口 区域,此处按端口号排序列出所有处于 LISTEN 状态的端口。
4、每行包含 端口、协议、进程名称、PID 和映像路径 等字段,可直接识别占用来源。










