Linux ping命令详解
ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法
ping(选项)(参数)
选项
-d:使用Socket的SO_DEBUG功能; -c<完成次数>:设置完成要求回应的次数; -f:极限检测; -i<间隔秒数>:指定收发信息的间隔时间; -I<网络界面>:使用指定的网络界面送出数据包; -l<前置载入>:设置在送出要求信息之前,先行发出的数据包; -n:只输出数值; -p<范本样式>:设置填满数据包的范本样式; -q:不显示指令执行过程,开头和结尾的相关信息除外; -r:忽略普通的Routing Table,直接将数据包送到远端主机上; -R:记录路由过程; -s<数据包大小>:设置数据包的大小; -t<存活数值>:设置存活数值TTL的大小; -v:详细显示指令的执行过程。
ping命令通过ICMP(Internet控制消息协议)工作;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详细参数,可能部分不全或翻译错误,欢迎指正:
参数 | 详解 |
---|---|
-a | Audible ping. |
-A | 自适应ping,根据ping包往返时间确定ping的速度; |
-b | 允许ping一个广播地址; |
-B | 不允许ping改变包头的源地址; |
-c count | ping指定次数后停止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 sndbuf | Set 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 deadline | deadline; |
参考内容: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”。
Linux ping命令详解相关推荐
- linux ping 命令详解
linux ping 命令详解 功能说明:检测主机. 语 法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l< ...
- linux的ping命令含义,Linux ping命令详解
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 ...
- 关于 Linux ping 命令详解
转自:微点阅读 https://www.weidianyuedu.com 不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控 ...
- linux ping等待时间,linux ping命令详解
一.ping命令的原理和工作机制 ping命令一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternet Grope),因特网包探索器,用于测试网络连接量的程序. ...
- linux ping 命令 参数详解,常用ping命令详解
Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们 ...
- Linux常用命令详解(两万字超长文)
Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...
- 【网络编程】Linux tcpdump命令详解---编辑中
目录 即看即用 详细说明 简介 输出信息含义 链路层头 TCP 数据包 UDP 数据包 SMB/CIFS 解码 AFS 请求和回应 KIP AppleTalk协议 IP 数据包破碎 时间戳 反向过滤 ...
- Linux常用命令详解(最全)
Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...
- linux mingetty 命令详解
linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...
最新文章
- 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(三)使用多边形将轮廓包围
- 免费获取验证码60秒倒计时
- (一)硕博生常用的中文文献检索方式推荐
- Soldier and Bananas
- php调http接口,2步教你解决http协议php接口调用
- POJ 3621 Sightseeing Cows [最优比率环]
- CSS ::selection 选中文字效果
- SQL那些事儿(三)----和小伙伴们做武大游
- bzoj 3895: 取石子(博弈)
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_4 Mybatis的CRUD-查询一个和模糊查询
- element-ul基本使用
- 【C语言】奥运参赛国出场次序
- 读Zepto源码之Deferred模块
- 为什么别人的晋升速度这么快?
- msray网址采集软件即将上线国外搜素引擎-QWANT
- 浏览器缓存有哪些,通常缓存有哪几种
- python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频
- 牛客SQL 大厂面试真题 某宝店铺分析 5套代码及解析
- 【信号与系统】(二十二)拉普拉斯变换与复频域分析——s域分析
- 短视频引流怎么做?如何利用短视频引流?短视频引流技巧
热门文章
- oracle aud$ 清理,Oracle如何迁移、管理、清除Audit数据(AUD$和FGA_LOG$表)
- SimpleDateFormat yyyy-MM-dd HH:mm:ss
- 0基础学java培训_零基础可以学习java课程么?零基础java培训需要多久?
- 压缩感知应用——单像素相机
- 基于Java Swing 亲属关系计算器
- C1认证-01任务-修改植物大战僵尸的文档
- 一个基于设计的隐私保护框架使用示例
- android打包报错 AAPT: error: IDAT: incorrect data check. AAPT: error: file failed to compile.
- 学习型红外遥控器硬件结构说明
- 昆明构建人社网络“安全盾” 日均拦截1.2万余次攻击