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


当前回答

要获取与每个连接关联的所有所属进程ID的列表,请执行以下操作:

netstat -ao |find /i "listening"

如果要终止任何进程,请具有ID并使用此命令,以便端口变为空闲

Taskkill /F /IM PID of a process

其他回答

要获取与每个连接关联的所有所属进程ID的列表,请执行以下操作:

netstat -ao |find /i "listening"

如果要终止任何进程,请具有ID并使用此命令,以便端口变为空闲

Taskkill /F /IM PID of a process

大多数答案中提到的-b开关要求您具有计算机上的管理权限。您实际上不需要提升权限来获取进程名称!

查找端口号中运行的进程的pid(例如8080)

netstat -ano | findStr "8080"

通过pid查找进程名称

tasklist /fi "pid eq 2216"

PowerShell(PowerShell)

TCP

Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess

UDP

Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess

cmd

 netstat -a -b

(添加-n以阻止它尝试解析主机名,这将使它更快。)

注意Dane对TCPView的建议。它看起来很有用!

-a显示所有连接和侦听端口。

-b显示创建每个连接或侦听端口所涉及的可执行文件。在某些情况下,众所周知的可执行程序包含多个独立组件,在这些情况下,将显示创建连接或侦听接口所涉及的组件序列。在这种情况下,可执行文件名位于底部的[]中,顶部是它调用的组件,依此类推,直到到达TCP/IP。请注意,此选项可能很耗时,除非您有足够的权限,否则将失败。

-n以数字形式显示地址和端口号。

-o显示与每个连接关联的所属进程ID。

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

netstat -anon | findstr 1234

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

打开命令提示符-start→ 跑→ cmd或开始菜单→ 所有程序→ 配件→ 命令提示符。类型netstat-aon|findstr'[port_number]'

将[port_number]替换为要检查的实际端口号,然后按Enter键。

如果任何应用程序正在使用该端口,那么将显示该应用程序的详细信息。显示在列表最后一列的数字是该应用程序的PID(进程ID)。请注意这一点。类型tasklist | findstr“[PID]”

用上述步骤中的数字替换[PID],然后按Enter键。

将显示使用端口号的应用程序名称。