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


当前回答

打开命令提示符窗口(以管理员身份)从“开始\搜索框”输入“cmd”,然后右键单击“cmd.exe”并选择“以管理员身份运行”输入以下文本,然后按Enter键。netstat-荷兰银行-a显示所有连接和侦听端口。-b显示创建每个连接所涉及的可执行文件或侦听端口。在某些情况下,知名的可执行文件主机多个独立组件,在这些情况下创建连接所涉及的组件序列或显示监听端口。在这种情况下,可执行文件name位于底部的[]中,顶部是它调用的组件,以此类推,直到达到TCP/IP。请注意,此选项可能很耗时,除非你有足够的时间权限。-n以数字形式显示地址和端口号。-o显示与每个连接关联的所属进程ID。在“本地地址”下查找您正在侦听的端口查看直接位于其下的进程名称。

注意:在任务管理器下查找流程

注意您正在查看的端口旁边的PID(进程标识符)。打开Windows任务管理器。选择流程选项卡。查找在步骤1中执行netstat时注意到的PID。如果没有看到PID列,请单击查看/选择列。选择PID。确保选中“显示所有用户的流程”。

其他回答

对于Windows,如果要查找正在侦听或连接到端口1234的内容,请在cmd提示符下执行以下操作:

netstat -na | find "1234"

Use:

netstat -a -o

这显示了在特定端口上运行的进程的PID。

记住进程ID,然后转到任务管理器和服务或详细信息选项卡,结束具有相同PID的进程。

因此,您可以在Windows中终止在特定端口上运行的进程。

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

netstat -ao |find /i "listening"

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

Taskkill /F /IM PID of a process

这是一个帮助我的单行解决方案。只需将3000替换为端口:

$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id

编辑:将kill更改为Stop Process以获得更多类似PowerShell的语言

netstat-ao和netstat-ab告诉您应用程序,但如果您不是系统管理员,则会得到“请求的操作需要提升”。

这并不理想,但如果您使用Sysinternals的Process Explorer,您可以转到特定进程的财产,查看TCP选项卡,看看它们是否正在使用您感兴趣的端口。这有点像大海捞针,但可能会对某人有所帮助。。。