UDP 与 ICMP 追踪模式怎么选
Traceroute 怎么找路
Traceroute 的原理是人为制造 TTL 过期:
- 发出一个 TTL = 1 的包,第一跳路由器收到后 TTL 变 0,丢弃并回复「TTL expired」消息。
- TTL = 2,第二跳超时回复。
- 以此类推直到目标主机。
关键在于:用什么包去触发「TTL expired」? 这就是 UDP 和 ICMP 两种模式的区别。
两种模式
| ICMP Traceroute | UDP Traceroute | |
|---|---|---|
| 探针包类型 | ICMP Echo Request(和 Ping 一样) | UDP 包发往一个极不可能被监听的端口(通常 33434–33535) |
| 目标回应 | 目标主机回 ICMP Reply | 目标主机回 ICMP Port Unreachable |
| 防火墙兼容 | 最可能被防火墙拦 | 兼容性更好 |
| Windows 命令行 | 默认模式(tracert) | 需要额外工具 |
| Linux / macOS | traceroute -I | 默认模式 |
PingTools 怎么选
Traceroute 页面设置面板里,Protocol 下拉菜单里选 ICMP 或 UDP。
首选 UDP,因为兼容性更好。如果 UDP 模式也超时,再试 ICMP,同时检查是不是 VPN / 代理干扰。
结果为什么和电脑上的不一样
同样的目标,在手机上 Traceroute 出来的路径可能和电脑上不同。这是正常的:
- 手机可能走蜂窝网络,电脑走 Wi-Fi——物理路径不同
- 出口 IP 不同,运营商选路策略不同
- 路由器会根据实时负载动态选路
以实际环境为准就行,不用强行对齐。