如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
对于Windows:
netstat -aon | find /i "listening"
其他回答
获取PID和图像名称
仅使用一个命令:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
其中9000应替换为您的端口号。
输出将包含如下内容:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
说明:
它遍历以下命令输出的每一行:netstat-aon | findstr 9000从每一行中,提取PID(%a-名称在此不重要)(PID是该行中的第5个元素)并传递给以下命令任务列表/FI“PID eq 5312”
如果要跳过标头和命令提示符的返回,可以使用:
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
输出:
java.exe 5312 Services 0 130,768 K
打开命令提示符-start→ 跑→ cmd或开始菜单→ 所有程序→ 配件→ 命令提示符。类型netstat-aon|findstr'[port_number]'
将[port_number]替换为要检查的实际端口号,然后按Enter键。
如果任何应用程序正在使用该端口,那么将显示该应用程序的详细信息。显示在列表最后一列的数字是该应用程序的PID(进程ID)。请注意这一点。类型tasklist | findstr“[PID]”
用上述步骤中的数字替换[PID],然后按Enter键。
将显示使用端口号的应用程序名称。
只需打开命令shell并键入(端口为123456):
netstat -a -n -o | find "123456"
你会看到你需要的一切。
标题为:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
这就是这里提到的。
大多数答案中提到的-b开关要求您具有计算机上的管理权限。您实际上不需要提升权限来获取进程名称!
查找端口号中运行的进程的pid(例如8080)
netstat -ano | findStr "8080"
通过pid查找进程名称
tasklist /fi "pid eq 2216"
这是一个帮助我的单行解决方案。只需将3000替换为端口:
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id
编辑:将kill更改为Stop Process以获得更多类似PowerShell的语言
推荐文章
- 将主机端口转发到docker容器
- 如何使用Windows命令行更改目录
- 远程主机强制关闭现有连接
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- TCP连接的最大数据包大小
- Objective-C for Windows
- “注册”一个.exe,这样你就可以从Windows中的任何命令行运行它
- Windows批处理文件的隐藏特性
- connectexception:拒绝连接
- Windows递归grep命令行
- 如何创建自己的URL协议?(例如:/ /……)
- Docker -绑定0.0.0.0:4000失败:端口已经分配
- 在Windows批处理脚本中格式化日期和时间
- 映射一个网络驱动器供服务使用
- 如何在windows中使用命令提示符(cmd)列出文件。我试过在Linux中使用“ls”,但它显示一个错误?