学习啦 > 学习电脑 > 操作系统 > Linux教程 > linux traceroute命令详解

linux traceroute命令详解

时间: 佳洲1085 分享

linux traceroute命令详解

  linux系统中traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。那么下面由学习啦小编为大家整理了linux traceroute命令的相关知识,希望对大家有帮助!

  1.linux traceroute命令用法说明

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

  在大多数情况下,我们会在linux主机系统下,直接执行命令行:traceroute hostname

  而在Windows系统下是执行tracert的命令: tracert hostname

  2.linux traceroute命令格式:

  traceroute[参数][主机]

  3.linux traceroute命令功能

  traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

  具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

  4.linux traceroute命令参数:

  -d 使用Socket层级的排错功能。

  -f 设置第一个检测数据包的存活数值TTL的大小。

  -F 设置勿离断位。

  -g 设置来源路由网关,最多可设置8个。

  -i 使用指定的网络界面送出数据包。

  -I 使用ICMP回应取代UDP资料信息。

  -m 设置检测数据包的最大存活数值TTL的大小。

  -n 直接使用IP地址而非主机名称。

  -p 设置UDP传输协议的通信端口。

  -r 忽略普通的Routing Table,直接将数据包送到远端主机上。

  -s 设置本地主机送出数据包的IP地址。

  -t 设置检测数据包的TOS数值。

  -v 详细显示指令的执行过程。

  -w 设置等待远端主机回报的时间。

  -x 开启或关闭数据包的正确性检验。

  5.linux traceroute命令使用实例:

  实例1:traceroute 用法简单、最常用的用法

  命令:traceroute www.baidu.com

  输出:

  复制代码代码如下:

  [root@localhost ~]# traceroute www.baidu.com

  traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets

  1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms

  2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms

  3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms

  4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms

  5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms

  6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms

  7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms

  8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms

  9 * * *

  30 * * *

  [root@localhost ~]#

  说明:

  记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。

  有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

  有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

  如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决

3583707