Windows怎么查看网络端口占用_Windows如何用netstat查看端口被哪个程序占用【命令】-1

如果您尝试检查某个网络端口是否正被使用,但无法确定是哪个程序在监听或连接该端口,则可能是由于端口占用信息未被显式关联到进程名称。以下是解决此问题的步骤:

一、以管理员身份运行命令提示符

netstat的部分输出(尤其是-b选项和部分PID映射)需系统级权限才能完整呈现,普通用户权限可能遗漏IIS、SQL Server等服务类进程的绑定信息。

1、点击“开始”菜单,在搜索栏中输入“cmd”。

2、在搜索结果中右键单击“命令提示符”,选择“以管理员身份运行”。

3、在弹出的用户账户控制(UAC)提示中,点击“是”继续。

二、使用 netstat -ano 列出所有监听端口及对应 PID

该命令一次性输出全部TCP/UDP连接与监听端口,并附带进程标识符(PID),为后续定位提供原始依据,无需额外工具且兼容所有Windows版本。

1、在管理员命令提示符窗口中,输入:netstat -ano,然后按回车执行。

2、观察输出列表中的“Local Address”列,查找格式为 0.0.0.0:8080 或 [::]:3306 的条目,其末尾数字即为端口号。

3、确认该行“State”列为 LISTENING,且最右侧数值为非零PID(如 12345)。

三、通过 findstr 精准过滤指定端口的占用记录

避免人工扫描数百行输出,直接提取目标端口相关行,提升定位效率并降低误读风险;冒号前缀可增强对IPv6地址的匹配鲁棒性。

1、在同一条命令提示符中,输入:netstat -ano | findstr “:8080″(将“8080”替换为实际端口号)。

2、若无返回,尝试去掉冒号:netstat -ano | findstr “8080”(部分Windows版本对格式敏感)。

3、从匹配行末尾提取PID值,例如输出为 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5678,则PID为 5678。

四、使用 tasklist 根据 PID 查询进程名称

仅知PID不足以判断程序性质,必须映射为可识别的映像名称(Image Name),以区分 chrome.exe、java.exe 等用户进程与 svchost.exe、lsass.exe 等系统关键宿主进程。

1、在命令提示符中输入:tasklist /fi “pid eq 5678″(将“5678”替换为上步所得PID)。

2、回车后查看输出中的“Image Name”列,例如显示为 node.exe 或 mysqld.exe。

3、若输出提示 INFO: No tasks are running which match the specified criteria,说明该PID进程已退出,端口可能处于TIME_WAIT状态或已被释放。

五、使用 PowerShell 直接获取端口对应进程名

PowerShell 提供结构化对象输出,可跳过PID中转环节,直接通过OwningProcess属性关联进程对象,减少命令链断裂风险,且部分查询在非管理员权限下仍可生效。

1、以管理员身份运行PowerShell:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”。

2、输入命令:Get-NetTCPConnection -LocalPort 8080 | ForEach-Object { Get-Process -Id $_.OwningProcess } | Select-Object ProcessName, Id(将“8080”替换为实际端口号)。

3、输出将直接显示进程名称(如 java)及其ID(如 12345),无需人工交叉比对。

六、通过资源监视器图形化定位监听端口

资源监视器提供免命令、全字段可视化界面,支持实时筛选、完整进程路径显示及用户账户标识,适合不熟悉命令行操作或需快速验证的场景。

1、按下 Win + R,输入 resmon 并回车,启动资源监视器。

2、点击顶部选项卡中的 网络。

3、向下滚动至 监听端口(Listening Ports) 区域,查找目标端口号(如 8080)。

4、对应行的 进程 列即显示占用者名称(如 chrome.exe),右键可选“转到进程”在任务管理器中高亮定位。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。