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

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

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

traceroute hostname

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

tracert hostname

示例:

[c:\~]$ tracert www.baidu.com通过最多 30 个跃点跟踪
到 www.a.shifen.com [119.75.217.109] 的路由:1     1 ms     1 ms     3 ms  113.44.96.1 2     2 ms     2 ms     1 ms  113.44.96.1 3     3 ms     3 ms     2 ms  218.241.253.97 4     3 ms     3 ms     3 ms  14.197.178.41 5     3 ms     7 ms     3 ms  14.197.249.122 6     *        *        *     请求超时。7     *        *        *     请求超时。8     *        *        *     请求超时。9     8 ms     5 ms     3 ms  119.75.217.109 跟踪完成。

表示经过9个路由可访问到www.baidu.com(119.75.217.109)。

说明:

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

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。(如果路由器不支持ICMP协议,对应的那条结果就会显示星号)

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

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

注:ubuntu下traceroute www.baidu.com全是×,但ping可通,这主要是因为ubuntu下默认的traceroute发送的是UDP包,应该加参数-I(使用ICMP包),traceroute -I www.baidu.com.

参考:

每天一个linux命令(55):traceroute命令

Traceroute百科

traceroute/tracert--获取网络路由路径相关推荐

  1. React获取router路由路径里的相关信息

    路由:'financial-budget/:id/edit' 路径:http://localhost:3000/financial-budget/4028963b7ce8b541017ce90bed9 ...

  2. [绍棠] nuxt.js获取当前路由的名称和路径

    获取当前路由名称 $nuxt.$route.path 获取当前路由路径 $nuxt.$route.name 获取router const router = $nuxt.$router

  3. tracert traceroute查看网络路由

    (一)windows:在windows中,打开cmd,利用tracert来追踪路由. 原理:tracert利用icmp协议,增加存活时间(TTL)值来实现其功能的.每当数据包经过一个路由器,其存活时间 ...

  4. 路由追踪程序traceroute/tracert分析与科普

    一.路由追踪程序traceroute/tracert Traceroute是Linux和Mac OS等系统默认提供的路由追踪小程序,Tracert是Windows系统默认提供的路由追踪小程序.二者的功 ...

  5. 利用常见的网络命令获取网络信息

    利用常见的网络命令获取网络信息 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 利用常见的网络命令获取网络信息 前言 一.利用ipconfig命令获取本地网络信息 二.实训 ...

  6. 金融信息安全实训——利用常见的网络命令获取网络信息

    实训2 金融信息安全实训--利用常见的网络命令获取网络信息 实训目的 掌握常见网络命令使用方法. 学习使用网络命令嗅探网络信息. 学习使用网络命令判断和处理网络问题. 实训准备及注意事项 1.装有Wi ...

  7. traceroute命令(检查路由情况)

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

  8. 在vb中使用Iphlpapi.dll获取网络信息(下)

    (转上版)http://miaozk2006.blog.163.com/blog/static/382470582011111391326440/ 5.运行时截图: 第十四节 返回本机网络接口数量 1 ...

  9. 片上网络路由算法综述

    一. 片上网络概述   在半个多世纪以来,半导体工业一直遵循着"摩尔定律"发展,即集成电路上可容纳的晶体管数目,约每隔两年便会增加一倍.截至目前,处理器中的晶体管数量最多已达到了上 ...

最新文章

  1. usr libexec java_osx – 如何更改从/ usr/libexec/java_home返回的Mac操作系统的默认Java虚拟机...
  2. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
  3. 已经导入依赖,但是Cannot resolve symbol“registerFunction“
  4. random(随机函数生成)
  5. 小伙工资单被同事看到后遭开除!网友炸锅了 最新后续来了...
  6. Linux思维导图之inode、mv、cp和硬软链接
  7. 猿辅导MSMARCO冠军团队:用MARS模型解决机器阅读任务 | 吃瓜笔记
  8. Linux下启动、停止J2SE程序(脚本)
  9. python黑帽子学习
  10. [ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)...
  11. 微云php解析源码,腾讯微云网盘直链解析源码(PHP)
  12. IDEA开发Springboot时,远程使用企业内部不能连接数据库的解决方法
  13. 远程主机强迫关闭一个现有连接 安卓开发 完美解决版
  14. 性能测试第七课--用户定义变量用户参数
  15. NSSCTF Round#4 Web WP
  16. win10 悬浮日历_Win10日历隐藏功能:可直接打印空白月历
  17. 数字集成电路设计-1-用一个mux和一个inv实现异或
  18. TreeView使用笔记
  19. 动态规划-(基本知识总结)
  20. Tesla Autopilot技术架构整理(引用自EatElephant)

热门文章

  1. 卧槽!成就了Java,开发框架排第一,你还是不够了解它!
  2. Eclipse 官宣,干掉 VS Code !
  3. Spring Boot 打包不同环境配置与 Shell 脚本部署
  4. 一次Dubbo拥堵的分析
  5. 面试:HashMap 夺命二十一问!鸡哥都扛不住~
  6. Mysql,再见吧!select * !
  7. IntelliJ IDEA 新版介绍
  8. 178页,四年图神经网络研究精华汇总
  9. 仅需10分钟:开启你的机器学习之路
  10. OpenAI开放GPT-3微调功能,一行命令就能实现!正确率最高提升4倍