Linux 路由跟踪指令traceroute命令

本文通过实际操作介绍了如何使用traceroute/tracert命令追踪网络数据包的路径,并解析了从本地主机到目标服务器(如youkuaiyun.com和google.com.hk)的数据传输过程。
文所有命令实施的大前提是:你现在能够上网。

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


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

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

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


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

[plain] view plain copy
  1. sudo apt-get install traceroute  
如下图所示,迅速被刷屏之后,因为这个路由跟踪组件,才51KB,你正式可以在Linux中使用traceroute命令


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

[plain] view plain copy
  1. traceroute -n www.youkuaiyun.com  

其中-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.youkuaiyun.com这个网址通讯,整个通讯包的流向。

[plain] view plain copy
  1. tracert -d -h 15 www.youkuaiyun.com  

其中,要求只显示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.youkuaiyun.com这个地址的IP,IP可以明显看到从183.63.96.129迅速跳到61.144.3.53,很明显是从区级单位的路由器跳到省级单位的路由器。尽管这些都是广州电信的IP,但谁叫广州是省会,如果我在某个非省会的城市做这个实验。我很有预感通讯包肯定被扔到省级单位的路由器。

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

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

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


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

[plain] view plain copy
  1. tracert -d www.youkuaiyun.com  

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


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

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

18、最后才到达114.112.73.194,youkuaiyun.com的路由器。

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


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

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

结果如下所示:


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

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

这……可怜

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

原因是什么你懂得再见

<think>好的,我需要帮助用户解决在Ubuntu系统中进行路由跟踪命令问题。用户提到的是tracert和traceroute,我需要先确认这两个命令在Ubuntu中的正确性。 首先,我记得在Linux系统中,路由跟踪命令通常使用traceroute,而Windows使用的是tracert。所以用户可能混淆了两者的命令名称。Ubuntu作为Linux发行版,应该使用traceroute。不过,我需要确认这个命令是否默认安装,或者是否需要通过包管理器安装。 根据提供的引用资料,引用[1]提到在Ubuntu 20.04中,如果没有预装traceroute,可以通过apt安装。步骤包括更新包列表,然后安装。引用[3]也指出在Linux、Ubuntu系统中使用traceroute命令,而Windows使用tracert。所以用户的问题应该是如何在Ubuntu中使用正确的命令,即traceroute。 接下来,我需要指导用户如何安装traceroute,如果系统尚未安装的话。根据引用[1]的步骤,首先是更新包列表,然后执行安装命令。需要将这些步骤清晰地呈现给用户,确保他们能够正确执行。 此外,用户可能需要知道基本的使用方法,比如命令的语法和一些常用选项。例如,指定最大跃点数、调整探测包大小等。引用[4]中的示例显示了一个traceroute命令的使用,其中包含目标IP和参数,可以作为示例参考。同时,引用[3]提到traceroute会显示路由和时间等信息,说明其用途和输出格式。 最后,需要提醒用户注意事项,比如权限问题和使用时的潜在影响,如引用[5]所提到的,某些命令需要谨慎使用。可能还需要提到mtr工具作为替代方案,提供更详细的网络诊断。 总结步骤:确认命令名称(traceroute),安装步骤,基本用法示例,常见选项,注意事项和相关工具。需要确保回答结构清晰,分点说明,并引用提供的资料来支持内容。</think>在 Ubuntu 系统中,路由跟踪的标准命令是 `traceroute`,而 `tracert` 是 Windows 系统的指令。以下是详细说明: --- ### 1. **安装 traceroute** 若系统未预装该命令,可通过以下步骤安装: ```bash sudo apt update # 更新包列表(必要步骤确保安装最新版本)[^1] sudo apt install traceroute ``` --- ### 2. **基础用法** 命令格式: ```bash traceroute 目标IP或域名 ``` 示例: ```bash traceroute 14.215.116.1 # 跟踪到百度服务器的路由路径[^4] ``` 输出会显示路径中每个节点的 IP 地址、响应时间(通常为 3 次探测)和跃点数。 --- ### 3. **常用参数** - **指定最大跃点数** `-m 30` 设置最大跳数为 30(默认 30): ```bash traceroute -m 30 google.com ``` - **调整探测包大小** `-w 2` 设置等待响应时间为 2 秒,`-q 1` 减少每个跃点的探测次数为 1 次: ```bash traceroute -w 2 -q 1 example.com ``` --- ### 4. **进阶工具:mtr** `mtr` 结合了 `traceroute` 和 `ping` 功能,可实时显示网络质量: ```bash sudo apt install mtr mtr 14.215.116.1 # 动态更新丢包率和延迟 ``` --- ### 5. **注意事项** - 需要管理员权限时,使用 `sudo traceroute`。 - 部分网络节点可能屏蔽 ICMP 协议,导致结果显示为 `*`。 - 谨慎使用路由跟踪工具,避免触发网络安全策略[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值