tracert中间几跳全是星号超时,网络到底通不通
跑 tracert 看网络路径,前十来跳都有响应,中间忽然连续几行全是星号请求超时,过几行又恢复正常,最后也能到目标——中间这段"哑了"的跳,到底是不是故障?
原因
绝大多数情况下不是。星号只说明那一跳的路由器没有在超时时间内回应探测报文,并不说明它没有转发你的数据。运营商骨干里的核心路由器为了保护自身,普遍对这类报文限速甚至完全不回,但它转发业务流量一点不受影响。所以"中间几跳超时、最后到达目标"是极常见的正常输出;真正需要警惕的,是星号之后再也没有任何跳出现、终点也没到——那才叫路径断在半程。
分步解决
- 先看终点下结论:翻到最后一行,如果就是目标 IP 且时延正常,链路是通的,中间的星号直接无视。判断通断永远以终点为准,不以某一行为准。
- 加 -d 重跑一遍:不带参数时 tracert 会尝试把每个 IP 反解析成域名,解析慢或失败会拖住显示、放大"超时"观感。用 -d 跳过解析再看,星号往往少一片。
- 单独验证可疑的一跳:想知道某个哑巴路由器是活着还是真断,用 ping 目标IP -i 跳数 把 TTL 设成那一跳的编号。如果收到"传输失败/TTL 传输过期"的提示,说明那台路由器其实回了话,路径没断。
- 换协议交叉验证:Windows 的 tracert 用 ICMP 探测,部分中间设备只过滤 ICMP。有 Linux 机器的话用 traceroute 换 ICMP、TCP、UDP 几种探测方式各跑一遍,或直接用 mtr 持续观察,结论更扎实。
- 真断在半程时往后推:终点没到,就从最后一个有回应的跳往后查——换个时间段重跑排除瞬时抖动,让对端从它的方向反向跑一次 tracert,两边一夹,故障段就出来了,再拿着两份输出找对应运营商报障。
预防
把"最后一跳 IP + 各段时延"当成日常巡检记录项,中间星号不必解释、也不必修;报障给运营商时只报"最后可达的一跳和目标之间",对方处理效率最高。网络时好时坏又没人专管的小公司,把这类排障和基线记录包给懂行的运维服务商去做,比自己临时背命令靠谱得多。