向网络主机发送ICMP ECHO_REQUEST分组数据
ping [-aAbBdfLnqrRvV] [-c count] [-i intvl] [-l preload] [-p pat] [-s size] [-t ttl] [-w deadline] [-I if] [-M hint] [-Q tos] [-S sndbuf] [-T time] [-W timeout] [hops] dest
ping命令采用基于ICMP协议的ECHO_REQUEST数据报探测指定的主机和网关,期望获得一个ICMP ECHO_RESPONSE响应数据报。ECHO_REQUEST数据报具有一个IP和ICMP头信息,紧随其后的是一个timeval结构数据,最后是任意数量的填充字节,以装配成完整的分组数据。
其中,选用的参数hops是中间需要跨越的网关,dest是目标系统的主机名或IP地址。
ping命令主要用于测试网络的连通性,也可用于测试网络的性能和主机的响应能力。使用ping测试网络的连通性时,首先应测试本地系统,验证本地系统的网络接口是否已经启用,然后再测试本地网络中的主机,最后再测试其他目标主机的连通性。在测试过程中,ping命令会计算最小、最大以及平均的往返传输时间,统计丢失的分组数据。
当已经发送(或接收)指定数量的分组数据,或因收到SIGINT信号而终止运行时,ping命令将会给出一个简要的汇总信息,包括收发的分组数据数量,分组数据丢失率,用时,最小,最大以及平均的往返传输时间等。如果收到SIGQUIT信号,ping命令也会给出当前时刻的统计数据,然后继续进行测试。
如果指定了“-c”选项,且在发送指定数量的分组数据之后没有收到任何响应分组数据,ping命令将会终止执行,返回结束状态1。在同时指定“-c”与“-w”选项的情况下,如果在截止时间到达后仍未收到指定数量的分组数据,ping命令也会终止执行,返回结束状态1。
-a 测试网络连通性时增加声音提示。
-A 自适应连通性测试。自动调节分组数据之间的时间间隔以适应网络通信的往返响应时间,从而避免网络中出现一个或多个(如果指定了“-l”选项)以上的未响应的探测分组数据。对于普通用户而言,最小的时间间隔是200毫秒。在往返传输时间较低的网络中,这种测试方式相当于洪水式测试方式。
-b 允许测试广播地址。
-B 禁止ping修改探测分组数据的源地址(绑定到ping开始运行时选用的地址)。
-c count 在发送指定数量count的ECHO_REQUEST分组数据之后停止。与“-w”选项一起使用时,ping命令将会等待指定数量count的ECHO_REPLY分组数据,直至超时。
-d 设置当前所用套接字的SO_DEBUG选项。实际上,Linux内核并未使用这个套接字选项。
-f 洪水式性能测试模式。对于发送的每一个ECHO_REQUEST分组数据,输出一个句点“.”字符。每当收到一个ECHO_REPLY响应时,输出一个退格字符。这将提供一种快速显示方式,以便观察丢失多少分组数据。如果没有指定时间间隔,ping将会把时间间隔设置成0,采取一旦得到回应立即输出分组数据,或每秒连续执行100次测试的方式之一(哪一种方式快或多即选用哪一种方式)。只有超级用户才能使用这个选项,以0间隔的方式执行网络性能的压力测试。
-i intvl 指定发送每个分组数据之间的间隔时间(单位秒)。默认的间隔时间是等待1秒。在“洪水式性能测试模式”中,没有等待时间。注意,只有超级用户才能把间隔时间设置成小于0.2秒的数值。
-I if 把源地址设置成指定的网络接口地址。接口参数可以是数字形式的IP地址,也可以是设备名。当测试IPv6本地链路地址时,要求使用这个选项。
-l preload 如果指定了preload,ping将会发送指定数量的分组数据,而不是等待对方的回应。注意,只有超级用户才能选用大于3的preload。
-L 禁止环回广播分组数据。仅当ping命令的目标对象是广播地址时才能使用这个选项。
-M hint 选择路径MTU发现策略(Path MTU Discovery)。参数hint可以是do(禁止分段)、want(执行PMTU发现。当分组数据较大时,可以分段)或dont(禁止设置DF标志)。
-n 显示IP地址即可,无须把IP地址解释成符号名字。
-p pat 指定最多16个填充字节,补充发送的分组数据。当需要诊断与数据有关的网络问题时,这个选项才是有用的。例如,“-p ff”选项表示在发送的分组数据后面附加全1的填充字节。
-q 安静输出模式。除了启动与完成时的汇总数据,禁止输出其他任何信息。
-Q tos 设置ICMP数据报中的服务质量标志位。指定的参数tos可以是十进制或十六进制的数值。按照RFC1349的定义,其中0号位是保留的 (当前重新定义为拥塞控制),1~4号位是服务类型,5~7号位是优先级。可以设置的服务类型是最小代价(0x02)、可靠性(0x04)、流通量(0x08)与低延迟(0x10)等。注意,不能同时设置多个服务类型标志位。优先级的范围是0x20~0xe0。注意,只有超级用户才能设置较高的优先级值。
-r 绕过常规的路由表,直接向网络接口连接的主机发送分组数据。如果目标主机并非本地网络中直连的主机,返回一条错误信息。这个选项主要用于测试通过网络接口直达(无须路由)的本地网络主机(此时也需使用“-I”选项)。
-R 记录路由。在ECHO_REQUEST分组数据中增加一个RECORD_ROUTE选项,显示返回分组数据中的路由缓冲区。注意,IP头信息最多只能提供9个路由。而且,许多主机会忽略或抛弃这个选项。
-s size 指定发送的数据字节的数量,默认的字节数是56,与8字节的ICMP头信息组合后,构成64字节的ICMP分组数据。
-S sndbuf 设置套接字的发送缓冲区sndbuf。如果未指定,选用的发送缓冲区不超过一个分组数据的大小。
-t ttl 设置IP的生存时间(TTL)。
-T time 设置特殊的IP时间选项。其中指定的time参数可以是tsonly(仅含时间信息)、tsandaddr(时间加地址信息)或tsprespec hosts(时间加预定的网关)。
-v 详细显示模式。
-V 显示命令的版本信息,然后退出。
-w deadline 指定ping命令终止执行的超时值(单位为秒),不管之前发送或接收了多少分组数据。在此情况下,ping不会在发送指定数量(参见“-c”选项)的分组数据之后即停止执行,而是等待deadline规定的超时值,收到指定数量(参见“-c”选项)的响应信息,或收到网络错误的通知信息。
-W timeout 指定等待响应的时间(单位为秒)。这个选项仅影响未获得任何响应时的超时,否则,ping将会等待两个往返传输的时间。
1. 测试本地系统与远程主机之间的网络连通性,以及远程主机是否正在运行。
$ ping iscas PING iscas (192.168.90.100) 56(84) bytes of data. 64 bytes from iscas (192.168.90.100): icmp_seq=1 ttl=64 time=0.048 ms 64 bytes from iscas (192.168.90.100): icmp_seq=2 ttl=64 time=0.033 ms 64 bytes from iscas (192.168.90.100): icmp_seq=3 ttl=64 time=0.037 ms ^C --- iscas ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2275ms rtt min/avg/max/mdev = 0.033/0.039/0.048/0.008 ms $
2. 利用“-A”选项,不仅可以确定本地系统与远程主机之间的连通性,还可以检测两个主机之间的网络通信是否丢失了分组数据(参见输出数据的“packet loss”字段)。“-A”选项表示以实际的往返响应时间为间隔,向指定的远程主机连续发送分组数据,直至使用中断键终止命令的执行。
$ ping -nA www.google.com.hk PING www-g-com-hk-chn.l.google.com (72.14.203.147) 56(84) bytes of data. 64 bytes from 72.14.203.147: icmp_seq=1 ttl=49 time=159 ms 64 bytes from 72.14.203.147: icmp_seq=2 ttl=49 time=153 ms 64 bytes from 72.14.203.147: icmp_seq=3 ttl=49 time=157 ms ^C --- www-g-com-hk-chn.l.google.com ping statistics --- 4 packets transmitted, 3 received, 25% packet loss, time 688ms rtt min/avg/max/mdev = 153.981/156.728/159.074/2.123 ms, ipg/ewma 229.613/158.274 ms $
3. 利用“-f”选项,可以连续不断地向远程主机发送数据报信息,完全不必顾及是否收到响应信息。ping命令每发送一个ECHO_REQUEST信息,即在屏幕上输出一个句点“.”;本地系统每收到一个ECHO_REPLY响应信息,即在屏幕上输出一个退格符,删除一个句点“.”。屏幕上的句点“.”多少大致可以说明远程主机的响应能力。按下Ctrl-C组合键后输出的“rtt min/avg/max/mdev”字段能够给出更准确的统计数据,说明往返传输时间的最小、平均以及最大时间值(毫秒),由此可以判断网络与主机的数据传输性能。
# ping -f www.redhat.com PING e86.b.akamaiedge.net (184.87.144.112) 56(84) bytes of data. ................^C --- e86.b.akamaiedge.net ping statistics --- 146 packets transmitted, 130 received, 10% packet loss, time 2097ms rtt min/avg/max/mdev = 232.462/233.270/234.408/0.460 ms, pipe 18, ipg/ewma 14.463/233.305 ms #
索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z