Linux ping命令

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