traceroute(英文全拼:trace route)命令主要用于显示路由数据包到网络主机的追踪信息。
语法:traceroute [参数] [域名/ip地址]
参数说明:
-4:基于IPv4网络协议
-6:基于IPv6网络协议
-d:使用Socket层级的排错功能
-f:设置数据包的存活数值(TTL)
-F:设置勿离断位
-g:设置来源路由网关
-i:使用指定的网卡发送出数据包
-I:使用ICMP回应取代UDP资料信息
-m:检测数据包的最大存活数值(TTL)
-n:使用IP地址而非主机名称
-p:设置UDP传输协议的通信端口
-r:将数据包送到远端主机上
-s:设置本地主机送出数据包的IP地址
-t:设置检测数据包的TOS数值
-T:使用TCP SYN进行探测
-U:使用UDP到特定端口进行路由
-w:设置等待远端主机回报的时间
-x:开启或关闭数据包的正确性检验
-v:显示执行过程详细信息
-V:显示版本信息
[root@app01 ~]# traceroute www.baidu.com
如果不加任何参数话,默认会一直会追踪下去,直到所有传输路径追踪完成为止。
2、设置最大追踪跳数
[root@app01 ~]# traceroute -m 3 www.baidu.comtraceroute to www.a.shifen.com (220.181.111.232), 3 hops max, 40 byte packets 1 homerouter.cpe (192.168.1.1) 2.132 ms 9.304 ms 1.774 ms 2 * * * 3 bogon (10.255.255.93) 42.985 ms 31.559 ms 24.282 ms
[root@app01 ~]# traceroute -q 4 -m 3 www.baidu.comtraceroute to www.a.shifen.com (220.181.111.232), 3 hops max, 40 byte packets 1 homerouter.cpe (192.168.1.1) 3.285 ms 1.232 ms 3.400 ms 1.390 ms 2 * * * * 3 bogon (10.255.255.93) 20.567 ms 20.430 ms 22.529 ms 27.651 ms
炸眼一看4个数据包在哪呢?在这里我们可以看到每行有4个时间,这就是发出的4个数据包后,网关响应后返回的时间。如果不加数据包数量参数的话,默认网关会返回3个响应时间。
4、探测时显示IP地址而不是主机名
[root@app01 ~]# traceroute -n www.baidu.comtraceroute to www.a.shifen.com (220.181.111.232), 64 hops max, 40 byte packets 1 192.168.1.1 15.877 ms 1.439 ms 1.315 ms 2 * * * 3 10.255.255.93 207.112 ms 35.555 ms 46.259 ms
[root@app01 ~]# traceroute -w 2 www.baidu.com
[root@app01 ~]# traceroute www.baidu.comtraceroute to www.a.shifen.com (220.181.111.232), 64 hops max, 40 byte packets 1 homerouter.cpe (192.168.1.1) 3.143 ms 2.838 ms 1.211 ms 2 * * * 3 bogon (10.255.255.93) 30.085 ms 32.963 ms 29.901 ms 4 * * * 5 115.170.139.241 (115.170.139.241) 268.568 ms 34.907 ms 20.794 ms 6 36.112.252.9 (36.112.252.9) 34.217 ms 22.639 ms 235.632 ms******************省略部分内容输出******************
1、第1列:跳数(Hop Number)
这是数据包经过第几个路由器(从1开始)。每经过一个路由器,TTL减1,当TTL减到0时,路由器会向源主机发送“超时”的消息,从而被traceroute记录。
2、第2列:路由器名称,域名或IP地址
如果路由器配置了反向DNS解析,会显示域名,以及括号内的IP地址。如果无法解析,可能只会显示IP地址。
3、第3-5列:往返的时间(RTT)
默认情况下显示3个探测试的往返回时间(单位:ms)。分别表表第一个,第二个和第三个探测包收到的响应时间。
1、如果某个探测包丢失了,对应的位置为显示为“*”。
2、延迟数据可以帮助我们来判断网络链路的质量和堵塞程度。稳定的低延迟表示链路正常,相反高延迟或波动比较大,可能网络堵塞严重或路径较长。
4、星号(*)的含义
如果某一跳的默认三个探测包都超时,traceroute 会直接显示 * * *。造成该问题可能原因:
1、路由器配置了不响应ICMP协议或UDP协议的探测包(出于安全考虑)。
2、网络环境不太好丢包严重或链路故障。
3、数据包被防火墙过滤。
注意:连续的星号不一定表示探测路径完全中断,因为后续跳仍有可能响应,说明数据包实际通过了这些不响应的路由器。