# Windows tracert 命令超详细详解 `tracert = traceroute`,基于**ICMP + UDP**路由追踪,Windows 用ICMP实现,用来查:数据包从本机→目标IP经过哪些路由、哪一跳丢包/延迟高、故障卡点。 ## 一、基础语法 ```cmd tracert [-d] [-h 最大跳数] [-w 超时毫秒] [-4/-6] 目标IP/域名 ``` ### 常用参数 |参数|作用| | ---- | ---- | |`-d`|**不解析IP为主机名(最快,推荐日常用)**,禁用DNS反向解析| |`-h n`|设置最大追踪跳数,默认30跳,部分跨运营商可改成`-h 50`| |`-w ms`|等待路由回复超时时间,默认4000ms(4秒),丢包多时`-w 1000`缩短等待| |`-4`|强制IPv4追踪| |`-6`|强制IPv6追踪| 示例: ```cmd tracert -d www.baidu.com tracert -d -h 50 -w 1000 8.8.8.8 ``` ## 二、输出字段含义(核心看懂三列) 执行后每行格式: ``` 1 <1ms <1ms <1ms 192.168.1.1 2 12ms 10ms 11ms 10.0.0.1 3 * * * 请求超时。 ``` 1. **第1列:跳数(TTL)** TTL(生存时间),数据包每经过一台路由TTL-1,TTL=0路由返回ICMP超时报文,tracert借此拿到路由地址。 - 第1跳:**本机网关(路由器LAN口IP)** - 第2跳:运营商BRAS/小区机房 - 往后:城域网→省骨干→跨网骨干→目标服务器 2. **第2/3/4列:三次往返延迟(ms)** 每一跳连续发3个探测包,显示3次RTT延迟,数值越大链路越卡。 3. **最后一列:路由IP/域名** `-d`关闭域名解析只显示IP;不加-d会反向DNS解析路由机房名称。 ### 特殊符号说明 - `* * * 请求超时` 该路由**禁用ICMP应答**(防火墙屏蔽tracert探测包),不代表链路断网,数据包可正常路过,只是不回复探测。 - 后面跳正常、中间全星号:中间路由禁ICMP,链路通畅。 - 某一跳开始全星号且后续全部不通:**该节点故障/断网**。 ## 三、tracert实现原理(Windows独有) > Linux traceroute默认UDP,**Windows tracert全程使用ICMP Echo Request/超时报文** 1. 第1轮:发送TTL=1的ICMP包,经过首跳路由TTL减到0,路由返回`ICMP 11(超时)`,拿到第1跳IP; 2. 第2轮:TTL=2,第二台路由返回超时,拿到第2跳; 3. 持续递增TTL,直到数据包抵达目标IP; 4. 目标主机收到ICMP,回复`ICMP 0(应答)`,追踪结束。 ## 四、故障排查实战用法 ### 1. 本机上不了网 ```cmd tracert -d 114.114.114.114 ``` - 第1跳不通:**本地路由器故障/网线/WiFi问题** - 1~3跳正常,后面全星:运营商机房故障,联系宽带 ### 2. 访问某网站慢 对比 `tracert 本地DNS`、`tracert 网站IP`,找到**延迟突增的跳**就是瓶颈(跨运营商互联互通拥堵)。 ### 3. 区分丢包位置 tracert某一跳延迟暴涨,后续所有跳延迟同步上涨:**本节点拥塞**;仅本跳高延迟、后面正常:节点限速。 ## 五、补充知识点 1. **最大跳数默认30**:公网跨地域一般不会超过20跳,跨国链路可加`-h 60`; 2. 云服务器/防火墙大量星号:云厂商安全组封禁ICMP入站,tracert无法探测后端; 3. 结合`ping`联用:tracert定位故障段,ping对应IP持续测丢包率; 4. 保存日志:`tracert -d baidu.com > tracert.txt`,结果导出文本。 ## 六、IPv6追踪 ```cmd tracert -6 www.baidu.com ``` 需要我给你一份**排错速查表**(家用宽带/服务器常用tracert判障口诀)吗?

发表评论 取消回复