首页/安全/应急响应速查/Get-NetTCPConnection 连接排查

Get-NetTCPConnection 连接排查

PowerShell 的网络连接查看:按状态过滤,结合 OwningProcess 直接定位到进程,输出比 netstat 更好处理。

应急响应速查安全更新于 2026-10-13

Get-NetTCPConnection 连接排查

PowerShell 提供的连接查看命令,输出是结构化对象而不是文本表格,可以直接按状态与地址过滤、排序,还能把进程号接上进程信息。相比 netstat,它更适合写进脚本做批量与定期采集;相比任务管理器,它能一次看到所有连接与所属进程。排查外联时通常的做法是:先按状态筛出已建立的连接,排除本机环回地址,再用进程号反查进程名与路径。

基本信息

核心命令Get-NetTCPConnection;UDP 使用 Get-NetUDPEndpoint
常用过滤-State Established、-LocalPort、-RemoteAddress
进程定位OwningProcess 字段配合 Get-Process 反查进程名
补充信息CreationTime 给出连接建立时间,排查时间窗很有用
权限要求查看全部连接需管理员权限
替代命令旧系统用 netstat -ano 加 tasklist 组合

典型使用场景

  • 确认主机是否存在对外的可疑连接,并定位到进程
  • 按端口反查监听服务与占用进程
  • 核对远程桌面、数据库等服务的访问来源
  • 定期采集连接清单作为资产基线,便于发现新增外联
  • 与进程命令行信息结合,形成完整的现场快照

外联与进程对照

外联与进程对照
Get-NetTCPConnection -State Established | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess | Sort-Object RemoteAddress
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
Get-NetUDPEndpoint | Select-Object LocalAddress,LocalPort,OwningProcess | Sort-Object LocalPort | Select-Object -First 20
Get-NetTCPConnection -State Established | Where-Object { $_.RemoteAddress -notmatch '^(127\.|::1|10\.|192\.168\.)' } | ForEach-Object { [pscustomobject]@{Remote=($_.RemoteAddress + ':' + $_.RemotePort); Proc=(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName; Created=$_.CreationTime} }
Get-NetTCPConnection -RemoteAddress 203.0.113.10 -ErrorAction SilentlyContinue

字段读法

字段含义异常信号
LocalAddress 与端口本机地址与端口监听在 0.0.0.0 且端口非常规
RemoteAddress 与端口对端地址与端口对端为陌生公网地址、端口高位或非标准
State连接状态:Listen、Established、TimeWait 等大量 TimeWait 说明连接频繁重建
OwningProcess持有该连接的进程号进程名与业务不符,或进程已退出无法反查
CreationTime连接建立时间与告警或文件落地时间吻合
进程号会被复用:凭一个 PID 判定「就是那个进程」之前,先核对进程的启动时间是否早于连接建立时间,否则容易把无关进程当成元凶。
别忘记 UDP:DNS 隧道与部分远控走 UDP,只看 TCP 会得到「没有异常连接」的错误结论。用 Get-NetUDPEndpoint 补一遍,并留意非标准端口的持续通信。
有公网连接不等于被控:更新服务、遥测、时间同步都会连公网。判断要看「地址加端口加进程」的组合是否符合业务身份,再结合时间与发起频率综合判断。

易错点

  • 把 PID 直接当同一进程:进程号会被复用,必须结合进程启动时间与连接建立时间判断
  • 忘记查 UDP:DNS 隧道与部分远控走 UDP,只看 TCP 会漏
  • 有公网连接就判恶意:大量正常业务与系统服务也连公网,需结合进程身份判断
  • 非管理员执行导致结果不全:全量连接需要提权,否则容易漏掉系统进程的连接
  • 不记录连接建立时间:没有时间信息就无法与告警、文件落地时间对齐

数据来源与参考

  • Microsoft Learn:Get-NetTCPConnection

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