Linux学习(十五)(故障排除(ICMP,Ping,Traceroute,网络统计,数据包分析))-路由跟踪

时间:2025-03-14 10:52:22

Traceroute 是一种网络诊断工具,在 Linux 系统中广泛用于故障排除。它旨在显示数据包从运行 traceroute 的系统到指定目标系统或网站的路径。它用于识别路由问题、提供延迟测量,并在数据包通过 Internet 时弄清楚网络结构。

沿路由的每次跳转都会测试多次(默认值为 3,但可以更改),并显示每个数据包的往返时间。如果某些数据包无法到达目的地,traceroute 可以帮助诊断故障发生的位置。

在 Linux 中跟踪路由可以通过执行命令来实现,该命令允许您发现 Internet 协议数据包在到达目的地时遵循的路由。traceroute

$ traceroute www.example.com

我来用快递送货的例子帮你理解 traceroute 的工作原理:

假设你从北京寄快递到上海的朋友家,但快递中途要经过多个中转站:

  1. 你寄出快递时在包裹上标记"有效期=1天"

  2. 第一个中转站(天津)收到后发现有效期只剩0天,就会:

    • 销毁包裹

    • 给你发回一条短信:"包裹在天津超时了"

  3. 你记录下天津站的响应时间(比如0.5ms)

  4. 接着你重新寄出包裹,标记"有效期=2天"

  5. 这次包裹能到达第二个中转站(济南),同样会收到超时通知

  6. 重复这个过程直到包裹到达上海朋友家

???? 执行 traceroute www.example.com 的输出示例:

复制

1  192.168.1.1 (路由器)  1.234 ms  1.456 ms  1.567 ms
2  61.128.192.1 (广州电信)  5.678 ms  5.712 ms  5.801 ms
3  202.97.12.34 (骨干网节点)  12.345 ms  12.401 ms  12.512 ms
...
10  203.0.113.5 (目标服务器)  38.901 ms  39.012 ms  39.123 ms

???? 关键点解析:

  • 每行代表一个网络节点(路由器/服务器)

  • 三个时间值对应三次探测的往返延迟

  • 星号(*) 表示该次探测未得到响应

  • 延迟突增的位置往往暗示网络瓶颈

???? 实用技巧:

  1. 用 -I 参数使用ICMP协议(类似ping)
    traceroute -I baidu.com

  2. 遇到星号时尝试增加探测次数:
    traceroute -q 5 github.com

  3. 限制最大跳数(适合内网排查):
    traceroute -m 10 192.168.0.100

⚠️ 注意:某些网络设备会屏蔽traceroute探测,这时候会出现连续星号,并不一定代表网络故障。