Traceroute(路由追踪)是一种常用的网络诊断工具,能显示数据包从本机到目标主机沿途经过的各个路由器地址和延迟,帮助定位网络故障点、分析链路质量。在 Windows 上对应命令为 tracert,Linux 上还有 tracepath 可用。

| 类型 | 网络诊断工具 |
| 核心原理 | 基于 TTL 与 ICMP 超时消息 |
| 常见命令 | traceroute / tracert / tracepath |
| 运行平台 | Windows、Linux、macOS 等 |
| 许可与获取 | 主流操作系统内置 |
Traceroute(路由追踪)是一种网络诊断工具,用于显示数据包在 IP 网络中从源主机到目标主机所经过的每一跳路由器的地址及响应时间。
当你访问一个网站时,数据包往往要跨越多台路由器才能到达目的地。Traceroute 的作用就是把这条路径「画」出来:它会逐跳列出沿途设备的 IP 地址(有时还包括主机名),并给出每一跳的往返延迟,让使用者直观地看到数据走了哪条路、在哪里变慢或中断。
它的原理十分巧妙:利用 IP 报文头中的 TTL(生存时间)字段。工具先发送 TTL 为 1 的探测包,第一台路由器收到后将 TTL 减为 0,于是丢弃该包并回送一条 ICMP 超时消息,源主机由此得知第一跳的地址;随后 TTL 依次加 1,逐步「探」出第二跳、第三跳,直至到达目标主机。
不同系统下的命令名称略有差异:类 Unix 系统(Linux、macOS)通常使用 traceroute,Linux 上还提供了无需管理员权限的 tracepath,而 Windows 系统内置的命令是 tracert。
Traceroute 常用于排查「网站打不开」「访问很慢」等问题:如果路径在某一跳之后全部超时,说明故障可能出在该节点附近;如果某一跳延迟突然飙升,则可能是链路拥塞或跨境出口瓶颈。网络运维人员也常用它分析路由绕行、验证线路切换是否生效。
问:Traceroute 结果里出现星号(*)是什么意思?答:表示该跳路由器没有在规定时间内回复探测包,常见原因是设备配置了不响应此类请求或被防火墙拦截,并不一定代表网络中断。
问:tracert 和 traceroute 有什么区别?答:两者功能相同,只是平台和默认探测方式不同:Windows 的 tracert 默认使用 ICMP 报文,而多数类 Unix 系统的 traceroute 默认使用 UDP 报文,因此在同一路径上结果可能略有差异。
问:为什么每次追踪的路径不完全一样?答:互联网路由是动态的,运营商可能做负载均衡或调整路由策略,数据包在不同时刻走不同路径属于正常现象。

| 类型 | 网络诊断工具 |
| 核心原理 | 基于 TTL 与 ICMP 超时消息 |
| 常见命令 | traceroute / tracert / tracepath |
| 运行平台 | Windows、Linux、macOS 等 |
| 许可与获取 | 主流操作系统内置 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