欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

traceroute&tracert的一些用法

程序员文章站 2022-07-23 08:56:40
traceroute&tracert的一些用法   traceroute 跟踪数据包到达网络主机所经过的路由工具;    traceroute 是...

traceroute&tracert的一些用法

 

traceroute 跟踪数据包到达网络主机所经过的路由工具; 

 

traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。 

 

traceroute [参数选项] hostname,域名或 IP地址 

参数选项: 

-i 指定网络接口,对于多个网络接口有用。比如 -i eth1 或-i ppp1等; 

-m 把在外发探测试包中所用的最大生存期设置为max-ttl次转发,默认值为30次; 

-n 显示IP地址,不查主机名。当DNS不起作用时常用到这个参数; 

-p port 探测包使用的基本UDP端口设置为port ,默认值是33434 

-q n 在每次设置生存期时,把探测包的个数设置为值n,默认时为3; 

-r 绕过正常的路由表,直接发送到网络相连的主机; 

-w n 把对外发探测包的等待响应时间设置为n秒,默认值为3秒; 

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

 

就是后面直接接IP或hostname或域名;比如下面的示例; 

 

[root@localhost ~]# traceroute linuxsir.org 

traceroute to linuxsir.org (211.93.98.20), 30 hops max, 40 byte packets 

1 sir01.localdomain (192.168.1.1) 0.151 ms 0.094 ms 0.146 ms 

2 221.201.88.1 (221.201.88.1) 5.867 ms 7.588 ms 5.178 ms 

3 218.25.158.149 (218.25.158.149) 6.546 ms 6.230 ms 8.297 ms 

4 218.25.138.133 (218.25.138.133) 7.129 ms 7.644 ms 8.311 ms 

...... 

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

 

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

 

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

 

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在, 是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。为什么呢?因为北方网通和南方电信各自为政。以前无论怎么说都是一张网,现在就是两张网,是通而不畅。咱们只能望网兴叹了; 

 

实例二:一些参数的用法示例; 

 

[root@localhost ~]# traceroute -m 10 linuxsir.org 把跳数设置为10次; 

[root@localhost ~]# traceroute -n linuxsir.org 注:显示IP地址,不查主机名。 

[root@localhost ~]# traceroute -p 6888 linuxsir.org 注:探测包使用的基本UDP端口设置6888 

[root@localhost ~]# traceroute -q 4 linuxsir.org 注:把探测包的个数设置为值4; 

[root@localhost ~]# traceroute -r linuxsir.org 注:绕过正常的路由表,直接发送到网络相连的主机; 

[root@localhost ~]# traceroute -w 3 linuxsir.org 注:把对外发探测包的等待响应时间设置为5秒; 

 

在XP系统中,用tracert来跟踪路由