要快速掌握Windows当前全部网络连接,需用netstat -an查ESTABLISHED连接,再用netstat -ano结合tasklist或PowerShell的Get-NetTCPConnection命令精确定位进程名。

要快速掌握 Windows 当前正在通信的全部网络连接,包括浏览器访问网页、软件自动更新、后台服务心跳等所有已建立(ESTABLISHED)的 TCP/UDP 会话,必须绕过图形界面的模糊汇总,直接调用系统底层命令获取实时、无延迟、带端口和远程地址的原始连接列表。
用 netstat -an 查看全部活动连接
这一步是基础动作,不依赖管理员权限,所有用户都能执行,输出结果不含进程名但速度最快、字段最干净。
按 Win + R → 输入 cmd → 回车打开命令提示符。
输入命令:netstat -an 并回车。
等待约1–2秒,屏幕将滚动列出所有协议(TCP/UDP)、本地IP与端口、远程IP与端口、连接状态四列信息;【重点关注 State 列为 ESTABLISHED 的行】,它们代表当前双向通信中、真实“正在连着”的连接。
注意:漏掉 -n 参数会导致命令卡在 DNS 反查上,尤其遇到境外 IP 或私有域名时可能停顿5秒以上,务必带上。
用 netstat -ano 精确定位每个连接所属程序
当你看到某条 ESTABLISHED 连接指向可疑 IP(如 185.199.108.153:443),光看地址没用,必须知道是哪个程序在发包——这时 PID 就是唯一钥匙。
方法一:直接运行带 PID 的完整命令
在已有命令提示符中输入:netstat -ano | findstr "ESTABLISHED" 并回车。
该命令会自动过滤出全部已建立连接,并在每行末尾显示对应进程 ID(PID)。
方法二:分步定位更稳妥
第一步:先执行 netstat -ano 获取全量表;
第二步:从输出中找到目标连接所在行,记下最右侧那一串数字(例如 12345);
第三步:立即在同一窗口输入:tasklist | findstr "12345" 并回车;
输出中 “Image Name” 列显示的就是程序名,如 msedge.exe 或 wechat.exe。
如果 tasklist 没返回任何内容,说明该 PID 已退出或权限不足——此时请换用管理员模式重试。
用 PowerShell 快速筛选并关联进程名
PowerShell 能把“查连接”和“找程序”两步合成一条命令,适合习惯脚本化操作的用户,且支持导出分析。
第一步:右键“开始”按钮 → 选择“Windows 终端(管理员)” → 点击“是”通过 UAC 提示。
第二步:输入以下命令(以筛选本地端口 443 上的所有 ESTABLISHED 连接为例):
Get-NetTCPConnection -State Established -LocalPort 443 | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name ProcessName -Value (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName -PassThru } | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, ProcessName
第三步:回车后直接看到带进程名的结构化结果,无需人工匹配 PID;若某连接的 OwningProcess 对应进程已退出,ProcessName 字段为空,这是正常现象。
注意:Get-NetTCPConnection 默认只查 TCP,UDP 连接需改用 Get-NetUDPEndpoint,两者参数不互通。











