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


当前回答

如果运行以下命令,可以获得更多信息:

netstat -aon | find /i "listening" |find "port"

使用“查找”命令可以过滤结果。find/i“侦听”将仅显示“侦听”的端口。注意,您需要/i忽略大小写,否则您将键入find“LISTENING”。|查找“端口”将结果限制为仅包含特定端口号的端口。注意,在这一点上,它还将过滤响应字符串中任何位置具有端口号的结果。

其他回答

查找使用端口8000的pid

netstat -aon | findstr '8000'

在窗口中终止该进程

taskkill /pid pid /f

其中pid是从first命令中获取的进程id

如果需要GUI,请使用TCPView。这是微软收购的旧Sysinternals应用程序。

首先,我们找到需要消除的特定任务的进程id,以便获得自由端口:

类型

netstat -n -a -o

在Windows命令行提示符(cmd)中执行此命令后,选择我认为是最后一列的pid。假设这是3312。

现在键入

taskkill /F /PID 3312

现在可以通过键入netstat命令进行交叉检查。

注意:有时Windows不允许您直接在CMD上运行此命令,因此首先需要执行以下步骤:

从开始菜单->命令提示符(右键单击命令提示符,然后以管理员身份运行)

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

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

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

我推荐NirSoft的CurrPorts。

CurrPorts可以过滤显示的结果。TCPView没有此功能。

注意:您可以右键单击进程的套接字连接并选择“关闭选定的TCP连接”(您也可以在TCPView中执行此操作)。这通常会在我切换VPN后修复Outlook和Lync的连接问题。使用CurrPort,您还可以使用“/close”参数从命令行关闭连接。