如何在Windows系统中查找监听TCP或UDP端口的进程?
在命令行中输入以下命令:netstat -aon | findstr :DESIRED_PORT_NUMBER
例如,如果我想查找端口80: netstat -aon | findstr :80
此答案最初发布在这个问题上。
对于使用PowerShell的用户,请尝试Get-NetworkStatistics
:
> Get-NetworkStatistics | where Localport -eq 8000
ComputerName : DESKTOP-JL59SC6
Protocol : TCP
LocalAddress : 0.0.0.0
LocalPort : 8000
RemoteAddress : 0.0.0.0
RemotePort : 0
State : LISTENING
ProcessName : node
PID : 11552
netstat -ao
和 netstat -ab
可以告诉你应用程序的信息,但如果你不是系统管理员,你会收到“所请求的操作需要提升”的提示。
虽然不是理想情况,但如果你使用 Sysinternals 的Process Explorer,你可以进入特定进程的属性并查看 TCP 选项卡,看看它们是否正在使用你感兴趣的端口。这有点像大海捞针,但也许能帮助某些人...
一个对我有帮助的单行解决方案是这个。只需将 3000 替换为你的端口:
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id
编辑:将 kill
更改为 Stop-Process
,使语言更接近 PowerShell。
Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess | Stop-Process
- CubanX请使用以下工具:从cmd命令行窗口中以管理员权限运行C:\> netstat -anob
。
以上工具均可在sysinternals.com上获取。
如果您只想了解每个进程下的运行和线程信息,我建议您学习wmic
。这是一个非常好用的命令行工具,可以提供比您想象的更多信息。
示例:
c:\> wmic process list brief /every:5
/?
命令,例如,c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?
使用:
netstat -a -o
这显示了运行在特定端口上的进程PID。
请记住该进程的ID,然后转到任务管理器和服务或详细信息选项卡,并结束具有相同PID的进程。
因此,您可以在Windows上终止运行在特定端口上的进程。
查找正在使用8000端口的进程ID
netstat -aon | findstr '8000'
在Windows中结束进程
taskkill /pid pid /f
pid 是你从第一个命令获取的进程 ID。
netstat -aof | findstr :8080
。 - David Jesus