可通过netstat -ano命令确认端口占用并获取PID:先运行netstat -ano列出所有端口及PID,再用findstr过滤指定端口,接着用tasklist查进程名;也可用资源监视器图形化查看,或用PowerShell的Get-NetTCPConnection直接获取PID及进程名。

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










