Linux的tracepath命令
tracepath用于显示报文到达某一个地址的路由信息,能够发现其中的MTU信息。
在探测过程中,会使用UDP端口或随机端口。所以可以看到后面的?符号。与traceroute类似。
这对于长距离的数据传输分析有很明显的帮助作用。
官方的定义为:
tracepath, tracepath6 - traces path to a network host discovering MTU along this path
使用方法为:
1 | $ tracepath [-n] [-b] [-l pktlen] [-m max_hops] [-p port] destination |
其中选项如下所示:
-n:只显示IP地址信息(默认是显示域名的,这个选项将不显示域名了)-b:同时显示主机名和IP地址(默认没有域名的只显示IP地址,这个选项即使没有主机名也会把IP地址作为主机名)-l:设置初始化的数据包长度,默认tracepath为65535,而tracepaht6为128000-m:设置最大的hops(或最大的TTL)为max_hops(默认为30)-p:设置初始使用的目标端口
官网的一个例子及含义
1 | root@mops:~ $ tracepath6 3ffe:2400:0:109::2 |
以其中一行为例:
| TTL | 探测信息 |
|---|---|
| 1?: | [LOCALHOST] pmtu 1500 |
| 1: | dust.inr.ac.ru 0.411ms |
| 这一列显示探测的TTL,用分号来分割。 不过有些情况下信息不足以确认,就出现了猜测的 ? |
显示网络探测信息: 如果未发送到网络,则为路由器地址或者localhost地址; 这里还会显示MTU、延迟等等等。 |
最后一行会总结整个链路的状态信息,显示了检测到的路径MTU、到达目的地的hops以及从目的地返回的hops数。
可以与ping配合使用,可以先用ping获取到具体的IP地址,然后使用tracepath进行进一步的分析。
1 | $ ping www.bing.com |