Linux 命令 - ping: 向网络主机发送 ICMP ECHO_REQUEST 包
ping 命令会向指定的网络主机发送特殊网络数据报 IMCP ECHO_REQUEST。多数网络设备收到该数据包后会做出回应,通过此法即可验证网络连接是否正常。
有时从安全角度出发,通常会配置部分网络通信设备以忽略 ICMP 数据包,因为这样可以降低主机遭受潜在攻击者攻击的可能性。当然,防火墙经常被设置为阻碍 IMCP 通信。
命令格式
ping [option] destination
命令参数
-a Audible ping.
每次发送数据时,发出鸣响。
-c count
发送 count 个 ECHO_REQUEST 数据包后,结束 ping 程序。
-d
使用 Socket 的 SO_DEBUG 选项。
-f
大量且快速地向目标发送数据包。
-i interval
每隔 interval 秒发送一次数据包。
-I interface address
使用指定的网络接口地址发送数据包。
-n
只以数字形式输出主机地址,不会尝试去查找主机名。
-p pattern
最多指定 16 个字节去填充数据包。例如,-p ff 会将所有的填充数据设置为 1。
-q
静态输出。仅程序启动和结束时显示摘要行。
-R
记录路由过程。
-r
忽略正常的路由表,而直接向主机发送数据包。如果目标主机不再直连的网络上,则返回异常。
-s packetsize
指定要发送的数据的字节数。默认是 56 字节,与 8 字节的 ICMP 头部结合刚好是 64 字节的 ICMP 数据包。
-t ttl
设置 IP 包的 TTL 值。
-T timestamp option
设置 IP 报文的时间戳选项。
-v
详细模式输出。
-V
显示版本信息。
-w deadline
ping 程序在 deadline 秒后退出,不管发送或接受多少数据包。
-W timeout
设置等待 ICMP 响应的时间。
实例
a) 指定 ping 程序执行次数。
[huey@huey-K42JE ~]$ ping -c 4 example.com PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=45 time=331 ms 64 bytes from 93.184.216.34: icmp_seq=2 ttl=45 time=333 ms 64 bytes from 93.184.216.34: icmp_seq=4 ttl=45 time=332 ms --- example.com ping statistics --- 4 packets transmitted, 3 received, 25% packet loss, time 10820ms rtt min/avg/max/mdev = 331.154/332.551/333.550/1.216 ms