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

本文所有命令实施的大前提是:你现在能够上网。

稍有计算机常识的人都知道ping命令,是用来检查自己的主机是否与目标地址接通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包,这里说得通俗一点,比如,就拿这个IT网站csdn来测试一下,则得到如下效果:

但是路由跟踪指令traceroute,在windows则是tracert,对于非计算机网络内行,就不太知道这是干什么了。

其实路由跟踪指令,更能展示出自己的主机与目标地址的通讯详细情况。

在Ubuntu12.04中,Ctrl+Alt+T打开终端,输入traceroute,如果如下图所示提示没有安装。

那么,则输入如下命令,先安装traceroute,Linux除了必要的东西之外,真的什么都没有安装的!

sudo apt-get install traceroute

如下图所示,迅速被刷屏之后,因为这个路由跟踪组件,才51KB,你正式可以在Linux中使用traceroute命令

此时,输入如下命令,测试我的Ubuntu12.04与www.csdn.net的通讯详细情况,

traceroute -n www.csdn.net

其中-n代表,仅要看ip地址,不要显示主机名、域名那些东西,也就是说不要给我显示网址,则得到如下效果:

可以发现第一条记录之后,就一堆不可达,那是因为,我的Ubuntu12.04处于虚拟机中,通过桥接的方式与我的主机Windows 7通讯,虚拟机Ubuntu12.04所有网络状态直接继承主机Windows 7的网络,根本就不知道Windows 7做什么,因此只能在Windows 7的cmd中使用相同的tracert路由跟踪指令做这个实验。

首先,运行cmd,输入tracert,发现cmd提示,这不是可运行程序或命令或批处理文件,也就是找不到tracert。这是因为我的Windows 7x64没有把windows/system32这个文件夹的内容设置为cmd的全局变量。

与配置Java、Mysql之流一样,如下图所示,右键“我的电脑或者计算机”,选择“属性或者管理”,选择“高级”选项卡,打开“环境变量”,在“系统变量”那一栏中找到Path,编辑,补上一个c:\windows\system32\;然后就是各种“确定”。

之后,再运行cmd,输入tracert,这时候显示tracert命令的说明,终于可以愉快地进行玩耍了。

输入如下指令,要求显示,如果本主机要和www.csdn.net这个网址通讯,整个通讯包的流向。

tracert -d -h 15 www.csdn.net

其中,要求只显示IP,别给我显示网址,追踪15次,无论如何都打断。

那么,得到如下结果。这个结果怎么看呢?

首先第一列,也就是最左列那个1,2,3,4,5...就是通讯包第1,2,3,4,5...站,也就是通讯包第1,2,3...跳处于的路由器。最后一列,也就是最后一列,也就是一个一个通讯包的车站,也就是传说中的路由器。中间的3个时间,分别代表3个被实验的通讯包,彼此之间相互不影响,站与站之间的通讯时间,也就是上一个路由器到下一个路由器的通讯时间。

其中,这个路由器的IP,你完全可以打开某个搜索引擎,直接输入,则能够马上显示其IP对应的位置。

综上所述,以下结果所对应的真实情况为:

1、一开始通讯包从本主机出发,也就是从广州某高校内的某个单位的主机出发,

2、来到了网关,也就是广州某高校内的某个单位的总路由器

3-7、之后根据本高校的网络设置,找到本高校的外网出口,来到广州电信的路由器。

8-10、广州电信接到这个通讯包,就帮我寻找www.csdn.net这个地址的IP,IP可以明显看到从183.63.96.129迅速跳到61.144.3.53,很明显是从区级单位的路由器跳到省级单位的路由器。尽管这些都是广州电信的IP,但谁叫广州是省会,如果我在某个非省会的城市做这个实验。我很有预感通讯包肯定被扔到省级单位的路由器。

11、由于CSDN在广东没有配自己的服务器嘛,因此广州电信一直未能帮我找到其服务器所在地址。所以广州电信就把我这个包扔到中国总的路由器,寻找其位置。

12-13、之后,在国家级的路由器,搞了“很久”,超过100ms对于光纤来说就是“很久”,都没有给我反馈出结果,然后我的主机一直在等待。

14-15、之后国家级的路由器不知道为何先去探测澳洲IP,然后没找到才给我扔到北京总部路由器。大概是14-15同时进行的。也就是国家级的路由器在探测国内IP的同时,在探测国外IP。

之后由于我设置了追踪15次,无论如何都打断,因此路由到这里就停止了。我当然不爽,这个通讯包来到北京之后还没有输出来,于是再输入如下指令,不限制追踪次数,再测一次。

tracert -d www.csdn.net

很明显前15次,除了时间以外,根本就不会有任何差别的。就像你平时怎么上班下班的,你今天还是会怎么上班下班,除非你是刚上班的,还没有找到一条通勤路线,或者有什么事情。以下是接下去的结果:

16、来到北京联通之后,发现csdn的服务器是电信服务器,则扔到电信。其实综合15与16两步已经可以推测到北京地区的总服务器居然是联通服务器?电信的包居然要联通经手才到电信?不知道为什么呢?

17、之后更有意思的是,来到北京电信之后,发现这个包,还有所谓“263网络通信”经手,用某搜索引擎查了下,发现这个“263网络通信”原来是提供网络支持、云服务等公司。我开始推测csdn应该是利用,云,来为我们广大的程序猿提供服务的。

18、最后才到达114.112.73.194,csdn.net的路由器。

这与上面的ping结果是一致的:

