1、命令介绍
ping命令用来测试主机之间网络的连通性,通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接.
用途: 发送一个回送信号请求给网络主机,根据发送回的信号来判断网络的连通性
- 确定网络和各个外部主机的状态。
- 跟踪和隔离硬件与软件问题。
- 测试、评估和管理网络。
ping 命令每秒发送一个数据包并且为每个接收到的响应显示一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。
Ping 命令将在程序超时或收到 SIGINT 信号时完成。Host 参数是有效主机名或因特网地址。
缺省情况下,ping 命令继续将回传请求发送到屏幕,直至接收到中断信号 (Ctrl-C)。由于连续的回传请求会增加系统的负载,所以重复的请求必须主要用于问题确定。
2、语法格式及常用选项
可以使用man ping 来查看相关的参数信息
参数简化版:
- -d:使用Socket的SO_DEBUG功能;
- -c<完成次数>:设置完成要求回应的次数;
- -f:极限检测;
- -i<间隔秒数>:指定收发信息的间隔时间;
–I<网络界面>:使用指定的网络界面送出数据包; - -l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
- -n:只输出数值;
- -p<范本样式>:设置填满数据包的范本样式;
- -q:不显示指令执行过程,开头和结尾的相关信息除外;
- -r:忽略普通的Routing Table,直接将数据包送到远端主机上;
- -R:记录路由过程;
- -s<数据包大小>:设置数据包的大小;
- -t<存活数值>:设置存活数值TTL的大小;
- -v:详细显示指令的执行过程。
- -w<超时秒数>:无论之前发送或接受了多少包,只要超过此秒数,程序退出;
3、参考案例
3.1 测试本机与指定网站服务器之间的网络连通性
linux中的ping命令无法自己停止,需要手动按下ctrl+c组件按键命令来停止ping
此时,无需加任何参数,直接在ping后面加上IP或者网址
也可以直接ping IP地址:
这里面的几个参数:
- icmp_seq=1 ping序列,从1开始;
- bytes值: 数据包大小,也就是字节。
- time值:响应时间,这个时间越小,说明你连接这个地址速度越快。
- TTL值:Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。
拓展:
TTL就是说ping的数 据包 能在网络上存在多少时间。
当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。
当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。
- rtt min/avg/max/mdev 表示最小/最大、平均响应时间和本机硬件耗费时间
3.2 指定ping的次数
-c 参数可以用来指定ping的次数
[root@hadoop3 local]# ping -c 3 www.baidu.com
3.3 指定时间间隔和次数
这里会用到两个参数
-i 时间间隔参数,也就是发送周期
-c ping的次数
[root@hadoop3 local]# ping -c1 -i 0.3 www.baidu.com
3.4 设置TTL为255
-t参数可以设置存活数值TTL大小为255, 这里我们一并用上 -c 发送周期为3秒, -s设置发送包为1024
[root@hadoop3 local]# ping -c 3 -i 0.3 -s 1024 -t 255 192.168.0.112
3.5 极快速的测试使用大包ping
以最快的速度,使用最大的包进行ping,一般用于测试目标主机的承压能力测试。
说到这不得不提中国黑客教父,当年在中美黑客大战中一战成名,最大的本事就是号召中国网民,ping TN官网。
这里用到两个参数一个是-f: 极限检测,快速连续ping一台主机,ping的速度达到100次每秒。
另一个是: -s 指定每次ping发送的数据字节数,但不能大于65535,所以linux最大值为65507
[root@hadoop3 local]# ping -f -s 65507 192.168.0.112
4、使用ping命令常见问题
【常见问题分析】
在ping的过程中,经常会遇到以下的情况,我们根据情况的反馈来判断具体的问题。
- No Answer: ,对方主机没工作,双方网络配置不正确,路由问题等。
- Request Time Out: 对方主机已关机,路由问题或对端防火墙设置禁止ping
- Destination Net Unreachable: 双方没有建立连接,或对方主机不存在
- Unknown Host Name: DNS设置问题,或者对方主机不存在
- transmit failed,error code: 网卡驱动问题
- Bad IP Address: IP地址不存在或IP不能被DNS服务器解析
- pining 127.0.0.1 如果ping不通,表明本地机TCP/IP协议不能正常工作
- no rout to host 网卡工作不正常
使用ping来辅助判断网络的连通性
总结
我们经常用ping命令来判断主机是否在线,网络是否连通, 在脚本中也经常会用到ping命令,目前用的最多的参数就是 -c -i -w 这几个参数。