10.9 ping:测试主机之间网络的连通性
10.9.1 命令详解
【命令星级】 ★★★★★
【功能说明】
ping命令可用于测试主机之间网络的连通性。执行ping命令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而可得知该主机运作正常。
【语法格式】
ping [option] [destination]
ping [选项] [目标主机]
**说明:**在ping命令及后面的选项和目标主机里,每个元素直接都至少要有一个空格。
【选项说明】
表10-10针对该命令的参数选项进行了说明。
表10-10 ping命令的参数选项及说明
10.9.2 使用范例
**范例10-33:**测试到目标主机的网络连通性。
[root@centos7 ~]# ping www.baidu.com #ping命令之间接域名或IP,会一直显示ping的结果。
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data. #显示ping的域名及其IP地址,发送的是56字节的数据。
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=35.0 ms #此表格目标主机收到的数据是64字节,icp_seq是收到包的序列号,ttl是数据表的生存期,time是时延、
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=34.8 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=128 time=38.5 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=128 time=37.6 ms
^C #直到Ctrl+c强制终止。
--- www.a.shifen.com ping statistics ---
#这里是ping的统计结果。
4 packets transmitted, 4 received, 0% packet loss, time 3006ms #发了4个包,收到4个包,丢失0%的包,实际为3006ms。
rtt min/avg/max/mdev = 34.873/36.505/38.530/1.595 ms
#rtt是传输的时间延迟。min/avg/max/mdev是最小/平均/最大/算术平均差。
扩展知识:
1)ping命令会显示一个时间作为衡量网络延迟的参数,以判断源主机与目标主机之间网络的质量。
2)ping命令的输出信息中含有TTL值。TTL(Time To Life)称为生存期,它是ICMP报文的生存期各不相同,常见的生存期为32、64、128和256等。TTL值反映了ICMP报文所能够经过的路由器数目,每经过一个路由器,路由器都会将其数据包的生存期减去1,如果TTL值变为0,则路由器将不再转发此报文。
**范例10-34:**网络故障时的ping结果。
[root@centos7 ~]# ping 10.0.0.100
PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.
From 10.0.0.201 icmp_seq=1 Destination Host Unreachable #网络主机不可达。
From 10.0.0.201 icmp_seq=2 Destination Host Unreachable
From 10.0.0.201 icmp_seq=3 Destination Host Unreachable
From 10.0.0.201 icmp_seq=4 Destination Host Unreachable
^C
--- 10.0.0.100 ping statistics ---
5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4001ms
pipe 4
**范例10-35:**使用ping参数的不同组合的例子。
[root@centos7 ~]# ping -c 3 -i 3 -s 1024 -t 255 www.baidu.com
PING www.a.shifen.com (14.215.177.38) 1024(1052) bytes of data.
1032 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=37.0 ms
1032 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=31.2 ms
1032 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=128 time=33.3 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6008ms
rtt min/avg/max/mdev = 31.266/33.887/37.093/2.414 ms
- -c 3:发送3次ICMP包。
- -i 3:每次发包时间间隔为3s。
- -s 1024:设置发送的数据包大小为1024字节。
- -t 255:设置发送数据包的ttl值为255。
10.10 traceroute:追踪数据传输路由状况
10.10.1 命令详解
【命令星级】 ★★★★☆
【功能说明】
traceroute命令用于显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况。默认数据包大小是60字节(IPv4)或80字节(IPv6),用户可另行设置。它与Windows下的tracert命令类似。
【语法格式】
traceroute [option] [host] [packet_len]
treceroute [选项] [主机名或IP] [数据包大小]
**说明:**在traceroute命令及后面的选项里,每个元素直接都至少要有一个空格。
【选项说明】
表10-11针对该命令的参数选项进行了说明。
表10-11 traceroute命令的参数选项及说明
10.10.2 使用范例
**范例10-36:**查看某主机的路由状况。
[root@centos7 ~]# traceroute www.baidu.com
-bash: traceroute: command not found #提示命令没找到。
[root@centos7 ~]# yum provides traceroute #查看依赖包。
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
3:traceroute-2.0.22-2.el7.x86_64 : Traces the route taken by packets
: over an IPv4/IPv6 network
Repo : base
[root@centos7 ~]# yum install -y traceroute #安装依赖包。
[root@centos7 ~]# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets #域名 IP地址 最大心跳(次) 60字节数据包。
1 gateway (10.0.0.254) 0.095 ms 0.046 ms 0.045 ms #第一个网关 第1次时间 第2次 第3次。
2 * * * #因为一些网络原因,导致超时,显示为*。
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
命令结果说明具体如下。
- 记录按序列号从1开始,每个记录就是一跳,每跳表示一个网关,我们看到每行有3个时间,单位是ms,其实就是-q的默认参数值为3。探测数据包向每个网关发送3个数据包之后,网关响应并返回的时间。
- 有时我们traceroute一台主机时,会看到有一些星号。出现这样的情况,可能是因为网络设备封掉或丢弃了返回的信息,所以我们得不到返回的时间。
- 有时在某一网关的延时比较长,这有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现了问题,不能解析主机名、域名时,也会有延时比较长的现象,这时可以加-n参数来避免DNS解析,以IP格式输出数据。
- 在局域网的不同网段之间,我们可以通过traceroute来排查问题所在,确定是主机的问题还是网关的问题。如果通过远程来访问某台服务器遇到问题时,用traceroute来追踪数据包所经过的网关,并提交给IDS服务商,这样也有助于解决问题。
**范例10-37:**加快查询时间。
traceroute默认是使用UDP协议(受网络影响性能不太好),因此使用-I参数来调用icmp协议(ping命令使用的协议),若同时还使用-n参数,则不解析主机名:
[root@centos7 ~]# traceroute -I www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
1 gateway (10.0.0.254) 0.155 ms 0.056 ms 0.082 ms
2 192.168.0.1 (192.168.0.1) 0.491 ms 0.527 ms 0.561 ms
3 100.64.0.1 (100.64.0.1) 98.391 ms 98.349 ms 98.723 ms
4 10.225.135.57 (10.225.135.57) 2.376 ms 2.947 ms 3.418 ms
5 219.145.131.53 (219.145.131.53) 4.903 ms 4.873 ms 4.817 ms
6 * * *
7 113.96.5.110 (113.96.5.110) 30.671 ms 30.635 ms 30.588 ms
8 113.96.4.209 (113.96.4.209) 45.264 ms 45.231 ms 45.170 ms
9 98.96.135.219.broad.fs.gd.dynamic.163data.com.cn (219.135.96.98) 38.657 ms 38.643 ms 38.985 ms
10 121.14.67.146 (121.14.67.146) 34.067 ms 34.465 ms 34.134 ms
11 * * *
12 * * *
13 * * *
14 * * 14.215.177.39 (14.215.177.39) 33.942 ms
[root@centos7 ~]# traceroute -In www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
1 10.0.0.254 0.170 ms 0.077 ms 0.049 ms
2 192.168.0.1 0.442 ms 0.420 ms 0.393 ms
3 100.64.0.1 3.164 ms 3.062 ms 2.888 ms
4 10.225.135.57 2.726 ms 2.731 ms 2.674 ms
5 219.145.131.53 4.430 ms 4.061 ms 4.094 ms
6 * * *
7 113.96.5.110 30.671 ms 31.039 ms 30.970 ms
8 113.96.4.209 44.834 ms 42.977 ms 42.858 ms
9 219.135.96.98 38.331 ms 38.351 ms 38.336 ms
10 121.14.67.146 34.056 ms 34.198 ms 34.161 ms
11 * * *
12 14.215.177.39 33.849 ms 33.448 ms 33.785 ms