如何在Windows系统中查找监听TCP或UDP端口的进程?
在Windows中通过PID获取端口号非常简单。
以下是步骤:
运行“搜索” → 输入cmd → 按 Enter 键。
输入以下命令...
netstat -aon | findstr [port number]
(注意:不要包括方括号。)
按下 Enter 键...
然后,cmd将显示在该端口上运行的服务的详细信息以及PID。
打开任务管理器,点击服务选项卡,将PID与cmd的PID匹配一致即可。
获取与每个连接关联的所有拥有进程ID的列表:
netstat -ao |find /i "listening"
如果想要终止任何已知进程的ID并释放端口,可以使用此命令。
Taskkill /F /IM PID of a process
netstat -aof | findstr :8080
(将 8080 更改为任何端口)
要找出哪个特定的进程(PID)正在使用哪个端口:
netstat -anon | findstr 1234
1234是你的进程ID。【打开任务管理器→服务/进程选项卡,查找你的应用程序的PID】
如果有人需要类似于 macOS 的等效工具,可以使用以下命令:
lsof -i tcp:8080
获取进程的PID
后,您可以使用以下命令结束进程:
kill -9 <PID>
只需打开命令行并输入以下命令(假设您的端口是123456):
netstat -a -n -o | find "123456"
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
这就像在这里提到的一样。
findstr 123456
(不带引号)或 find "123456"
(带引号)。(@Josh) - Kevin Cruijssen如果你想要一个很好的概述,你可以使用以下命令:
Get-NetTCPConnection -State Listen | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
然后你会得到这样一张表:
ProcessName LocalAddress LocalPort
----------- ------------ ---------
services :: 49755
jhi_service ::1 49673
svchost :: 135
services 0.0.0.0 49755
spoolsv 0.0.0.0 49672
对于UDP, 它是:
Get-NetUDPEndpoint | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
打开命令提示符 - 开始菜单 → 运行 → cmd
,或者开始菜单 → 所有程序 → 附件 → 命令提示符。
输入
netstat -aon | findstr '[port_number]'
将[port_number]
替换为您要检查的实际端口号,然后按Enter。
输入
tasklist | findstr '[PID]'
用上一步骤中的数字替换[PID]
,然后按Enter键。会显示使用您端口号的应用程序名称。Netstat:
-o 拥有进程
netstat -bano | findstr "7002"
netstat -ano > ano.txt
Currports工具帮助搜索和过滤网络连接
netstat -aof | findstr :8080
。 - David Jesus