Linux 命令(202)—— traceroute 命令
admin
2024-02-21 03:25:41

文章目录

  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 5.traceroute 工作原理
  • 参考文献

1.命令简介

traceroute 用于追踪数据包在网络上的传输时的全部路径。

通过 traceroute 我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

traceroute 通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备 traceroute 要测 3 次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其 IP 地址。

2.命令格式

traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...][-i device] [-m max_ttl] [-p port] [-s src_addr][-q nqueries] [-N squeries] [-t tos][-l flow_label] [-w waittimes] [-z sendwait] [-UL] [-D][-P proto] [--sport=port] [-M method] [-O mod_options][--mtu] [--back]host [packet_len]
traceroute6  [options]

traceroute6 等价于 traceroute -6。

3.选项说明

-d, --debug使用 Socket 层级的排错功能。
-f, --first=设置第一个检测数据包的存活数值 TTL 的大小。
-F, --dont-fragment设置勿离断位。
-g, --gateway=设置来源路由网关,最多可设置 8 个。
-i, --interface=使用指定的网络界面送出数据包。
-I, --icmp使用 ICMP 回应取代 UDP 资料信息。
-m, --max-hops=设置检测数据包的最大存活数值 TTL 的大小。
-n直接使用 IP 地址而非主机名称。
-p, --port=设置 UDP 传输协议的通信端口。
-r忽略普通的 Routing Table,直接将数据包送到远端主机上。
-s,--source=设置本地主机送出数据包的 IP 地址。
-t, --tos=设置检测数据包的 TOS 数值。
-v详细显示指令的执行过程
-w, --wait=max[,here,near]设置等待远端主机回报的时间。

4.常用示例

(1)追踪本地数据包到百度的传输路径。

traceroute www.baidu.com
traceroute to www.baidu.com (220.181.38.150), 30 hops max, 60 byte packets1  11.78.8.225 (11.78.8.225)  2.433 ms  2.634 ms  2.811 ms2  11.78.56.206 (11.78.56.206)  1.370 ms 11.78.55.202 (11.78.55.202)  4.412 ms  4.513 ms3  10.162.71.253 (10.162.71.253)  1.478 ms  1.611 ms 10.162.71.173 (10.162.71.173)  4.687 ms4  10.196.7.57 (10.196.7.57)  0.704 ms 10.196.7.61 (10.196.7.61)  4.564 ms 10.196.7.57 (10.196.7.57)  0.727 ms5  10.200.17.34 (10.200.17.34)  1.138 ms 10.200.17.22 (10.200.17.22)  0.996 ms 10.200.17.30 (10.200.17.30)  0.918 ms6  121.59.124.17 (121.59.124.17)  5.637 ms  5.936 ms 121.59.124.5 (121.59.124.5)  6.480 ms7  69.194.166.13 (69.194.166.13)  10.959 ms 69.194.165.245 (69.194.165.245)  5.319 ms  5.311 ms8  69.194.186.9 (69.194.186.9)  39.255 ms  39.573 ms 69.194.186.85 (69.194.186.85)  39.522 ms9  203.22.178.98 (203.22.178.98)  74.293 ms 203.22.178.102 (203.22.178.102)  74.782 ms 203.22.178.98 (203.22.178.98)  75.312 ms
10  59.43.182.189 (59.43.182.189)  77.611 ms 59.43.249.54 (59.43.249.54)  74.102 ms 59.43.249.38 (59.43.249.38)  73.877 ms
11  * * *
12  * * *
13  * * *
...

(2)设置跳数。

traceroute -m 7 www.baidu.com
traceroute to www.baidu.com (220.181.38.149), 7 hops max, 60 byte packets1  11.78.8.225 (11.78.8.225)  6.552 ms  6.736 ms  6.917 ms2  11.78.56.74 (11.78.56.74)  6.177 ms 11.78.56.204 (11.78.56.204)  4.516 ms 11.78.55.204 (11.78.55.204)  14.675 ms3  10.162.72.21 (10.162.72.21)  5.630 ms  5.541 ms *4  10.196.7.69 (10.196.7.69)  0.587 ms 10.196.7.61 (10.196.7.61)  6.825 ms  6.858 ms5  10.200.17.34 (10.200.17.34)  1.160 ms 10.200.17.30 (10.200.17.30)  1.054 ms 10.200.17.22 (10.200.17.22)  1.126 ms6  121.59.124.5 (121.59.124.5)  6.153 ms  6.077 ms  6.078 ms7  * * 69.194.166.21 (69.194.166.21)  6.055 ms

(3)显示 IP 地址,不查主机名。

traceroute -n www.baidu.com
traceroute to www.baidu.com (220.181.38.149), 30 hops max, 60 byte packets1  11.78.8.225  25.196 ms  25.482 ms  25.652 ms2  11.78.56.72  23.195 ms 11.78.55.72  4.692 ms 11.78.55.76  4.981 ms3  * * *4  10.196.7.65  0.662 ms 10.196.7.69  5.507 ms 10.196.7.61  0.730 ms5  10.200.17.26  4.861 ms  4.858 ms  0.851 ms6  121.59.124.5  6.188 ms 121.59.124.17  5.838 ms 121.59.124.5  6.422 ms7  69.194.165.177  5.373 ms * 69.194.165.209  5.997 ms8  69.194.186.85  39.251 ms 69.194.165.61  44.690 ms 69.194.166.121  42.017 ms9  203.22.178.102  76.251 ms 203.22.178.98  74.774 ms  74.547 ms
10  59.43.249.50  75.237 ms 59.43.182.93  76.105 ms 59.43.249.54  73.602 ms
11  * * *
12  * * *
13  * * *
...

(4)设置探测包的个数。

traceroute -q 4 www.baidu.com1  11.78.8.225 (11.78.8.225)  66.193 ms  66.368 ms  67.125 ms  67.400 ms2  11.78.55.78 (11.78.55.78)  4.961 ms 11.78.56.200 (11.78.56.200)  7.657 ms 11.78.55.76 (11.78.55.76)  5.052 ms 11.78.55.204 (11.78.55.204)  6.132 ms3  10.162.72.21 (10.162.72.21)  4.026 ms * 10.162.71.225 (10.162.71.225)  4.193 ms 10.162.72.21 (10.162.72.21)  3.845 ms
...

(5)设置等待响应时间。

traceroute -w 3 www.baidu.com
traceroute to www.baidu.com (220.181.38.150), 30 hops max, 60 byte packets1  11.78.8.225 (11.78.8.225)  3.784 ms  4.114 ms  4.279 ms2  11.78.56.76 (11.78.56.76)  4.073 ms 11.78.55.72 (11.78.55.72)  103.810 ms 11.78.55.76 (11.78.55.76)  103.894 ms3  10.162.71.129 (10.162.71.129)  4.708 ms 10.162.71.173 (10.162.71.173)  4.781 ms *
...

(6)绕过正常的路由表,直接发送到网络相连的主机。

traceroute -r www.baidu.com
traceroute to www.baidu.com (220.181.38.149), 30 hops max, 60 byte packets
connect: Network is unreachable

(7)探测包使用的基本UDP端口设置 10086。

traceroute -p 10086 www.baidu.com
traceroute to www.baidu.com (220.181.38.149), 30 hops max, 60 byte packets1  11.78.8.225 (11.78.8.225)  3.447 ms  3.691 ms  3.993 ms2  11.78.55.202 (11.78.55.202)  4.210 ms 11.78.56.202 (11.78.56.202)  6.387 ms 11.78.56.200 (11.78.56.200)  6.675 ms3  * * *4  10.196.7.65 (10.196.7.65)  0.664 ms 10.196.7.57 (10.196.7.57)  0.703 ms 10.196.7.65 (10.196.7.65)  0.658 ms
...

5.traceroute 工作原理

traceroute 最简单的基本用法是:traceroute hostname。

traceroute 的设计是利用 ICMP 及 IP header 的 TTL(Time To Live)栏位(field)。首先,traceroute 送出一个 TTL 是 1 的IP datagram(其实,每次送出的为 3 个 40 字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个 datagram 时,它将 TTL 减 1。此时,TTL 变为 0 了,所以该路由器会将此 datagram 丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着 traceroute 再送出另一个 TTL 是 2 的datagram,发现第 2 个路由器… traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回 ICMP time exceeded 消息,因为它已是目的地了,那么 traceroute 如何得知目的地到达了呢?

traceroute 在送出 UDP datagrams 到目的地时,它所选择送达的 port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此 UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当 traceroute 收到这个消息时,便知道目的地已经到达了。所以 traceroute 在 Server 端也是没有所谓的 Daemon 程序。

traceroute 提取发 ICMP TTL 到期消息设备的IP地址并作域名解析。每次 traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回所花时间。

参考文献

tracetroute(8) - Linux manual page - man7.org

相关内容

热门资讯

海南封关后文旅消费爆火 三亚入... 来源:@央视财经微博 【#海南封关后文旅消费爆火# #三...
紧急辟谣!罗永浩否认暗讽华为:...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:雷科技)1 ...
动态管控雪场客流   本报讯(记者孙莹)元旦佳节,圆明园第五届欢乐冰雪季如约启幕。海淀公安分局派出警力现场维护秩序,以...
寻汉风赏蜡梅诗意迎新   本报讯(记者代丽丽)记者从市公园管理中心了解到,元旦假期第二天,公园景区人头攒动,室内展览温馨怡...
户口迁移最新改革政策流程办理流...   户口概念由来   户口是个法律概念,在我国已经有两千多年的历史了。在《辞海》(1989年版)中对...