Linux 常用ping命令详解(adb shell)

    xiaoxiao2021-03-25  75

       转载自:http://aiezu.com/article/linux_ping_command.html

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

      不管在windows平台,还是在linux平台,ping都是非常常用的网络命令;ping命令通过ICMP(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。  一、ping用法:   ping命令运行在命令提示符终端,用法为:“ping 参数 目标主机”。其中参数为零到多个,目标主机可以是IP或者域名。

    1

    2

    3

    4

    Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]

                [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]

                [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]

                [-w deadline] [-W timeout] [hop1 ...] destination

     二、ping参数详解: 下面是爱E族(aiezu.com)收集整理的ping详细参数,可能部分不全或翻译错误,欢迎指正:

    参数详解-aAudible ping.-A自适应ping,根据ping包往返时间确定ping的速度;-b允许ping一个广播地址;-B不允许ping改变包头的源地址;-c countping指定次数后停止ping; -d 使用Socket的SO_DEBUG功能;-F flow_label为ping回显请求分配一个20位的“flow label”,如果未设置,内核会为ping随机分配;-f极限检测,快速连续ping一台主机,ping的速度达到100次每秒;-i interval设定间隔几秒发送一个ping包,默认一秒ping一次;-I interface指定网卡接口、或指定的本机地址送出数据包;-l preload设置在送出要求信息之前,先行发出的数据包;-L抑制组播报文回送,只适用于ping的目标为一个组播地址-n 不要将ip地址转换成主机名;-p pattern指定填充ping数据包的十六进制内容,在诊断与数据有关的网络错误时这个选项就非常有用,如:“-p ff”;-q不显示任何传送封包的信息,只显示最后的结果-Q tos设置Qos(Quality of Service),它是ICMP数据报相关位;可以是十进制或十六进制数,详见rfc1349和rfc2474文档;-R记录ping的路由过程(IPv4 only); 注意:由于IP头的限制,最多只能记录9个路由,其他会被忽略;-r忽略正常的路由表,直接将数据包送到远端主机上,通常是查看本机的网络接口是否有问题;如果主机不直接连接的网络上,则返回一个错误。-S sndbufSet socket sndbuf. If not specified, it is selected to buffer not more than one packet.-s packetsize指定每次ping发送的数据字节数,默认为“56字节”+“28字节”的ICMP头,一共是84字节; 包头+内容不能大于65535,所以最大值为65507(linux:65507, windows:65500);-t ttl设置TTL(Time To Live)为指定的值。该字段指定IP包被路由器丢弃之前允许通过的最大网段数;-T timestamp_option设置IP timestamp选项,可以是下面的任何一个:   'tsonly' (only timestamps)   'tsandaddr' (timestamps and addresses)   'tsprespec host1 [host2 [host3]]' (timestamp prespecified hops). -M hint 设置MTU(最大传输单元)分片策略。 可设置为:   'do':禁止分片,即使包被丢弃;   'want':当包过大时分片;   'dont':不设置分片标志(DF flag);-m mark设置mark;-v使ping处于verbose方式,它要ping命令除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包;-U Print full user-to-user latency (the old behaviour). Normally ping prints network round trip time, which can be different f.e. due to DNS failures.-W timeout以毫秒为单位设置ping的超时时间;-w deadlinedeadline;

    参考内容:http://ss64.com/bash/ping.html  三、输出格式:

    下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:

    ① ping目标主机的域名和IP(ping会自动将域名转换为IP)② 不带包头的包大小和带包头的包大小(参考“-s”参数)③ icmp_seq:ping序列,从1开始;  ttl:剩余的ttl;  time: 响应时间,数值越小,联通速度越快;④ 发出去的包数,返回的包数,丢包率,耗费时间;⑤ 最小/最大/平均响应时间和本机硬件耗费时间; 

       四、简单例子: 1、每隔0.6秒ping一次,一共ping 5次:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    [root@aiezu.com ~]# ping -c 5 -i 0.6 qq.com

    PING qq.com (14.17.32.211) 56(84) bytes of data.

    64 bytes from 14.17.32.211: icmp_seq=1 ttl=54 time=16.5 ms

    64 bytes from 14.17.32.211: icmp_seq=2 ttl=54 time=17.0 ms

    64 bytes from 14.17.32.211: icmp_seq=3 ttl=54 time=16.6 ms

    64 bytes from 14.17.32.211: icmp_seq=4 ttl=54 time=18.3 ms

    64 bytes from 14.17.32.211: icmp_seq=5 ttl=54 time=19.9 ms

     

    --- qq.com ping statistics ---

    5 packets transmitted, 5 received, 0% packet loss, time 2405ms

    rtt min/avg/max/mdev = 16.520/17.692/19.919/1.293 ms

      2、极限快速的使用大包ping:   以最快的速度,使用最大的包进行ping,可用于测试目标主机的承压能力:

    1

    2

    3

    4

    5

    6

    [root@aiezu ~]# ping -f -s 65507 10.0.0.52

    PING 10.0.0.52 (10.0.0.52) 65507(65535) bytes of data.

    .^

    --- 10.0.0.52 ping statistics ---

    646 packets transmitted, 646 received, 0% packet loss, time 1675ms

    rtt min/avg/max/mdev = 1.202/2.406/8.253/0.507 ms, ipg/ewma 2.598/2.318 ms

    注意:此用法非常危险,65535(包头+内容)*100个包每秒=6.25MB,每秒发送6.25MB的数据,相当于50Mbps的带宽,完全可能导致目标主机拒绝服务。请勿用于非法用途,造成不良后果自负。 3、联通不稳定,丢包严重的情形:   下面的ping发出17个ping icmp包,而只有序号为8、9、12的包收到响应信息,丢包率达82%,联通非常不稳定:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    [root@aiezu.com ~]# ping 8.8.8.8

    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

    64 bytes from 8.8.8.8: icmp_seq=8 ttl=43 time=32.3 ms

    64 bytes from 8.8.8.8: icmp_seq=9 ttl=43 time=32.2 ms

    64 bytes from 8.8.8.8: icmp_seq=12 ttl=43 time=32.0 ms

    ^C

    --- 8.8.8.8 ping statistics ---

    17 packets transmitted, 3 received, 82% packet loss, time 16003ms

    rtt min/avg/max/mdev = 32.038/32.208/32.362/0.246 ms

      4、完全无法ping通的情形:

    1

    2

    3

    4

    5

    [root@aiezu.com ~]# ping -c 3 9.9.9.9

    PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.

     

    --- 9.9.9.9 ping statistics ---

    3 packets transmitted, 0 received, 100% packet loss, time 1999ms

     五、常见错误: 1、错误一:

    1

    ping: packet size too large: 70000

    1

    2

    3

    4

    WARNING: packet size 65508 is too large. Maximum is 65507

    PING 10.0.0.52 (10.0.0.52) 65508(65536) bytes of data.

    ping: local error: Message too long, mtu=1500

    ping: local error: Message too long, mtu=1500

    解决:   将ping的“-s”参数设置一个更小的值,windows最大值为“65500”,linux最大值为“65507”。

                                                           

    WEL测试 认证博客专家 软件测试 性能测试 接口测试 一线的测试工作人员。喜欢专研并应用新的技术,用于提升测试效率。擅长:测试新人培训、测试进阶、接口测试、性能测试、问题定位、自动化、数据测试、渗透测试! 如果对测试感兴趣或者遇到一些难题,可以加我微信:Wel_Test,加时填好备注!
    转载请注明原文地址: https://ju.6miu.com/read-64220.html

    最新回复(0)