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),默认30traceroute -m 15 target
-q <nqueries>每个跳数发送的探测包数量,默认3traceroute -q 1 target
-w <waittime>等待响应的超时时间(秒),默认5秒traceroute -w 2 target
-p <port>设置目标端口号(UDP模式)traceroute -p 80 target
-I使用ICMP ECHO代替UDPtraceroute -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

💻 各平台使用方法

平台命令备注
Linuxtraceroute [options] host需要root权限或sudo
macOStraceroute [options] host支持--tcp选项
Windowstracert [-d] host使用ICMP,无UDP/TCP选项
Cisco IOStraceroute ip host支持扩展traceroute
Dockerdocker 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(管理性禁止)