❶ 路由跟踪命令traceroute / tracert
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。
当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,
但基本上来说大部分时候所走的路由是相同的。
linux系统中,我们称之为traceroute,在MS Windows中为tracert。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。
一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
说明:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。
探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。
当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;
您可以加-n 参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;
但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
说明:
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地址,三个包每次来回所花时间。
❷ Linux系统中traceroute命令使用详解
Linux系统中traceroute命令可以追踪到网络数据包的路由途径。下面由我为大家整理了linux系统中traceroute命令使用详解,希望对大家有帮助!
Linux系统中traceroute命令使用详解
1.命令格式:
traceroute[参数][主机]
2.命令功能:
traceroute 指令让你追踪网络数据包的路由途径,预设数据包大小是40 Bytes, 用户可另行设置。
具体参数格式:traceroute [-dFlnrvx] [-f<存活数值>] [-g<网关>][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
3.命令参数
-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开启或关闭数据包的正确性检验
linux系统中traceroute命令实例
实例1:traceroute 用法简单,最常用的用法
命令:traceroutewww.google.com
说明:
记录按序列号从1开始,每个记录就是一跳,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是 -q 的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.google.com, 表示向每个网关发送4个数据包
有时我们 traceroute 一台主机时,会看到有一些行是以星号表示的。出现这种情况,可能是防火墙封掉了 ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因,当然如果某台DNS出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加 -n 参数来避免DNS 解析,以 IP格式 输出数据。
如果在局域网中的不同网段之间,我们可以通过 traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到 traceroute 追踪数据包所经过的网关,提交 IDC 服务商,也有助于解决问题;但目前看来国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
实例2:跳数设置
命令:
traceroute -m 10 www..com
实例3:只显示IP 地址,不查主机名DNS
命令:traceroute -n www..com
实例4:探测包使用的基本UDP端口设置6888
命令:traceroute -p 6888 www..com
实例5:把探测包的个数设置为4个
命令:traceroute -q 4 www..com
实例6:绕过正常的路由表,直接发送到网络相连的主机
命令:traceroute -r www..com
实例7:把对外发探测包的等待响应时间设置为3秒
命令:traceroute -w 3 www..com
补充:linux系统中traceroute 的工作原理
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】消息,traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个 TTL为 2 的 datagram ,发现第二个路由器,然后一直重复执行这种操作,直到某个datagram 抵达目的地。
在traceroute 送出 UDP datagram 到目的地时,它所选择送达的 port number 是一个一般应用程序都不会用的号码,所以当此UDP datagram到达目的地后该主机会送回一个 ICMP port unreachable 的消息,而当traceroute 收到这个消息时,便知道目的地已经到达,所以 traceroute 在 server 端也就没有所谓的 daemon 程式。
traceroute 通过计算 ICMP TTL 到期消息设备的IP 地址并做域名解析。每次,traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回所花时间。
❸ linux为了确定网络层经过的路由器数目应用什么命令
Tracert为路由跟踪程序,用于确定本地主机到目标主机经过哪些路由结点。在Linux操作系统中,对应的命令为Traceroute,tracert为windows系统下的命令。Tracert是利用ICMP和TTL进行工作的。首先tracert会发出TTL值为1的ICMP数据报(包含40个字节,包括源地址、目标地址和发出的时间标签,一般会连续发3个包)。当到达路径上的第一个路由器时,路由器会将TTL值减1,此时TTL值变成0,该路由器会将此数据报丢弃,并返回一个超时回应数据报(包括数据报的源地址、内容和路由器的IP地址)。当
tracert收到该数据报时,它便获得了这个路径上的第一个路由器的地址。接着,tracert再发送另一个TTL为2的数据报,第一个路由器会将此数据报转发给第二个路由器,而第二个路由器收到数据报时,TTL为0。第二个路由器便会返回一个超时回应数据报,从而tracert便获得了第二个路由器的地址。Tracert每次发出数据报时便会将TTL加1(一般每次都是发3个数据报),来发现下一个路由器。这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止。当数据报到达目的地后,目标主机并不返回超时回应数据报。Tracert在发送数据报时,会选择一个一般应用程序不会使用的号码(30000以上)来作为接收端口号,所以当到达目的地后,目标主机会返回一个ICMP port unreachable(端口不可达)的消息。当tracert收到这个消息后,就知道目的地已经到达了。
Tracert会提取ICMP的超时回应数据报中的IP地址并作主机名解析(用-d参数表示不解析主机名,解析主机名会耽误一些时间),然后将所经过的路由器的主机名及IP地址、数据报每次往返花费的时间显示出来。Tracert有一个固定的等待响应时间,如果这个时间过了,tracert就会输出“*”来表示某个设备没有在规定的时间内作出响应,然后tracert会将TTL值加1,继续进行检测。
通过tracert命令,我们便知道源地址到目的地址所经过的路径。虽然数据报传输时,经过的路径并不是每次都一样,但是大部分时间是一样的。在目标主机响应时,tracert会显示完整的经过的理由以及到每个路由所花费的时间。如果目标主机没有响应,tracert仍会尝试寻找所经过的路径。
B.Tracert结果的实际意义
网络不稳定时,可以看出具体哪些结点不稳定,以及不稳定的结点的上一个结点和下一个结点分别是在什么位置,由此即可大致判断出不稳定的网络结点在什么位
置。我们可以通过查询IP地址的网站如http://www.iplocation.net/(查国外IP比较准)或者ip138.com(查国内IP比
较准)查询下相应结点的位置。
tracert命令参数说明
重点掌握-d参数即可,它表示不解析IP对应的主机名。
-d 指定不将IP解析到主机名,运行更快
-h maximum_hop 指定最大跃点数
❹ traceroute命令与ping命令的区别
traceroute命令与ping命令的区别为:用途不同、内容不同、适用范围不同。
一、用途不同
1、traceroute命令:traceroute命令用来显示数据包到达目标主机所经过的路径(路由器)情况。
2、ping命令:ping命令主要是用来查看到目的地址的时延和丢包情况。
二、内容不同
1、traceroute命令:traceroute命令获取到数据包所走的全部路径、节点的IP以及花费的时间。
2、ping命令:ping命令获取到目的地址的IP地址和指定IP包被路由器丢弃之前允许通过的最大网段数量。
三、适用范围不同
1、traceroute命令:traceroute命令适用于大型网络,测试是否和代理服务器联通。
2、ping命令:ping命令适用于中小型网络,测试网卡是否正常工作。
❺ 关于tracert命令
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由.其命令格式如下: tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
编辑本段参数介绍
-d 指定不将地址解析为计算机名. -h maximum_hops 指定搜索目标的最大跃点数. -j computer-list 指定沿computer-list 的稀疏源路由. -w timeout 每次应答等待timeout指定的微秒数. target_name 目标计算机的名称. 最简单的用法就是"tracert hostname",其中"hostname"是计算机名或想跟踪器路径的计算机的IP地址,tracert将返回他到达目的地的各种IP地址. Tracert命令详解 该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。 tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name 使用 tracert 跟踪网络连接 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 Tracert 工作原理 通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。 Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。 Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。 在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。 C:\>tracert 172.16.0.99 -d Tracing route to 172.16.0.99 over a maximum of 30 hops 1 2s 3s 2s 10,0.0,1 2 75 ms 83 ms 88 ms 192.168.0.1 3 73 ms 79 ms 93 ms 172.16.0.99 Trace complete. 用 tracert 解决问题 可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。 C:\>tracert 192.168.10.99 Tracing route to 192.168.10.99 over a maximum of 30 hops 1 10.0.0.1 reports:Destination net unreachable. Trace complete. Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。 Tracert 命令行选项 Tracert 命令支持多种选项,如下表所示。 tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name -d 指定不将 IP 地址解析到主机名称。 -h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。 -j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。 -w timeout 等待 timeout 为每次回复所指定的毫秒数。 target_name 目标主机的名称或 IP 地址。 使用 tracert 命令跟踪路径 打开 命令提示符,然后键入: tracert host_name 或者键入 tracert ip_address 其中 host_name 或 ip_address 分别是远程计算机的主机名或 IP 地址。 例如,要跟踪从该计算机到的连接路由,请在命令提示行键入: tracert [url]
编辑本段注意
要打开“命令提示符”,请单击“开始”,指向“程序”、“附件”,然后单击“命令提示符”。 tracert 命令跟踪 TCP/IP 数据包从该计算机到其他远程计算机所采用的路径。tracert 命令使用 ICMP 响应请求并答复消息(和 ping 命令类似),产生关于经过的每个路由器及每个跃点的往返时间 (RTT) 的命令行报告输出。 如果 tracert 失败,可以使用命令输出来帮助确定哪个中介路由器转发失败或耗时太多。
编辑本段参数
/d 指定不将地址解析为计算机名。 -h maximum_hops 指定搜索目标的最大跃点数。 -j computer-list 指定沿 computer-list 的稀疏源路由。 -w timeout 每次应答等待 timeout 指定的微秒数。 target_name 目标计算机的名称
扩展阅读:
1
http://ke..com/view/41.htm?fr=ala0_1