主机知识库
分享服务器知识

如何在Linux中使用traceroute命令

本文介绍了如何在Linux中使用traceroute命令。内容很详细。有兴趣的朋友可以参考一下,希望对大家有帮助。

1.命令格式:

Traceroute[参数][主机]

2.命令功能:

Traceroute命令允许您跟踪网络数据包的路由路径。默认数据包大小为40字节,可由用户单独设置。

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

3.命令参数:

-d使用套接字级调试。

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

-F设置不应与关闭位置分开。

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

-我使用指定的网络接口发送数据包。

-我用ICMP echo代替UDP数据报文。

-m设置检测包的最大生存值TTL的大小。

-n直接用IP地址代替主机名。

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

-r忽略普通RoutingTable,直接将数据包发送到远程主机。

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

-t设置检测包的TOS值。

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

-w设置等待远程主机报告的时间。

-x打开或关闭数据包的正确性检查。

4.使用实例:

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

指挥:traceroutewww.baidu.com

输出:

代码如下:

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

到www.baidu.com的跟踪路由(61.135.169.125),最多30跳,40字节数据包

1 192 . 168 . 74 . 2(192 . 168 . 74 . 2)2.606毫秒2.771毫秒2.950毫秒

2 211.151.56.57(211.151.56.57)0.596毫秒0.598毫秒0.591毫秒

3 211.151.227.206(211.151.227.206)0.546毫秒0.544毫秒0.538毫秒

4 210.77.139.145(210.77.139.145)0.710毫秒0.748毫秒0.801毫秒

5 202.106.42.101(202.106.42.101)6.759毫秒6.945毫秒7.107毫秒

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

7 124.65.58.213(124.65.58.213)4.343毫秒4.336毫秒4.367毫秒

8 202.106.35.190(202.106.35.190)1.795 61.148.156.138女士(61.148.156.138)1.899女士1.951女士

9 * * *

30 * * *

[root@localhost ~]#

描述:

记录按序列号从1开始,每条记录是一跳,每一跳代表一个网关。我们可以看到每一行有三次,单位是ms,实际上是-q的默认参数,探测包向每个网关发送三个包后,网关响应并返回时间;如果你使用traceroute-q4www.58.com,这意味着向每个网关发送4个数据包。

有时,当我们跟踪主机时,我们会看到一些行用星号表示。在这种情况下,有可能是防火墙屏蔽了ICMP的返回信息,所以我们无法获得任何相关的数据包返回数据。

有时候我们在某个网关会有很长的延迟,可能是因为某个网关或者物理设备本身的堵塞。当然,如果一个DNS出现问题,主机名和域名无法解析的时候会有很长的延迟;您可以添加-n参数以避免DNS解析,并以IP格式输出数据。

如果局域网中有不同的网段,我们可以使用traceroute来检查问题,无论是主机还是网关。如果我们在远程访问服务器时遇到问题,我们使用traceroute来跟踪数据包通过的网关,并将其提交给IDC服务提供商,这也有助于解决问题;但是目前国内似乎很难解决这样的问题,就是即使我们发现了问题,IDC服务商也帮不了我们解决。

实例2:跳数设置

rong>

命令:traceroute-m10www.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -m 10 www.baidu.comtraceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms9 * * *10 * * *[root@localhost ~]#

实例3:显示IP地址,不查主机名

命令:traceroute-nwww.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -n www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 5.430 ms 5.636 ms 5.802 ms2 211.151.56.57 0.627 ms 0.625 ms 0.617 ms3 211.151.227.206 0.575 ms 0.584 ms 0.576 ms4 210.77.139.145 0.703 ms 0.754 ms 0.806 ms5 202.106.42.101 23.683 ms 23.869 ms 23.998 ms6 202.106.228.37 247.101 ms * *7 61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms8 202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms9 * * *30 * * *[root@localhost ~]# traceroute www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms2 211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms3 211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms4 210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms5 202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 ms6 bt-228-025.bta.net.cn (202.106.228.25) 2.965 ms 2.440 ms 61.148.154.97 (61.148.154.97) 431.337 ms7 124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms8 202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms9 * * *30 * * *[root@localhost ~]#

实例4:探测包使用的基本UDP端口设置6888

命令:traceroute-p6888www.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -p 6888 www.baidu.comtraceroute to www.baidu.com (220.181.111.147), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 4.927 ms 5.121 ms 5.298 ms2 211.151.56.1 (211.151.56.1) 0.500 ms 0.499 ms 0.509 ms3 211.151.224.90 (211.151.224.90) 0.637 ms 0.631 ms 0.641 ms4 * * *5 220.181.70.98 (220.181.70.98) 5.050 ms 5.313 ms 5.596 ms6 220.181.17.94 (220.181.17.94) 1.665 ms !X * *[root@localhost ~]#

实例5:把探测包的个数设置为值4

