如何确定哪个进程正在侦听Windows上的TCP或UDP端口?


当前回答

如果有人像我一样需要macOS的等价物,下面是:

lsof-i tcp:8080

获取进程的PID后,可以使用以下命令终止该进程:

终止-9<PID>

其他回答

在Windows中从PID获取端口号非常简单。

步骤如下:

转到跑步→ 键入cmd→ 按Enter键。编写以下命令。。。netstat-aon|findstr[端口号](注意:不包括方括号。)按Enter键。。。然后cmd将提供在该端口上运行的服务的详细信息以及PID。打开任务管理器,点击服务选项卡,将PID与cmd的PID匹配,就这样。

根据带有信息和击杀的答案,对我来说,将它们组合在一个命令中是有用的。您可以从cmd运行此命令以获取有关侦听给定端口的进程的信息(示例8080):

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @tasklist /nh /fi "pid eq %i"

或者如果你想杀死它:

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @Taskkill /F /IM %i

您也可以将这些命令放入bat文件中(它们略有不同-将%i替换为%%i):

文件portInfo.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @tasklist /nh /fi "pid eq %%i"

文件端口Kill.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @Taskkill /F /IM %%i

然后您可以通过cmd执行以下操作:

端口信息.bat 8080

or

端口Kill.bat 8080

键入命令:netstat-aon|findstr:DESIRED_PORT_NUMBER

例如,如果我想查找端口80:netstat-aon|findstr:80

这个答案最初是针对这个问题发布的。

要了解哪个特定进程(PID)正在使用哪个端口:

netstat -anon | findstr 1234

其中1234是流程的PID。[转到任务管理器→ “服务/流程”选项卡,以查找应用程序的PID。]

对于Windows:

netstat -aon | find /i "listening"