概述

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


安装traceroute

 yum -y install traceroute

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地址,三个包每次来回所花时间。


命令格式

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 开启或关闭数据包的正确性检验。

实例

1、traceroute 用法简单、最常用的用法

命令:

traceroute www.baidu.com 

说明:

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

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

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

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题。


2、跳数设置

命令:

traceroute -m 10 www.baidu.com

3、显示IP地址,不查主机名

命令:

traceroute -n www.baidu.com

4、探测包使用的基本UDP端口设置6888

命令:

traceroute -p 6888 www.baidu.com

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

linux traceroute命令详解_详解Linux系统路由跟踪指令traceroute语法、工作原理和实例说明...相关推荐

  1. linux 路由跟踪命令_一文掌握linux系统路由跟踪指令traceroute

    概述 traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不 ...

  2. linux系统跟踪路由命令,路由跟踪指令traceroute centos下路由追踪指令用法 跟踪IP路由链路...

    我们日常进行服务器运维,接触最多的应该是ping,ping是用来检查自己的主机是否与目标地址连通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是CP/IP,UDP包等. 但是路由跟踪指令tr ...

  3. 【Linux】关于路由跟踪指令traceroute

    本文所有命令实施的大前提是:你现在能够上网. 稍有计算机常识的人都知道ping命令,是用来检查自己的主机是否与目标地址接通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP ...

  4. 关于路由跟踪指令---traceroute

    我们都用过ping命令来检查主机与目标地址是否连通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包. 关于路由跟踪: 路由跟踪指令对Linux来说是tracer ...

  5. 关于路由跟踪指令traceroute介绍

    我们都用过ping命令来检查主机与目标地址是否连通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包. 关于路由跟踪: 路由跟踪指令对Linux来说是tracer ...

  6. linux使用命令重命名_如何在Linux上使用重命名命令

    linux使用命令重命名 Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com Ge ...

  7. Linux里怎么进行路由跟踪,[Linux] traceroute 路由跟踪指令用例

    traceroute是用来跟踪数据包到达网络主机所经过的路由工具.在Linux系统中,称之为traceroute,在Windows中称为tracert. 一条路径上的每个设备traceroute要测3 ...

  8. linux系统下,traceroute路由跟踪指令

    linux系统下,traceroute路由跟踪指令 traceroute www.163.com

  9. linux mount命令参数及用法详解

    linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...

最新文章

  1. 一文入门 Zookeeper
  2. Editplus下载、安装并最佳配色方案(强烈推荐)
  3. (转载)机器学习知识点(十五)从最大似然到EM算法浅解
  4. hdu 4857 Little Devil I
  5. 项目管理基础培训分享
  6. R语言——双样本独立检验的快速分析立检验的快速分析
  7. 台式计算机无线网卡,台式机用无线网卡,详细教您台式机怎么用无线网卡
  8. 两个有用的minicom命令
  9. 业务系统里面常见的方法接口设计
  10. Python is同一性运算符和==相等运算符区别
  11. java json乱码_Java Http请求传json数据乱码问题的解决
  12. ar开发 ue4_UE4 和 ARKit 入门
  13. Linq的Distinct方法
  14. Java md5加解密汉字_Java加解密_MD5
  15. 公司尽然把cnblogs给屏蔽了,可恶!!!
  16. PE文件格式详解(7)
  17. 【从RL到DRL】深度强化学习基础(五)离散控制与连续控制——确定策略梯度方法(DPG)、使用随机策略进行连续控制
  18. 基于SpringBoot开发的物联网风电监测系统源码【源码分享】
  19. .sync修饰符的原理和使用
  20. jedis简介和使用

热门文章

  1. python基础序列化文件的读取(十六)
  2. scala的字符串的方法(五)
  3. 交换机接口用了那几根线_交换机接口知识大全!网络从业者必懂!
  4. c语言从键盘输入求最大值和最小值,从键盘任意输入10个整数,计算并输出最大值和最小值及......
  5. 配置实体框架DbContext的可扩展方案
  6. 理解、创建、使用和测试HttpClient
  7. 微信开源推理加速工具 TurboTransformers,性能超越 PyTorch/TensorFlow 与主流优化引擎
  8. 使用.net core和abp框架实现动态webapi的简单说明
  9. 用python画简单图案图片_使用 Python Turtle 设计简单而又美丽的图形
  10. c语言 存储,c语言存储类