命令:traceroute-q4www.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -q 4 www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 40.633 ms 40.819 ms 41.004 ms 41.188 ms2 211.151.56.57 (211.151.56.57) 0.637 ms 0.633 ms 0.627 ms 0.619 ms3 211.151.227.206 (211.151.227.206) 0.505 ms 0.580 ms 0.571 ms 0.569 ms4 210.77.139.145 (210.77.139.145) 0.753 ms 0.800 ms 0.853 ms 0.904 ms5 202.106.42.101 (202.106.42.101) 7.449 ms 7.543 ms 7.738 ms 7.893 ms6 61.148.154.97 (61.148.154.97) 316.817 ms bt-228-025.bta.net.cn (202.106.228.25) 3.695 ms 3.672 ms *7 124.65.58.213 (124.65.58.213) 3.056 ms 2.993 ms 2.960 ms 61.148.146.29 (61.148.146.29) 2.837 ms8 61.148.3.34 (61.148.3.34) 2.179 ms 2.295 ms 2.442 ms 202.106.35.190 (202.106.35.190) 7.136 ms9 * * * *30 * * * *[root@localhost ~]#

实例6:绕过正常的路由表,直接发送到网络相连的主机

命令:traceroute-rwww.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -r www.baidu.comtraceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packetsconnect: 网络不可达[root@localhost ~]#

实例7:把对外发探测包的等待响应时间设置为3秒

命令:traceroute-w3www.baidu.com

输出:

代码如下:

[root@localhost ~]# traceroute -w 3 www.baidu.comtraceroute to www.baidu.com (61.135.169.105), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 2.306 ms 2.469 ms 2.650 ms2 211.151.56.1 (211.151.56.1) 0.621 ms 0.613 ms 0.603 ms3 211.151.227.206 (211.151.227.206) 0.557 ms 0.560 ms 0.552 ms4 210.77.139.145 (210.77.139.145) 0.708 ms 0.761 ms 0.817 ms5 202.106.42.101 (202.106.42.101) 7.520 ms 7.774 ms 7.902 ms6 bt-228-025.bta.net.cn (202.106.228.25) 2.890 ms 2.369 ms 61.148.154.97 (61.148.154.97) 471.961 ms7 124.65.58.221 (124.65.58.221) 4.490 ms 4.483 ms 4.472 ms8 123.126.6.198 (123.126.6.198) 2.948 ms 61.148.156.6 (61.148.156.6) 7.688 ms 7.756 ms9 * * *30 * * *[root@localhost ~]#

Traceroute的工作原理:

Traceroute最简单的基本用法是:traceroutehostname

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

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

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

windows之tracert:

格式:

tracert[-d][-hmaximum_hops][-jhost-list][-wtimeout]target_name

参数说明:

tracert[-d][-hmaximum_hops][-jcomputer-list][-wtimeout]target_name

该诊断实用程序通过向目的地发送具有不同生存时间(TL)的Internet控制信息协议(CMP)回应报文,以确定至目的地的路由。路径上的每个路由器都要在转发该ICMP回应报文之前将其TTL值至少减1,因此TTL是有效的跳转计数。当报文的TTL值减少到0时,路由器向源系统发回ICMP超时信息。通过发送TTL为1的第一个回应报文并且在随后的发送中每次将TTL值加1,直到目标响应或达到最大TTL值,Tracert可以确定路由。通过检查中间路由器发发回的ICMP超时(imeExceeded)信息,可以确定路由器。注意,有些路由器“安静”地丢弃生存时间(TLS)过期的报文并且对tracert无效。

参数:

-d指定不对计算机名解析地址。

-hmaximum_hops指定查找目标的跳转的最大数目。

-jcomputer-list指定在computer-list中松散源路由。

-wtimeout等待由timeout对每个应答指定的毫秒数。

target_name目标计算机的名称。

实例:

C:\Users\Administrator>tracertwww.58.com
Tracingroutetowww.58.com[221.187.111.30]
overamaximumof30hops:
11ms1ms1ms10.58.156.1
21ms<1ms<1ms10.10.10.1
31ms1ms1ms211.103.193.129
42ms2ms2ms10.255.109.129
51ms1ms3ms124.205.98.205
62ms2ms2ms124.205.98.253
72ms6ms1ms202.99.1.125
85ms6ms5ms118.186.0.113
9207ms**118.186.0.106
108ms6ms11ms124.238.226.201
116ms7ms6ms219.148.19.177
1212ms12ms16ms219.148.18.117
1314ms17ms16ms219.148.19.125
1413ms13ms12ms202.97.80.113
15***Requesttimedout.
1612ms12ms17msbj141-147-82.bjtelecom.net[219.141.147.82]
1713ms13ms12ms202.97.48.2
18***Requesttimedout.
1914ms14ms12ms221.187.224.85
2015ms13ms12ms221.187.104.2
21***Requesttimedout.
2215ms17ms18ms221.187.111.30
Tracecomplete.

关于如何在Linux中使用traceroute命令就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

(Python内容来源于IDC同行,若侵权,请联系我们删除)

赞(0)
文章名称:《如何在Linux中使用traceroute命令》
文章链接:https://www.cmy.cn/host/10818.html
版权声明:茶猫云所有发布的内容,部分为原创文章,转载请注明来源!网络转载文章如有侵权请联系我们解决!
最新优惠:茶猫云VPS服务器