Linux ping命令用于检测主机。
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
参数说明:
- -d 使用Socket的SO_DEBUG功能。
- -c<完成次数> 设置完成要求回应的次数。
- -f 极限检测。
- -i<间隔秒数> 指定收发信息的间隔时间。
- -I<网络界面> 使用指定的网络接口送出数据包。
- -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
- -n 只输出数值。
- -p<范本样式> 设置填满数据包的范本样式。
- -q 不显示指令执行过程,开头和结尾的相关信息除外。
- -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
- -R 记录路由过程。
- -s<数据包大小> 设置数据包的大小。
- -t<存活数值> 设置存活数值TTL的大小。
- -v 详细显示指令的执行过程。
实例
检测是否与主机连通
ping runoops.com //ping主机
PING runoops.com (118.89.62.41): 56 data bytes
64 bytes from 118.89.62.41: icmp_seq=0 ttl=52 time=35.726 ms
64 bytes from 118.89.62.41: icmp_seq=1 ttl=52 time=38.589 ms
64 bytes from 118.89.62.41: icmp_seq=2 ttl=52 time=35.043 ms
^C
--- runoops.com ping statistics ---
4 packets transmitted, 3 packets received, 25.0% packet loss
round-trip min/avg/max/stddev = 35.043/36.453/38.589/1.536 ms
//需要手动终止Ctrl+C
指定接收包的次数
$ ping runoops.com -c 2
PING runoops.com (118.89.62.41): 56 data bytes
64 bytes from 118.89.62.41: icmp_seq=0 ttl=52 time=35.240 ms
64 bytes from 118.89.62.41: icmp_seq=1 ttl=52 time=35.148 ms
--- runoops.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 35.148/35.194/35.240/0.046 ms
//收到两次包后,自动退出
多参数使用
ping -i 3 -s 1024 -t 255 runoops.com
PING runoops.com (118.89.62.41): 1024 data bytes
1032 bytes from 118.89.62.41: icmp_seq=0 ttl=52 time=77.600 ms
1032 bytes from 118.89.62.41: icmp_seq=1 ttl=52 time=113.176 ms
1032 bytes from 118.89.62.41: icmp_seq=2 ttl=52 time=91.746 ms
1032 bytes from 118.89.62.41: icmp_seq=3 ttl=52 time=47.933 ms
...
^C
--- runoops.com ping statistics ---
11 packets transmitted, 11 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 36.585/79.522/179.604/43.177 ms
//-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255