tranceroute

  1. 原理

traceroute (Windows 系统下是tracert) 命令利用ICMP 协议定位本地计算机和目标计算机之间的所有路由器。TTL 值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。程序利用增加存活时间(TTL)值来实现其功能。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。

程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。
使用目的:追踪网络数据包的路由途径
2.安装 traceroute

yum -y install traceroute
3. 使用实例

traceroute www.baidu.com

说明:

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

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

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

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。

traceroute -n -m 5 -q 4 -w 3 www.baidu.com

说明: -n 显示IP地址,不查主机名,

       -m 设置跳数  

       -q 4 每个网关发送4个数据包   

      -w 把对外发探测包的等待响应时间设置为3秒
  1. 探测包使用的基本UDP端口设置6888
    traceroute -p 6888 www.baidu.com

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

traceroute -r www.baidu.com
提示错误:网络不可达

posted on 2025-01-19 10:04  Mr.Ray.zhang  阅读(22)  评论(0)    收藏  举报

导航