如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
如果运行以下命令,可以获得更多信息:
netstat -aon | find /i "listening" |find "port"
使用“查找”命令可以过滤结果。find/i“侦听”将仅显示“侦听”的端口。注意,您需要/i忽略大小写,否则您将键入find“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
PowerShell(PowerShell)
如果你想有一个好的概述,你可以使用这个:
Get-NetTCPConnection -State Listen | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
然后你会得到一张这样的桌子:
ProcessName LocalAddress LocalPort
----------- ------------ ---------
services :: 49755
jhi_service ::1 49673
svchost :: 135
services 0.0.0.0 49755
spoolsv 0.0.0.0 49672
对于UDP,它是:
Get-NetUDPEndpoint | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
在Windows中从PID获取端口号非常简单。
步骤如下:
转到跑步→ 键入cmd→ 按Enter键。编写以下命令。。。netstat-aon|findstr[端口号](注意:不包括方括号。)按Enter键。。。然后cmd将提供在该端口上运行的服务的详细信息以及PID。打开任务管理器,点击服务选项卡,将PID与cmd的PID匹配,就这样。
对于Windows:
netstat -aon | find /i "listening"
Windows有一个本机GUI:
“开始”菜单→ 所有程序→ 配件→ 系统工具→ 资源监视器或运行resmon.exe,或来自TaskManager→ 性能选项卡。
推荐文章
- 将主机端口转发到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”,但它显示一个错误?