windows命令行可快速查网络状态:netsh看网卡累计流量,netstat查实时连接及进程,powershell的datausage api获取wi-fi小时级用量,get-nettcpconnection结合get-process筛查高流量进程。

当你需要在不依赖图形界面或第三方软件的情况下快速掌握当前网络连接状态、进程通信行为和网卡累计流量时,Windows 自带的命令行工具就能派上用场。这些命令可在 PowerShell 或命令提示符中直接执行,适用于远程维护、服务器管理或排查后台异常联网行为。
用 netsh 查看网卡累计收发总量
这一步能读取驱动加载以来的总字节数,数值不可清零,适合判断是否存在长期静默上传行为。
以管理员身份运行 PowerShell 或命令提示符 → 输入 netsh interface ipv4 show subinterfaces → 回车执行。
输出中“Bytes In”和“Bytes Out”字段即为该网卡自启用以来的接收与发送总字节数。注意:此数值包含所有协议流量(TCP/UDP/ICMP),且【重装网卡驱动或重启系统后会重置】。
用 netstat 查看实时活跃连接及对应进程
netstat 是最基础的连接快照工具,能立刻告诉你哪些进程正在连什么地址、用什么端口,特别适合发现可疑外联。
方法一:查看所有已建立的 TCP 连接及其 PID
以管理员身份运行 PowerShell → 输入 netstat -ano -p tcp | findstr ESTABLISHED → 回车。
方法二:关联进程名(需权限支持)
输入 netstat -bn -p tcp → 回车。若部分进程名显示为“[System Process]”或空白,说明当前账户无权读取该进程映像路径,需切换为本地管理员或 SYSTEM 上下文执行。
输出中最后一列是 PID,可配合任务管理器“详细信息”页查找对应进程名称。注意:【-b 参数必须以管理员权限运行,否则报错】。
用 PowerShell 调用 DataUsage API 获取小时级历史用量
这是唯一能在命令行中获取比“设置”页面更细粒度(按小时)流量数据的方式,适合写脚本做趋势分析。
第一步:获取当前 Wi-Fi 适配器的 InstanceID
运行:Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Wi-Fi*"} | Select-Object InterfaceDescription, InterfaceGuid
第二步:用该 GUID 查询过去 24 小时每小时的流量
运行:$guid = "你的InterfaceGuid值"; Get-NetDataUsage -StartTime (Get-Date).AddHours(-24) -EndTime (Get-Date) -NetworkAdapterId $guid | Format-Table TimeStamp, BytesIn, BytesOut -AutoSize
第三步:若想导出为 CSV 方便后续处理
把上一步末尾的 | Format-Table … 替换为 | Export-Csv -Path "$env:USERPROFILE\Desktop\traffic_hourly.csv" -NoTypeInformation。
注意:该 API 仅对计量连接(Metered Connection)和 Wi-Fi 有效,有线以太网默认不记录小时级数据。
用 PowerShell 获取当前高流量进程的内存工作集近似值
虽然这不是精确流量统计,但当你要快速筛查哪些进程正在高频读写网络缓冲区时,这个指标比 CPU 或内存占用更有指向性。
运行:Get-NetTCPConnection | ForEach-Object { $_.OwningProcess } | Get-Process | Select-Object Name, Id, WS | Sort-Object WS -Descending | Select-Object -First 10
这条命令会列出当前拥有最大工作集(Working Set)的前 10 个进程,其中网络密集型进程(如 OneDrive、Teams、Edge 渲染进程)通常 WS 值偏高。它不等于流量,但【WS 持续高于 300MB 且无前台操作时,大概率存在后台同步行为】。











