首页/网络/网络排障速查/Test-NetConnection 端口连通测试

Test-NetConnection 端口连通测试

PowerShell 内置探测命令(别名 tnc):一条命令同时给出 ping 与 TCP 端口测试结果,替代 telnet,还能顺带看路由与解析。

网络排障速查网络更新于 2026-10-13

Test-NetConnection 能做什么

Test-NetConnection 是 PowerShell 内置的探测命令(别名 tnc),一条命令同时给出解析结果、ICMP 可达性与指定 TCP 端口的连通性,完整替代了 telnet 手工测端口的老做法。加 -TraceRoute 还能顺带给出路径,加 -InformationLevel Detailed 输出更详细的字段。输出是对象而不是文本,脚本里可以直接判断属性,比解析控制台输出可靠得多。

基本信息

适用平台Windows 8 / Server 2012 及以上(NetTCPIP 模块)
别名tnc
关键参数-Port 指定端口、-InformationLevel Detailed、-TraceRoute、-ComputerName
判读重点以 TcpTestSucceeded 为端口连通结论,PingSucceeded 只代表 ICMP
权限要求普通用户即可;-TraceRoute 部分网络环境可能受限

典型使用场景

  • 验证数据库或中间件端口是否可达:替代 telnet 且自动带超时
  • 区分 ICMP 与 TCP 策略:确认是整机不可达还是仅端口被拦
  • 排查 DNS:ComputerName 传域名时同时体现解析结果
  • 收集路径信息:一次命令拿到到目标的跳数与路由
  • 脚本化巡检:用对象属性判断结果,便于批量输出报表

用法

用法
Test-NetConnection 10.0.0.5 -Port 3306                                    # 测 MySQL 端口
Test-NetConnection example.com -Port 443 -InformationLevel Detailed       # 详细输出
tnc 10.0.0.5 -Port 3306 | Select-Object ComputerName, RemoteAddress, TcpTestSucceeded, PingSucceeded
Test-NetConnection 10.0.0.5 -TraceRoute                                    # 顺带输出到目标的路径
# 批量巡检并只保留结论列
'10.0.0.5:3306','10.0.0.6:6379' | ForEach-Object {
  $h,$p = $_ -split ':'
  $r = Test-NetConnection $h -Port $p -WarningAction SilentlyContinue
  [pscustomobject]@{ Target=$_; Tcp=$r.TcpTestSucceeded }
}

输出字段判读

字段含义判读要点
ComputerName目标主机名或 IP传域名时同时验证了解析是否成功
RemoteAddress解析出的目标地址解析异常时这里会显示错误或为空
PingSucceededICMP 是否回应False 不代表端口不通,ICMP 常被单独拦截
TcpTestSucceededTCP 端口是否可连端口连通性的权威结论看这一项
PingReplyDetailsRTT 明细用于粗判时延,精度低于专业工具
TraceRoute路径跳数列表部分网络禁用 ICMP 时结果可能不完整
PingSucceeded=False 且 TcpTestSucceeded=True 是很常见的组合:说明主机与端口都正常,只是 ICMP 被策略单独拦截了,结论要看 TCP 那一项。
组合用法:先用 Test-NetConnection 判断端口,再用 Resolve-DnsName 核对解析,两条命令就能把客户端侧的可能性收敛到很小范围。
排查顺序建议:先测端口确认通不通,再测解析确认地址对不对;两项都正常时,问题基本已经不在客户端侧了。

易错点

  • 把 PingSucceeded=False 当成网络不通:ICMP 与 TCP 是两套独立策略,结论必须以 TcpTestSucceeded 为准
  • 在脚本里解析控制台文本输出:应直接判断对象属性,否则本地化输出或版本差异会让脚本失效
  • 忽略 -WarningAction:目标不可达时会产生警告信息干扰脚本输出,应显式抑制
  • 用 -TraceRoute 的跳数缺失断定路径断开:部分设备不回应 ICMP,中间跳显示为空属常见现象

数据来源与参考

  • Microsoft Learn:Test-NetConnection
  • Microsoft Learn:NetTCPIP 模块

相关工具

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