Traceroute 路由追踪
网络路由路径分析与traceroute命令详解
🔍 模拟Traceroute
📖 Traceroute 原理说明
工作原理
利用IP数据包的TTL(生存时间)字段逐跳递减至0时返回ICMP超时报文来探测路径
默认参数
最大跳数: 30 | 探测次数: 3次 | 端口: 33434+ (UDP)
ICMP类型
Type 11 (Time Exceeded) + Type 3 (Destination Unreachable)
常见用途
网络故障排查、路由优化、延迟瓶颈定位、ISP检测
⚙️ 常用参数参考
| 参数 | 说明 | 示例 |
|---|---|---|
-n | 不解析主机名,直接显示IP地址 | traceroute -n www.baidu.com |
-m <max_ttl> | 设置最大跳数(TTL),默认30 | traceroute -m 15 target |
-q <nqueries> | 每个跳数发送的探测包数量,默认3 | traceroute -q 1 target |
-w <waittime> | 等待响应的超时时间(秒),默认5秒 | traceroute -w 2 target |
-p <port> | 设置目标端口号(UDP模式) | traceroute -p 80 target |
-I | 使用ICMP ECHO代替UDP | traceroute -I target |
-T | 使用TCP SYN进行追踪(Linux) | traceroute -T -p 80 target |
-f <first_ttl> | 设置起始TTL值 | traceroute -f 8 target |
-z <pause> | 每次探测间的等待时间(毫秒) | traceroute -z 500 target |
-S <src_addr> | 指定源IP地址 | traceroute -S 192.168.1.100 target |
--tcp | 使用TCP SYN方式(MacOS traceroute) | traceroute --tcp -p 443 target |
-d | 启用Socket级别调试 | traceroute -d target |
-v | 详细输出模式 | traceroute -v target |
💻 各平台使用方法
| 平台 | 命令 | 备注 |
|---|---|---|
| Linux | traceroute [options] host | 需要root权限或sudo |
| macOS | traceroute [options] host | 支持--tcp选项 |
| Windows | tracert [-d] host | 使用ICMP,无UDP/TCP选项 |
| Cisco IOS | traceroute ip host | 支持扩展traceroute |
| Docker | docker run --rm alpine traceroute host | 无需安装 |
🔍 输出结果解读
$ traceroute -n www.baidu.com
traceroute to www.baidu.com (39.156.66.18), 30 hops max, 60 byte packets
1 192.168.1.1 0.452 ms 0.381 ms 0.356 ms
2 10.0.0.1 2.123 ms 1.987 ms * ← 本地网关
3 218.108.96.1 5.234 ms 5.112 ms 5.089 ms ← ISP接入节点
4 220.191.x.x 8.567 ms 8.432 ms 8.398 ms ← ISP骨干网
5 202.97.xx.x 12.345 ms 12.201 ms * ← 中国电信163骨干
...
14 39.156.66.18 18.901 ms 18.782 ms 18.654 ms ← 目标服务器
* * * ← 表示该跳无响应(可能被防火墙拦截)
!H ← Host Unreachable(主机不可达)
!N ← Network Unreachable(网络不可达)
!X ← Communication Prohibited(通信禁止)
!A ← Administrative Prohibited(管理性禁止)