可使用netstat命令确认Windows端口占用:一、以管理员身份运行cmd;二、执行netstat -ano查PID;三、用tasklist /fi "pid eq XXXX"查进程名;四、用netstat -aon | findstr :端口号筛选;五、PowerShell中可用Get-NetTCPConnection查询。

如果您需要确认某个端口在Windows系统中是否已被其他进程占用,可以使用内置的netstat命令进行查询。以下是使用netstat命令查看端口占用情况的具体步骤:
一、以管理员身份运行命令提示符
netstat的部分功能(如显示占用端口的进程ID)需要提升权限才能正常执行,否则可能无法获取完整信息。
1、点击“开始”菜单,在搜索栏中输入“cmd”。
2、在搜索结果中右键单击“命令提示符”,选择以管理员身份运行。
3、若弹出用户账户控制(UAC)提示,点击“是”继续。
二、使用netstat -ano列出所有监听端口及对应PID
该命令可显示当前所有活动的TCP和UDP连接、监听端口及其关联的进程ID(PID),是判断端口占用的基础操作。
1、在管理员命令提示符窗口中,输入以下命令并按回车:netstat -ano。
2、等待命令执行完成,观察输出列表中的“Local Address”列,查找目标端口号(例如:3306、:8080等)。
3、记下该行末尾显示的PID值(进程标识符),用于后续定位具体进程。
三、通过PID查找对应进程名称
netstat仅显示PID,需结合tasklist命令将PID映射为可识别的进程名,从而明确哪个程序占用了端口。
1、在同一条命令提示符中,输入以下命令并替换“XXXX”为上一步查得的PID:tasklist /fi "pid eq XXXX"。
2、按回车执行后,查看输出中的“Image Name”列,该列为占用端口的实际程序名称(如“chrome.exe”、“java.exe”)。
3、若输出显示“INFO: No tasks are running which match the specified criteria”,说明该PID已不存在,端口可能处于TIME_WAIT状态或已被释放。
四、筛选特定端口的占用情况
直接过滤目标端口可避免在大量netstat输出中人工查找,提高效率。
1、在管理员命令提示符中,输入以下命令(以端口8080为例):netstat -aon | findstr :8080。
2、按回车后,仅显示包含“:8080”的行,包括监听(LISTENING)、已建立连接(ESTABLISHED)等状态。
3、检查输出行中“State”列是否为LISTENING,且“PID”列有非零数值,即可确认该端口正被占用。
五、使用PowerShell替代方案(无需管理员权限也可部分生效)
PowerShell提供Get-NetTCPConnection等cmdlet,可在不提升权限时获取部分端口监听信息,适用于受限环境。
1、打开PowerShell(无需管理员权限亦可运行基础查询)。
2、输入以下命令(以端口443为例):Get-NetTCPConnection -LocalPort 443 | Format-List。
3、若返回对象,查看“OwningProcess”属性值即为PID;若提示“无法找到匹配项”,则该端口当前未被TCP监听。
4、如需进一步确认进程名,可将PID代入:Get-Process -Id XXXX | Select-Object ProcessName,Id。










