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 |