linux命令学习笔记(55):traceroute命令
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包
由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来
说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备
traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,我们会在linux主机系统下,直接执行命令行:
traceroute hostname
而在Windows系统下是执行tracert的命令:
tracert hostname
.命令格式:
traceroute[参数][主机]
.命令功能:
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>]
[-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
.命令参数:
-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
输出:
复制代码
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), hops max, byte packets
192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms
211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms
211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms
210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms
202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms
61.148.154.97 (61.148.154.97) 718.908 ms * bt--.bta.net.cn (202.106.228.25) 5.177 ms
124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms
202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms
* * *
* * *
[root@localhost ~]#
复制代码
说明:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实
就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用
traceroute -q www..com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了
ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某
台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格
式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务
商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商
也不可能帮助我们解决。 实例2:跳数设置 命令:
traceroute -m www.baidu.com
输出:
复制代码
[root@localhost ~]# traceroute -m www.baidu.com
traceroute to www.baidu.com (61.135.169.105), hops max, byte packets
192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms
211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms
211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms
210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms
202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms
bt--.bta.net.cn (202.106.228.37) 772.460 ms bt--.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms
124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms
123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms
* * *
* * *
[root@localhost ~]#
复制代码
说明: 实例3:显示IP地址,不查主机名 命令:
traceroute -n www.baidu.com
输出:
复制代码
[root@localhost ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), hops max, byte packets
211.151.74.2 5.430 ms 5.636 ms 5.802 ms
211.151.56.57 0.627 ms 0.625 ms 0.617 ms
211.151.227.206 0.575 ms 0.584 ms 0.576 ms
210.77.139.145 0.703 ms 0.754 ms 0.806 ms
202.106.42.101 23.683 ms 23.869 ms 23.998 ms
202.106.228.37 247.101 ms * *
61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms
202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms
* * *
* * *
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), hops max, byte packets
211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms
211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms
211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms
210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms
202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 ms
bt--.bta.net.cn (202.106.228.25) 2.965 ms 2.440 ms 61.148.154.97 (61.148.154.97) 431.337 ms
124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms
202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms
* * *
* * *
[root@localhost ~]#
复制代码
说明: 实例4:探测包使用的基本UDP端口设置6888 命令:
traceroute -p www.baidu.com
输出:
复制代码
[root@localhost ~]# traceroute -p www.baidu.com
traceroute to www.baidu.com (220.181.111.147), hops max, byte packets
211.151.74.2 (211.151.74.2) 4.927 ms 5.121 ms 5.298 ms
211.151.56.1 (211.151.56.1) 0.500 ms 0.499 ms 0.509 ms
211.151.224.90 (211.151.224.90) 0.637 ms 0.631 ms 0.641 ms
* * *
220.181.70.98 (220.181.70.98) 5.050 ms 5.313 ms 5.596 ms
220.181.17.94 (220.181.17.94) 1.665 ms !X * *
[root@localhost ~]#
复制代码
说明: 实例5:把探测包的个数设置为值4 命令:
traceroute -q www.baidu.com
输出:
复制代码
[root@localhost ~]# traceroute -q www.baidu.com
traceroute to www.baidu.com (61.135.169.125), hops max, byte packets
211.151.74.2 (211.151.74.2) 40.633 ms 40.819 ms 41.004 ms 41.188 ms
211.151.56.57 (211.151.56.57) 0.637 ms 0.633 ms 0.627 ms 0.619 ms
211.151.227.206 (211.151.227.206) 0.505 ms 0.580 ms 0.571 ms 0.569 ms
210.77.139.145 (210.77.139.145) 0.753 ms 0.800 ms 0.853 ms 0.904 ms
202.106.42.101 (202.106.42.101) 7.449 ms 7.543 ms 7.738 ms 7.893 ms
61.148.154.97 (61.148.154.97) 316.817 ms bt--.bta.net.cn (202.106.228.25) 3.695 ms 3.672 ms *
124.65.58.213 (124.65.58.213) 3.056 ms 2.993 ms 2.960 ms 61.148.146.29 (61.148.146.29) 2.837 ms
61.148.3.34 (61.148.3.34) 2.179 ms 2.295 ms 2.442 ms 202.106.35.190 (202.106.35.190) 7.136 ms
* * * *
* * * *
[root@localhost ~]#
复制代码
说明: 实例6:绕过正常的路由表,直接发送到网络相连的主机 命令:
traceroute -r www.baidu.com
输出:
[root@localhost ~]# traceroute -r www.baidu.com
traceroute to www.baidu.com (61.135.169.125), hops max, byte packets
connect: 网络不可达
[root@localhost ~]#
说明: 实例7:把对外发探测包的等待响应时间设置为3秒 命令:
traceroute -w www.baidu.com
输出:
复制代码
[root@localhost ~]# traceroute -w www.baidu.com
traceroute to www.baidu.com (61.135.169.105), hops max, byte packets
211.151.74.2 (211.151.74.2) 2.306 ms 2.469 ms 2.650 ms
211.151.56.1 (211.151.56.1) 0.621 ms 0.613 ms 0.603 ms
211.151.227.206 (211.151.227.206) 0.557 ms 0.560 ms 0.552 ms
210.77.139.145 (210.77.139.145) 0.708 ms 0.761 ms 0.817 ms
202.106.42.101 (202.106.42.101) 7.520 ms 7.774 ms 7.902 ms
bt--.bta.net.cn (202.106.228.25) 2.890 ms 2.369 ms 61.148.154.97 (61.148.154.97) 471.961 ms
124.65.58.221 (124.65.58.221) 4.490 ms 4.483 ms 4.472 ms
123.126.6.198 (123.126.6.198) 2.948 ms 61.148.156.6 (61.148.156.6) 7.688 ms 7.756 ms
* * *
* * *
[root@localhost ~]#
复制代码
说明: 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 是一个一般应用程序都不会用的号码
( 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,
而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon
程式。
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括
所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。 windows之tracert:
格式:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
参数说明:
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
该诊断实用程序通过向目的地发送具有不同生存时间 (TL) 的 Internet 控制信息协议 (CMP) 回应报文,以确定至
目的地的路由。路径上的每个路由器都要在转发该 ICMP 回应报文之前将其 TTL 值至少减 ,因此 TTL 是有效的
跳转计数。当报文的 TTL 值减少到 时,路由器向源系统发回 ICMP 超时信息。通过发送 TTL 为 的第一个回
应报文并且在随后的发送中每次将 TTL 值加 ,直到目标响应或达到最大 TTL 值,Tracert 可以确定路由。通过
检查中间路由器发发回的 ICMP 超时 (ime Exceeded) 信息,可以确定路由器。注意,有些路由器“安静”地丢弃生
存时间 (TLS) 过期的报文并且对 tracert 无效。
参数:
-d 指定不对计算机名解析地址。
-h maximum_hops 指定查找目标的跳转的最大数目。
-jcomputer-list 指定在 computer-list 中松散源路由。
-w timeout 等待由 timeout 对每个应答指定的毫秒数。
target_name 目标计算机的名称。
实例:
复制代码
C:\Users\Administrator>tracert www..com Tracing route to www..com [221.187.111.30]
over a maximum of hops: ms ms ms 10.58.156.1
ms < ms < ms 10.10.10.1
ms ms ms 211.103.193.129
ms ms ms 10.255.109.129
ms ms ms 124.205.98.205
ms ms ms 124.205.98.253
ms ms ms 202.99.1.125
ms ms ms 118.186.0.113
ms * * 118.186.0.106
ms ms ms 124.238.226.201
ms ms ms 219.148.19.177
ms ms ms 219.148.18.117
ms ms ms 219.148.19.125
ms ms ms 202.97.80.113
* * * Request timed out.
ms ms ms bj141--.bjtelecom.net [219.141.147.82]
ms ms ms 202.97.48.2
* * * Request timed out.
ms ms ms 221.187.224.85
ms ms ms 221.187.104.2
* * * Request timed out.
ms ms ms 221.187.111.30 Trace complete.
linux命令学习笔记(55):traceroute命令的更多相关文章
- linux命令学习笔记( 2 ) : cd 命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. . 命 ...
- linux命令学习笔记( 7 ) : mv 命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令, 经常用来备份文件或者目录. .命令格式: mv [选项] 源文件或目 ...
- Linux基础学习笔记以及常用命令
1.windows自带命令进入mysql所在磁盘 2.进入mysql安装目录的bin文件 D:\>cd D:\Program Files (x86)\mysql-5.5.25-winx64\ ...
- linux命令学习笔记(62)-curl命令-url下载工具
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合 传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道 ...
- Linux命令学习笔记目录
Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- linux命令学习笔记(25):linux文件属性详解
Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组. 最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loc ...
- TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
- 【Redis】命令学习笔记——键(key)(20个超全字典版)
安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...
- 学习笔记之shell命令
linux shell命令学习笔记:~这里只是对自己一些常用但是不熟悉的的命令进行记录 -------------------------------------------------------- ...
随机推荐
- java面向对象编程知识点总结
一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...
- 频繁加载、删除swf造成flash崩溃解决办法
最近在项目中遇到flash崩溃问题,经分析,都是在swfobject.embedSWF这一步卡死,页面及flash均无反应. 造成此问题的场景是,在同一根节点上频繁清空节点.调用swfobject ...
- 打包合并多个dll
复杂项目中会引用大量的第三方dll文件,为了便于管理会尝试把相关打包合并成一个dll文件. 推荐使用ILMerge,如需使用网上自行下载. 使用方法: cd 安装目录 ILmerge /target: ...
- Netty 100万级到亿级流量 高并发 仿微信 IM后台 开源项目实战
目录 写在前面 亿级流量IM的应用场景 十万级 单体IM 系统 高并发分布式IM系统架构 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -10[ 博客园 总入口 ] 写在前面 大家好 ...
- SQLServer判断一个IP是否在一个IP段里
declare @ip1 varchar(20)declare @ip2 varchar(20)set @ip1='221.231.138.101'set @ip2='255.255.255.255' ...
- lua2json
lua对象json序列化,很简单,没做中文的unicode编码了 local function bool2json(v) return v and "true" or " ...
- ubuntu下使用free命令查看内存实际占用(待补充)
free不带选项运行会显示一个以kb为单位的默认输出 free -h人类能看懂的方式显示 free -m MB的方式显示 free -g GB方式显示 used=total-free即total=us ...
- python打包工具 --- pyinstaller
安装 安装python并添加到环境变量之后,在终端执行如下命令即可: pip install pyinstaller 截图如下: 若安装失败,可到: https://www.lfd.uci.edu/~ ...
- simple--factory--abstract
<?php /* 示例2: */ //简单工厂模式 /* * 定义运算类 */ abstract class Operation { protected $_NumberA = 0; prote ...
- 第四章 python中的面向对象设计
一.首先来理解几个面向对象的关键特性: 1.封装:对象可以将他们的内部状态隐藏起来.python中所有特性都是公开可用的. 2.继承:一个类可以是一个或多个类的子类.python支持多重继承,使用时需 ...