PowerShell通过Get-NetTCPConnection可直接查看所有TCP连接状态,支持按端口筛选、关联进程名、持续监控活跃连接数及排序高流量连接,无需额外工具。
powershell 是 windows 系统中监控网络连接状态最直接、无需安装额外工具的方案。它能实时获取 tcp 连接详情、识别异常状态、定位占用端口的进程,并支持持续观察,适合排查断连、端口冲突或后台通信异常等问题。
运行以下命令可列出全部本地 TCP 连接(含监听和已建立状态):
Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess | Sort-Object State
输出字段说明:
例如检查 3389(远程桌面)或 8080 是否正被监听或连接:
Get-NetTCPConnection -LocalPort 3389 -ErrorAction SilentlyContinue
若返回结果,说明该端口有活动连接;若无输出,表示未被使用。配合进程查询可一步到位:
$conn = Get-NetTCPConnection -LocalPort 80; if ($conn) { Get-Process -Id $conn.OwningProcess -ErrorAction SilentlyContinue | Select-Object Name, Id }
当需要观察连接是否频繁断开或新连接是否突然增多时,可用循环刷新:
while ($true) { Clear-Host; Write-Host "【$(Get-Date -Format 'HH:mm:ss')】活跃连接数:" -NoNewline; (Get-NetTCPConnection | Where-Object {$_.State -eq 'Established'}).Count; Start-Sleep -Seconds 2 }
按 Ctrl + C 可随时停止。该方式能直观发现连接抖动或异常激增现象。
仅看 PID 不够直观,加上进程名更易判断来源:
Get-NetTCPConnection | Where-Object {$_.State -eq 'Established'} | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, @{Name='Process';Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}, OwningProcess | Sort-Object Process
常见需关注的进程包括:svchost.exe(可能承载系统服务)、msedge.exe(自动更新)、Teams.exe(会议数据)、OneDrive.exe(同步上传)等。