虽然我们人看起来,这似乎是一个很漫长的过程,毕竟我们人,现在从广州到北京,最快也要3个小时,还没算市内通讯时间,还要耗费千五大洋上下……但是,对于网络的通讯包来说,仅仅是1s内的事情。这必须先谢郭嘉,让我们2000公里之外的网民能在1s内,几乎没花几个钱就能通讯。

下面再对一个你的网址进行tracert实验结束本文,比如,我对我的主机说,我要与www.google.com.hk这个网址通信会出现什么结果呢?

结果如下所示:

去到广州电信省级路由的时候,还是好好的,与上面与www.csdn.net愉快玩耍一样,顺顺利利地来到了广州省级路由。

然后,不知道为何马上给扔到尼泊尔灾区呢?

这……

估计这个IP是伪装的,如果去到这个IP,通讯包就再也找不到任何通讯路由器,被关进小黑屋了……

原因是什么你懂得

时间: 2024-08-07 01:37:25

【Linux】关于路由跟踪指令traceroute的相关文章

Linux常用网络工具:路由扫描之traceroute

之前两篇<Linux常用网络工具:fping主机扫描>和<Linux常用网络工具:hping高级主机扫描>都是关于主机扫描的,本篇介绍Linux下常用的路由扫描工具traceroute和mtr. 路由扫描主要是查询本机到另一个主机经过的路由跳数及数据延迟情况. traceroute基本使用 路由扫描工具的原理都是存活时间(TTL)来实现的.每当数据包经过一个路由器,其存活时间就会减1.当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者,路由扫描

路由跟踪工具简介

有学习过网络都知道,网络从来不是两点一线的,所谓路由跟踪,目的就是看看那一段网络出了问题,对于排查网络故障有很大的用途. 首先说的工具就是古老而又出名的traceroute(win称tracert),安装简单,win甚至自带 traceroute(win称tracert): 安装: yum install -y traceroute 用法:traceroute [参数] hostname(ip)tracert [参数] hostname(ip) 界面说明:每一跳序号都有一个IP和三个时间值,IP

20135239 益西拉姆 linux内核分析 跟踪分析Linux内核的启动过程

回顾 1.中断上下文的切换——保存现场&恢复现场 本节主要课程内容 Linux内核源代码简介 1.打开内核源代码页面 arch/目录:支持不同CPU的源代码:其中的X86是重点 init/目录:内核启动相关的代码基本都在该目录中(比如main.c等) start_kernel函数就相当于普通C程序的main函数 kernel/目录:Linux内核核心代码在kernel目录中 README 介绍了什么是Linux,Linux能够在哪些硬件上运行,如何安装内核源代码等 构造一个简单的linux系统m

H3C防火墙开启路由跟踪

有时为了排查网络的连通性需要用到Traceroute,然而有的设备默认并不开启路由跟踪,在排查故障的时候有时会要用到tracert来判断路由的正确性.  机房里有一台 H3C SecPath 和天融信防火墙相连,其他还有几台路由设备.在天融信上做了路由,访问的时候不通,由于路由设备较多,排查的时候使用tracert到H3C的设备就不通了,SecPath 没有ip ttl-expires enable.ip unreachables enable.ip df-unreachables enable

Linux常用到的指令汇总

Linux常用到的指令汇总 根据鸟哥linux私房菜上定义的:一定要先學會的指令:ls, more, cd, pwd, rpm, ifconfig, find 登入與登出(開機與關機):telnet, login, exit, shoudown, reboot Linux 多人多工與背景執行功能:& 與 [ctrl]+[z], fg, ps, kill 檔案與目錄管理:cd, pwd, ls, cat, more, mkdir, rm, rmdir, mv, cp, ln, find, wher

Linux下的find指令应用

Linux下的find指令,灰常重要! Linux下的find指令在目录结构中,搜索文件并且执行指定的操作. 1.命令格式 find pathname -options [-print  -exec  -ok --]. 2.命令功能 在文件树种中查找文件,并作出相应处理(可能访问磁盘). 3.命令参数 pathname:find命令所查找的目标路径. .表示当前目录:/表示系统根目录. -print:find命令将匹配文件输出到标准输出. -exec: 对匹配的文件执行该参数所给出的shell命

linux下svn常用指令(转)

一下内容转载于:http://blog.chinaunix.net/space.php?uid=22976768&do=blog&id=1640924.这个总结的很好~ windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行,所以必须得掌握linux下svn的常用指令.当然linux下也有模仿TortoiseSVN的lin

linux 常用的操作指令

linux常用的基本指令: 0. 背景知识: 计算机:接受用户的指令与数据,经过中央处理器的数据与逻辑单 元运算处理后,以产生或存储成有用的信息. 广义上讲:我们周边有好多宽泛概念上的计算机,如加减乘除计算 机,手机, GPS, ATM等等. 计算机五大单元: 输入单元:包括键盘,鼠标,扫描仪,手写板等. 中央处理器( CPU):含有算术逻辑,控制,记忆等单元. 输出单元:显示器,打印机. 注意: 这里存储器指内存 CPU读取的数据都是从内存中来的, CPU处理完成的数据,必须要先 写回内存,,

【Linux】Linux系统下find指令详细用法与示例

Linux中的Find指令是Linux系统中很重要也是很棒的指令之一,功能非常得强大.下面我根据实例代码向大家分享find指令.由于博客上无法贴出Linux代码,我就在截图中体现出代码,以及效果. 我先自己创建了文件名的test.c的普通文件,我们用指令mkdir,以及ls查看已经创建了test.c. 现在我们查找它. 根据文件名或者正则表达式查找:-name   通过文件名字查找 文件名: 1)find ./ -name test.c   查找文件名为test.c的文件 2)find ./ -