在本文中,我们将为您详细介绍每天学一个Linux命令的相关知识,并且为您解答关于71:traceroute的疑问,此外,我们还会提供一些关于linuxtraceroute、linuxtracerout
在本文中,我们将为您详细介绍每天学一个 Linux 命令的相关知识,并且为您解答关于71:traceroute的疑问,此外,我们还会提供一些关于linux traceroute、linux traceroute 命令 查看路由表、Linux traceroute 命令详解、linux windows 路由跟踪指令 traceroute tracert 使用实例的有用信息。
本文目录一览:- 每天学一个 Linux 命令(71):traceroute(linux traceroute命令详解)
- linux traceroute
- linux traceroute 命令 查看路由表
- Linux traceroute 命令详解
- linux windows 路由跟踪指令 traceroute tracert 使用实例
每天学一个 Linux 命令(71):traceroute(linux traceroute命令详解)
命令简介
traceroute 命令用于显示数据包到主机间的路径信息。traceroute 命令利用 IP 协议的“生存时间”字段,并尝试从每个网关到某个主机的路径引发 ICMP TIME_EXCEEDED 响应。
[root@CentOS7-1 ~]# traceroute
-bash: traceroute: command not found
[root@CentOS7-1 ~]# yum install traceroute -y
语法格式
traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...] [-i device]
[-m max_ttl] [-p port] [-s src_addr] [-q nqueries]
[-N squeries] [-t tos] [-l flow_label] [-w waittime]
[-z sendwait] [-UL] [-D] [-P proto] [--sport=port] [-M method]
[-O mod_options] [--mtu] [--back] host [packet_len]
选项说明
-d #使用Socket级的功能
-f<存活数值> #设置第一个检测数据包的存活数值TTL的大小
-g<网关> #设置来源路由网关,最多可设置8个
-i<网络界面> #使用指定的网络界面送出数据包
-I #使用ICMP回应取代UDP
-m<存活数值> #设置检测数据包的最大存活数值TTL的大小
-n #使用IP地址
-p<通信端口> #设置UDP传输协议的通信端口
-r #忽略Routing Table,直接将数据包送到远端主机上
-s<来源地址> #设置本地主机送出数据包的IP地址
-t<服务类型> #设置检测数据包的TOS数值
-v #详细显示执行过程
-w<超时秒数> #设置等待远端主机返回的时间
-x #开启或关闭数据包的正确性检验
应用举例
实例
[root@CentOS7-1 ~]# traceroute www.bai.com
traceroute to www.bai.com (39.105.137.64), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 1.362 ms 2.077 ms 1.252 ms
2 100.106.0.1 (100.106.0.1) 6.903 ms 6.256 ms 4.887 ms
3 112.26.21.65 (112.26.21.65) 5.686 ms 4.540 ms 5.581 ms
4 221.183.48.53 (221.183.48.53) 5.430 ms 5.964 ms 5.573 ms
5 221.183.40.33 (221.183.40.33) 25.211 ms 24.256 ms 23.582 ms
6 * * *
7 111.13.0.173 (111.13.0.173) 26.907 ms 111.13.188.37 (111.13.188.37) 30.360 ms 39.156.0.37 (39.156.0.37) 24.476 ms
8 39.156.7.41 (39.156.7.41) 27.161 ms 39.156.1.225 (39.156.1.225) 28.306 ms 39.156.7.41 (39.156.7.41) 26.763 ms
9 39.156.1.225 (39.156.1.225) 28.571 ms 39.156.7.41 (39.156.7.41) 26.401 ms 26.422 ms
10 * 116.251.105.78 (116.251.105.78) 27.443 ms 123.56.34.14 (123.56.34.14) 28.939 ms
11 119.38.212.89 (119.38.212.89) 28.758 ms 116.251.94.101 (116.251.94.101) 28.575 ms *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
#每一行纪录就是一跳 ,每一跳表示一个网关,如果出现*可能是防火墙禁止了ICMP数据包
设置指定的跳数
[root@CentOS7-1 ~]# traceroute -m 5 www.bai.com
traceroute to www.bai.com (39.105.137.64), 5 hops max, 60 byte packets
1 gateway (192.168.1.1) 0.891 ms 0.987 ms 1.232 ms
2 100.106.0.1 (100.106.0.1) 5.577 ms 4.535 ms 4.726 ms
3 112.26.21.65 (112.26.21.65) 4.923 ms 5.276 ms 5.243 ms
4 221.183.48.53 (221.183.48.53) 7.336 ms 5.865 ms 5.836 ms
5 221.183.40.33 (221.183.40.33) 25.271 ms 24.109 ms 24.157 ms
显示IP地址,不查主机名
[root@CentOS7-1 ~]# traceroute -n www.bai.com
traceroute to www.bai.com (39.105.137.64), 30 hops max, 60 byte packets
1 192.168.1.1 0.814 ms 0.553 ms 0.578 ms
2 100.106.0.1 6.032 ms 6.508 ms 6.238 ms
3 112.26.21.65 4.854 ms 4.691 ms 9.640 ms
4 221.183.48.53 7.241 ms 7.086 ms 6.928 ms
5 221.183.40.33 25.174 ms 25.030 ms 25.194 ms
6 * * *
7 111.13.188.37 27.009 ms 111.13.0.173 25.983 ms 39.156.0.46 25.386 ms
8 39.156.1.225 27.632 ms * 39.156.0.37 25.082 ms
9 * 116.251.112.186 28.673 ms 39.156.7.41 26.949 ms
10 123.56.34.25 27.917 ms 116.251.94.113 27.853 ms 119.38.212.97 27.568 ms
11 116.251.105.78 30.888 ms 119.38.212.85 28.531 ms *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
把探测包的个数设置为值5
[root@CentOS7-1 ~]# traceroute -q 5 www.bai.com
traceroute to www.bai.com (39.105.137.64), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 0.795 ms 0.568 ms 0.537 ms 0.474 ms 0.541 ms
2 100.106.0.1 (100.106.0.1) 4.805 ms 4.414 ms 4.843 ms 4.588 ms 4.957 ms
3 112.26.21.65 (112.26.21.65) 4.506 ms 4.574 ms 4.917 ms 4.877 ms 4.880 ms
4 221.183.48.53 (221.183.48.53) 6.155 ms 5.354 ms 5.462 ms 5.264 ms 4.733 ms
5 221.183.40.33 (221.183.40.33) 45.558 ms 24.936 ms 24.420 ms 24.374 ms 24.974 ms
6 * * * * *
7 39.156.0.46 (39.156.0.46) 25.993 ms 39.156.0.37 (39.156.0.37) 25.967 ms 111.13.0.173 (111.13.0.173) 26.491 ms 111.13.188.37 (111.13.188.37) 25.742 ms 26.645 ms
8 * 39.156.0.37 (39.156.0.37) 25.074 ms 39.156.0.46 (39.156.0.46) 25.646 ms 25.533 ms 39.156.0.37 (39.156.0.37) 27.975 ms
9 39.156.7.41 (39.156.7.41) 30.148 ms 39.156.1.225 (39.156.1.225) 27.671 ms 27.640 ms 39.156.7.41 (39.156.7.41) 27.215 ms 26.626 ms
10 116.251.112.206 (116.251.112.206) 28.230 ms 116.251.112.214 (116.251.112.214) 28.362 ms * 119.38.212.85 (119.38.212.85) 27.916 ms 119.38.212.89 (119.38.212.89) 28.332 ms
11 * * * * *
12 * * * * *
13 * * * * *
14 * * * * *
15 * * * * *
16 * * * * *
17 * * * * *
18 * * * * *
19 * * * * *
20 * * * * *
21 * * * * *
22 * * * * *
23 * * * * *
24 * * * * *
25 * * * * *
26 * * * * *
27 * * * * *
28 * * * * *
29 * * * * *
30 * * * * *
绕过正常的路由表,直接发送到网络相连的主机
[root@CentOS7-1 ~]# traceroute -r www.bai.com
traceroute to www.bai.com (39.105.137.64), 30 hops max, 60 byte packets
connect: Network is unreachable
[root@CentOS7-1 ~]# traceroute -r 192.168.1.100
traceroute to 192.168.1.100 (192.168.1.100), 30 hops max, 60 byte packets
1 CentOS7-1 (192.168.1.100) 0.193 ms 0.004 ms 0.003 ms
每天学一个 Linux 命令(70):dig
linux traceroute
linux traceroute:(显示路由信息)traceroute 跟踪数据包到达网络主机所经过的路由工具;
traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。
traceroute [参数选项] hostname,域名或 IP地址
功能说明:显示数据包到主机间的路径。
语 法:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
补充说明:traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
参数选项:
-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小,默认值为30次;。
-n 直接使用IP地址而非主机名称。当DNS不起作用时常用到这个参数;
-p<通信端口> 设置UDP传输协议的通信端口。默认值是33434
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-t<服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回报的时间。默认值为3秒;
-x 开启或关闭数据包的正确性检验。
-q n 在每次设置生存期时,把探测包的个数设置为值n,默认时为3;
实例一: traceroute 用法简单、最常用的用法
就是后面直接接IP或hostname或域名;比如下面的示例;
[root @localhost ~]# traceroute linuxsir.org
traceroute to linuxsir.org (211.93.98.20), 30 hops max, 40 byte packets
1 sir01.localdomain (192.168.1.1) 0.151 ms 0.094 ms 0.146 ms
2 221.201.88.1 (221.201.88.1) 5.867 ms 7.588 ms 5.178 ms
3 218.25.158.149 (218.25.158.149) 6.546 ms 6.230 ms 8.297 ms
4 218.25.138.133 (218.25.138.133) 7.129 ms 7.644 ms 8.311 ms
......
注: 此例中,记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 linuxsir.org ,表示向每个网关发送4个数据包;
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据;
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在, 是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可 能帮助我们解决。为什么呢?因为北方网通和南方电信各自为政。以前无论怎么说都是一张网,现在就是两张网,是通而不畅。咱们只能望网兴叹了;
实例二:一些参数的用法示例;
[root @localhost ~]# traceroute -m 10 linuxsir.org 把跳数设置为10次;
[root @localhost ~]# traceroute -n linuxsir.org 注:显示IP地址,不查主机名。
[root @localhost ~]# traceroute -p 6888 linuxsir.org 注:探测包使用的基本UDP端口设置6888
[root @localhost ~]# traceroute -q 4 linuxsir.org 注:把探测包的个数设置为值4;
[root @localhost ~]# traceroute -r linuxsir.org 注:绕过正常的路由表,直接发送到网络相连的主机;
[root @localhost ~]# traceroute -w 3 linuxsir.org 注:把对外发探测包的等待响应时间设置为5秒;
linux traceroute 命令 查看路由表
traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
常见命令参数
Options:
-4 Use IPv4
-6 Use IPv6
-d --debug Enable socket level debugging
-F --dont-fragment Do not fragment packets
-f first_ttl --first=first_ttl
Start from the first_ttl hop (instead from 1)
-g gate,... --gateway=gate,...
Route packets through the specified gateway
(maximum 8 for IPv4 and 127 for IPv6)
-I --icmp Use ICMP ECHO for tracerouting
-T --tcp Use TCP SYN for tracerouting
-i device --interface=device
Specify a network interface to operate with
-m max_ttl --max-hops=max_ttl
Set the max number of hops (max TTL to be
reached). Default is 30
-N squeries --sim-queries=squeries
Set the number of probes to be tried
simultaneously (default is 16)
-n Do not resolve IP addresses to their domain names
-p port --port=port Set the destination port to use. It is either
initial udp port value for "default" method
(incremented by each probe,default is 33434),or
initial seq for "icmp" (incremented as well, default from 1),or some constant destination
port for other methods (with default of 80 for
"tcp",53 for "udp",etc.)
-t tos --tos=tos Set the TOS (IPv4 type of service) or TC (IPv6
traffic class) value for outgoing packets
-l flow_label --flowlabel=flow_label
Use specified flow_label for IPv6 packets
-w waittime --wait=waittime
Set the number of seconds to wait for response to
a probe (default is 5.0). Non-integer (float
point) values allowed too
-q nqueries --queries=nqueries
Set the number of probes per each hop. Default is
3
-r Bypass the normal routing and send directly to a
host on an attached network
-s src_addr --source=src_addr
Use source src_addr for outgoing packets
-z sendwait --sendwait=sendwait
Minimal time interval between probes (default 0).
If the value is more than 10,then it specifies a
number in milliseconds,else it is a number of
seconds (float point values allowed too)
-e --extensions Show ICMP extensions (if present),including MPLS
-A --as-path-lookups Perform AS path lookups in routing registries and
print results directly after the corresponding
addresses
-M name --module=name Use specified module (either builtin or external)
for traceroute operations. Most methods have
their shortcuts (`-I' means `-M icmp' etc.)
-O OPTS,... --options=OPTS,...
Use module-specific option OPTS for the
traceroute module. Several OPTS allowed, separated by comma. If OPTS is "help",print info
about available options
--sport=num Use source port num for outgoing packets. Implies
`-N 1'
-U --udp Use UDP to particular port for tracerouting
(instead of increasing the port per each probe), default port is 53
-UL Use UdplITE for tracerouting (default dest port
is 53)
-P prot --protocol=prot Use raw packet of protocol prot for tracerouting
--mtu discover MTU along the path being traced. Implies
`-F -N 1'
--back Guess the number of hops in the backward path and
print if it differs
-V --version Print version info and exit
--help Read this help and exit
常见命令展示
多命令使用
traceroute -n -m 5 -q 4 -w 3 www.baidu.com
说明: -n 显示IP地址,不查主机名, -m 设置跳数
-q 4每个网关发送4个数据包 -w 把对外发探测包的等待响应时间设置为3秒
探测包使用的基本UDP端口设置6888
traceroute -p 6888 www.baidu.com
绕过正常的路由表,直接发送到网络相连的主机
traceroute -r www.baidu.com
Linux traceroute 命令详解
大家好,又见面了,我是你们的朋友全栈君。
traceroute 命令
Linux中traceroute 命令用于显示数据包到目的主机的路径 Windows中路由追踪命令是tracert。
traceroute 指令可以追踪你发送的数据包在网络中传输的路由途径,主要显示走了什么路,到了什么站。 其预设的数据包大小是40bytes,该值可以另设。
语法:
traceroute 【参数】 【主机】
举个简单例子:traceroute -d www.baidu.com
参数说明:
-d 使用Socket层级的排错功能。
- f <存活数值> 设置第一个检测数据包的存活数值TTL的大小。
- m <存活数值> 设置检测数据包的最大存活数值TTL的大小,该值就是路由跳数。
- p <通信端口> 设置UDP传输协议的通信端口。
- s<来源地址> 设置本地主机送出数据包的IP地址。
- r 忽略普通的Routing Table,直接将数据包送到远端主机上。
- w<超时秒数> 设置等待远端主机回报的时间。
- v 详细显示指令的执行过程。
- q 设置向每个网关发送检测数据包次数。
实例一:基础应用
traceroute www.baidu.com
说明:
- 记录按序列号从1开始,每条纪录就表示一个网关。
我们看到每行有三个时间(ms),这三个时间就是-q的默认参数值。 探测 数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 XXX表示向每个网关发送4个数据包。
- 有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;
- 可以加-n 参数来避免DNS解析,以IP格式输出数据。 如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,可以排查最终显示路由到是哪里。
**实例二:**跳数设置(TTL)
traceroute -m 8 www.baidu.com
实例三:设置探测数据包数量
traceroute -q 4 -m 8 www.baidu.com
实例四:绕过正常路由表,直接发送到网路相连的主机
connect: Network is unreachable主机不可达是什么鬼?
这涉及到Traceroute的工作原理:
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」(超时)消息;
traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器… traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地时,它所选择送达的端口号 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息。而当traceroute 客户端根据收到的返回信息是TTL超时还是端口不可达来判断数据包是否到达目标主机。
扩展:在我们traceroute www.baidu.com时候,即TTL数值增加到一定大小时就拿不到返回的数据包了,后面陆续返回信息都是星号:
其实这个时候数据包已经到达目标服务器了,但是因为中间路由的安全问题,许多服务器不提供UDP响应服务或者说被防火墙挡掉,所以我们拿不到部分路由的返回。而这时候程序理所当然的认为任务没有结束,既没有报超时也没有报主机不可达,它会一直尝试增加TTL的数值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/203654.html原文链接:https://javaforall.cn
linux windows 路由跟踪指令 traceroute tracert 使用实例
本文所有命令实施的大前提是:你现在能够上网。
稍有计算机常识的人都知道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,5...站,也就是通讯包第1,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愉快玩耍一样,顺顺利利地来到了广州省级路由。
关于每天学一个 Linux 命令和71:traceroute的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于linux traceroute、linux traceroute 命令 查看路由表、Linux traceroute 命令详解、linux windows 路由跟踪指令 traceroute tracert 使用实例等相关内容,可以在本站寻找。
本文标签: