netstat -ano 是建立“连接↔进程”映射的关键第一步,通过 pid 定位监听或连接的进程,再用 tasklist 或任务管理器查进程名,或直接用 netstat -anb(需管理员权限)显示可执行文件名,结合 findstr 过滤可快速识别异常连接。

要查清系统中每个网络连接具体由哪个进程发起或监听,关键不是“列出所有进程”,而是建立“连接 ↔ 进程”的准确映射。Windows 下最直接有效的方式是组合使用 netstat 与进程识别工具,重点看 PID 和可执行文件名。
用 netstat -ano 定位进程 ID(PID)
这是映射的第一步:把连接和数字编号对应起来。
- 以管理员或普通用户身份打开命令提示符,运行 netstat -ano
- 输出中每行末尾的数字就是该连接/监听端口所属进程的 PID
- 重点关注 State 列为 LISTENING(服务端口)或 ESTABLISHED(已连通)的行
- 例如某行显示
tcp 0.0.0.0:8080 *:* LISTENING 1234,说明 PID 1234 的进程正在监听本地 8080 端口
用 tasklist 或任务管理器查进程名称
PID 只是一串数字,需进一步还原为实际程序。
- 在命令提示符中运行 tasklist | findstr "1234"(把 1234 替换为你要查的 PID),即可看到进程名(如
java.exe、chrome.exe) - 也可打开任务管理器 → “详细信息”选项卡 → 点击“PID”列排序 → 找到对应数字,直接看到进程名、用户名、CPU/内存占用等
- 右键该进程 → “打开文件所在位置”,能快速确认是否为系统组件或可信软件
一步到位:用 netstat -anb 直接显示程序名
省去查 PID 再找进程的步骤,但需管理员权限且部分系统服务可能不显示完整路径。
- 右键“开始” → 选择“Windows PowerShell(管理员)”或“命令提示符(管理员)”
- 运行 netstat -anb
- 输出中会紧接在连接信息下方显示类似
[svchost.exe]或[conhost.exe]的方括号内程序名 - 若看到
[System]或[Idle],说明是内核级网络活动,无对应用户进程
按需过滤,快速聚焦可疑连接
面对大量输出,用管道过滤能大幅提升效率。
- 只看已建立的对外连接:netstat -ano | findstr ESTABLISHED
- 查某个端口(如 3389 远程桌面)谁在用:netstat -ano | findstr :3389
- 统计当前 ESTABLISHED 连接总数:netstat -ano | find /c "ESTABLISHED"
- 筛选境外或异常 IP(如 123.45.67.89):netstat -ano | findstr "123\.45\.67\.89"










