Linux系统的 ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,它通过发送 ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。有些服务器处于安全考虑,会设置防火墙禁止ping或者在内核参数中禁止ping,以免被外人探测到。
Linux 下的Ping 和 windows 下的ping 稍有区别,Linux 下ping 不会自动终止,需要按 ctrl + c 终止或者用参数 -c 指定要求完成的回应次数。
1.命令格式:
ping [参数] [主机名或IP地址]
2.命令功能:
ping 命令用于:确定网络和各外部主机的状态,跟踪各类硬件和软件问题,测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和(ICMP)头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到终端信号(ctrl+C).
ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。
3.命令参数:
-d 使用Socket的SO_DEBUG功能
-f 极限检测,大量且快速地发送网络封包给一台机器,看它的回应。----死亡之ping
-n 只输出数值
-q 不显示任何传送封包的信息,只显示最后的结果
-r 忽略普通的 Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程
-v 详细显示指令的执行过程
<p>-c 数目:在发送指定数目的包后停止
-i 秒数:设定间隔几秒发送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包
-l 前置载入:设置在送出要求信息之前,先行发出的数据包
-p 范本样式:设置填满数据包的范本样式
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64字节的 ICMP 数据
-t 存活数值:设置存活数值TTL 的大小
4.使用实例:
实例1:ping 指定次数
命令:ping -c 10 192.168.1.1
实例2:设置时间间隔和次数限制的ping
命令:ping -c 10 -i 0.5 192.168.1.1
实例3:多参数组合使用
命令:
ping -i 3 -s 1024 -t 255 192.168.1.1
说明: -i 3 发送周期为3秒(时间可以是0,但不能使负数), -s 设置发送包的大小为1024(最大65507), -t 设置TTL值为 255
另外,-f 参数的极限测试,它发包的速度居然比 -i 0还要快,-i 0.0000000000000000001 的速度也才接近 -i 0.