Linux 命令 - ping: 向网络主机发送 ICMP ECHO_REQUEST 包

ping 命令会向指定的网络主机发送特殊网络数据报 IMCP ECHO_REQUEST。多数网络设备收到该数据包后会做出回应,通过此法即可验证网络连接是否正常。

有时从安全角度出发,通常会配置部分网络通信设备以忽略 ICMP 数据包,因为这样可以降低主机遭受潜在攻击者攻击的可能性。当然,防火墙经常被设置为阻碍 IMCP 通信

 

命令格式

ping [optiondestination

 

命令参数

-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

 

posted on 2015-10-14 22:34  huey2672  阅读(13582)  评论(1编辑  收藏  举报