Linux ping命令:向网络主机发送ICMP请求

ping 是常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况。

ping 命令的基本信息如下。
  • 命令名称:ping。
  • 英文原意:send ICMP ECHO_REQUEST to network hosts。
  • 所在路径:/bin/ping。
  • 执行权限:所有用户。
  • 功能描述:向网络主机发送 ICMP 请求。

命令的基本格式如下:

[root@localhost ~]# ping [选项] IP

选项:
  • -b: 后面加入广播地址,用于对整个网段进行探测;
  • -c 次数: 用于指定 ping 的次数;
  • -s 字节: 指定探测包的大小;

【例 1】 探测与指定主机通信。

[root@localhost ~]#ping 192.168.103.151
PING 192.168.103.151 (192.168.103.151) 56(84) bytes of data.
64 bytes from 192.168.103.151: icmp_seq=1 ttl=128 time=0.300 ms
64 bytes from 192.168.103.151: icmp_seq=2 ttl=128 time=0.481 ms
…省略部分内容...
#探测与指定主机是否通信

Linux是一个比较实在的操作系统,这个 ping 命令如果不使用"Ctrl+C"快捷键强行中止,就会一直 ping 下去,直到天荒地老……

【例 2】指定 ping 的次数。
既然 ping 这么"实在",如果不想一直 ping 下去,则可以使用"-c"选项指定 ping 的次数。例如:

[root@localhost ~]# ping -c 3 192.168.103.151
#只探测3次,就中止ping命令


【例 3】 探测网段中的可用主机。
在 ping 命令中,可以使用"-b"选项,后面加入广播地址,探测整个网段。我们可以使用这个选项知道整个网络中有多少主机是可以和我们通信的,而不用一个一个 IP 进行探测。例如:

[root@localhost ~]# ping -b -c 3 192.168.103.255
WARNING: pinging broadcast address
PING 192.168.103.255 (192.168.103.255) 56(84) bytes of data.
64 bytes from 192.168.103.199: icmp_seq=1 ttl=64 time=1.95ms
64 bytes from 192.168.103.168: icmp_seq=1 ttl=64 time=1.97ms(DUP!)
64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29ms(DUP!)
…省略部分内容...
#探测192.168.103.0/24网段中有多少可以通信的主机