网站打不开,ping 得通但很慢,想确认问题出在本地还是运营商,tracert 是最快的办法。Windows 按 Win+R 输入 cmd,敲 tracert 加域名回车就行;Linux 和 macOS 上对应的命令是 traceroute。
输出里每一行是什么意思
每一行是一跳,也就是数据经过的一个路由器。前面的序号是跳数,中间三个时间是对同一跳发三次探测的往返延迟,末尾是这一跳的 IP 和域名。三个时间差得远,说明这条链路有抖动;某一跳突然从 10ms 涨到 200ms,之后一直维持,问题就在那个位置往后。
tracert -d -h 15 www.example.com-d 表示不做反向域名解析,输出快很多;-h 15 限制最多 15 跳,避免卡在超时上;-w 1000 把每跳等待时间设成 1 秒,默认是 4 秒,跳数多的时候能省不少时间。只想看 IPv6 路径就加 -6。
把结果发给运营商或者网管时,直接重定向存成文本更省事:tracert -d www.example.com > d:/route.txt。跑两次,一次出问题的时候、一次正常的时候,对比着看最快。
家庭宽带的前几跳多数是内网地址,192.168 开头或者 10 开头,那是自家路由器,出现在第一跳很正常。跟踪之前先 ping 一下目标,ping 都不通,tracert 出来的星号只会更多,先把基本连通性解决掉。
出现星号不代表断网
输出里那些星号是探测包没收到回应。很多骨干路由器出于安全策略直接丢弃 ICMP,不回复是常态。判断方法很简单:看星号后面还有没有正常跳数。中间几跳是星号、末尾能到目标,链路就是通的;从某一跳开始一直到结束全是星号,那才是真断了。
三种典型结果怎么读
- 第一跳就超时:问题在自家网关,查网线、WiFi 和路由器。
- 前三跳正常,第四跳开始延迟飙到 150ms 以上:本地没问题,找运营商报障,把截图发过去。
- 前面都正常,只有末尾超时:目标服务器或它的防火墙在拦,跟你这边无关。
还有一点别误会。tracert 测的是往返延迟和路径,不能拿来测带宽,也别指望它告诉你丢包率。要测丢包用 ping 加 -t 长时间跑,看丢包比例更准。tracert命令怎么用,记住看三列时间和星号的位置就够了。路径本身也不是固定的,负载均衡会让两次结果走出不同线路,对不上很正常。