关键在于识别哪一跳开始出现延迟突增、丢包率上升或响应不稳定,而非仅关注无响应的节点;正常路径中每跳延迟应相对平稳。

用 traceroute 定位跨网段丢包点,关键不是看“哪里没回”,而是看“哪一跳开始异常变化”——尤其是延迟突增、丢包率上升或响应不稳定的位置。
观察每跳的响应模式,识别丢包起点
正常路径中,每跳延迟应相对平稳(局域网内通常
- 某跳首次出现 * 或大量 *,且后续跳全部 *:说明该跳设备(如路由器、防火墙)静默丢弃探测包,问题大概率出在它本身或它的出口链路
- 某跳延迟突然翻倍甚至飙升(如从 8ms → 120ms → 380ms),但仍有响应:表明该节点过载、队列拥塞或存在策略限速,是潜在丢包源头
- 同一跳反复出现部分响应(如 3 个包中只有 1 个有回包):比全 * 更危险——说明链路不稳定,可能是物理线路抖动、光模块老化或中间设备 CPU 过高
用对参数,排除干扰,聚焦真实丢包
默认 traceroute 容易受 DNS 解析、防火墙拦截、多包重试等影响,建议固定组合使用:
-
-n:跳过域名反查,避免因 DNS 慢导致假性超时 -
-q 1:每跳只发 1 个包,加快输出节奏,便于快速比对多轮结果 -
-w 2:将单跳等待时间设为 2 秒,防止卡在无响应节点上太久 -
-m 20:限制最大跳数为 20,跨网段通信极少超过 15 跳,避免无效等待 -
-I或-T -p 443:分别用 ICMP 或 HTTPS 端口 TCP 探测,若 UDP 模式全 * 但 ICMP/TCP 出现稳定响应,说明是 UDP 被策略拦截,而非真实丢包
横向对比多次运行结果,确认丢包是否可复现
网络路径可能动态变化,单次 traceroute 不足以定论。建议连续执行 3–5 次,并关注:
- 丢包是否总出现在同一跳(例如始终在 hop 7 卡住或延迟飙升)→ 高度指向该节点故障
- 不同协议(UDP/ICMP/TCP)下丢包位置是否一致 → 若仅 UDP 丢,优先查 ACL 或 NAT 设备;若三者都丢,问题更可能在路由或物理层
- 目标换一个(如从 www.example.com 换成 8.8.8.8),丢包点是否迁移 → 若仍卡在 hop 5,说明问题在你到 hop 5 的这段链路,与目标无关
结合 ping 和 mtr 做交叉验证
traceroute 是“快照式”诊断,mtr 则是持续监控,更适合抓取瞬态丢包:
- 运行
mtr -n -c 50 example.com(发 50 个包),观察各跳的丢包率(Loss%)和延迟波动(StDev) - 如果某跳 Loss% >5% 且 StdDev 很大(如 200ms±150ms),基本可锁定为问题节点
- 再对该跳 IP 单独执行
ping -c 20 x.x.x.x,确认是否能直连 —— 若 ping 通但 traceroute 卡住,可能是该设备禁用了 ICMP 超时响应,需换 TCP/ICMP 模式重试


















