ping 命令

用途

向网络主机发送 ECHO_REQUEST

语法

ping [ -d ] [ -D ] [ start of change-Fend of change ] [ -n ] [ -q ] [ -r ] [ -v] [  -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ start of change-uend of change ] [ -f-i Wait ] [ -l Preload ] [ -p Pattern  ] [ -s PacketSize  ] [ -S hostname/IP addr ] [ -L ] [ -I a.b.c.d. ] [ -o interface ] [ -T ttl ] [ -E Interface_name | Source_Hostname | Source_IP_address ] Host [ PacketSize ] [ Count ]

描述

ping 命令发送 Internet Control Message Protocol (ICMP) ECHO_REQUEST 以接收主机或网关发送的 ICMP ECHO_RESPONSEping 命令具有以下功能:

  • 仅确定网络状态和外来主机状态。
  • 跟踪并隔离硬件和软件问题。
  • 测试、测量和管理网络。

如果主机在网络上运行,主机就会对回声作出响应。 每个 echo 请求都包含 Internet Protocol (IP)、ICMP 标头、ping 进程 ID (PID)、 timeval 结构以及完成数据包所需的字节。

ping 命令每秒发送一个数据报,每收到网络主机的一个响应就打印一行输出。 ping 命令计算往返时间和丢包统计,并在完成后显示摘要。 ping 命令在程序超时或收到 SIGINT 信号时完成。 Host 参数是一个有效的主机名或 IP 地址。

ping 命令默认会继续向显示屏发送回显请求,直到收到 (Ctrl-C) 中断。 您可以使用 stty 命令更改 Interrupt 密钥。

重复的回音请求可能会使系统超负荷。 因此,重复回波请求必须主要用于隔离问题。

标志

表 1. 标志
描述
-c Count 指定必须发送和接收的由 Count 变量表示的回显请求次数。
-w timeout 使 ping 在发送最后一个数据包后等待回复的最长超时秒数。 -w 标志只能与 -c 标志一起使用。
-d 启动套接字级调试。
-D ICMP ECHO_REPLY 数据包的十六进制转储到标准输出。
-E 接口名称 | Source_Hostname | Source_IP_address 通过特定接口发送或接收互联网协议版本 4 ( IPv4 ) 和互联网协议版本 6 ( IPv6 ) 的 ping 数据包。 如果指定的接口名称、源主机名或源 IP 地址不是机器的接口地址,则会返回错误信息,并且不会发送 ping 数据包。 如果使用 -E 标志指定接口名称,那么缺省情况下,回传请求数 (-c 计数) 设置为值 5。
注意:
  • -E 标志确保通过特定接口发送或接收 ping 数据包。
  • -E 标志只适用于目标媒体访问控制 (MAC) 地址,而不适用于已保存的路由。 因此,仅当解析地址解析协议 (ARP) 时, -E 标志才在 IPv4 协议中起作用。 仅当邻居发现协议 (NDP) 将 IPv6 地址解析为 MAC 地址时, -E 标志才在 IPv6 协议中起作用。
  • 不能使用 -E 标志运行 -R 标志,因为 -E 标志对已保存的路由不起作用。
开始更改-F结束更改 以浮点精度显示 ping 命令的延迟。
-f 指定 flood-ping 选项。 -f 标志泛洪或输出数据包的速度与数据包返回的速度相同,或每秒 100 次(以较多者为准)。 每发送一个 ECHO_REQUEST ,就打印一个句点(.),而每接收一个 ECHO_REPLY ,就打印一个退格(/)。 此操作可快速显示丢弃的数据包数量。 -f 标志只有 root 用户使用。
注意: 请谨慎使用 -f 标志。 Flood ping 命令仅仅 root 用户可以使用。 -f 标志与 -i Wait 标志不兼容。
-I a.b.c.d 指定必须使用由 a.b.c.d 变量指定的接口必须用于 IPv4 多播。
-o 接口 指定接口变量必须用于传出 IPv6 多播。 接口以 en0, tr0 等形式指定。
-i 等待 每次数据包传输之间等待的秒数由 Wait 变量指定。 缺省值为在每个数据包发送之间等待 1 秒。 -i 标志与 -f 标志不兼容。 开始更改如果指定 -u 标志,传递给 -i 标志的时间间隔将以微秒为单位。 -u 标志的有效间隔范围是大于或等于 50 微秒,小于 1000000 微秒。 1000000 微秒的值等于 1 秒。 请勿将 -i 标志与 -D 标志一起使用。结束更改
-L 为组播 ping 禁用本地环回。
-l 预装入 在进入正常行为模式之前,尽可能快地发送由 Preload 变量指定数量的数据包。 正常的行为模式是每秒一次。
-n 仅指定数字输出。 不会尝试查找主机地址的符号名称。
-p 模式 最多指定 16 个填充字节,以完成发送的数据包。 -p 标志可诊断网络中与数据有关的问题。 例如, -p ff 在数据包中全部填入 1。
-q 指定静音输出。 只显示开始和结束时间的摘要行。
-r 跳过路由表,直接发送到连接网络上的主机。 如果 主机 不在一个直接连接的网络上,ping 命令将产生一个错误消息。 -r 标志可用于通过不再有路由通过的接口 ping 本地主机。
-R 指定 RECORD_ROUTE 选项。 -R 标志包括 ECHO_REQUEST 数据包中的 RECORD_ROUTE 选项,并在返回的数据包上显示路由缓冲区。
注意: IP 标头的大小足以容纳九条这样的路由。 许多主机和网关会忽略 -R 标志。
-a addr_family 如果 addr_family 等于 inet6 ,则将 ICMP 数据包的目标地址映射为 IPv6 格式。
-s PacketSize 指定必须发送的数据字节数。 默认数据字节为 56,与 ICMP 数据报头的 8 个字节相结合,可转换为 64 个 ICMP 数据字节。
-S hostname/IP addr 在发出的 ping 数据包中使用 IP 地址作为源地址。 在有多个 IP 地址的主机上, -S 标志可用于使用特定源 IP 地址发送或接收 ping 数据包。 如果 IP 地址不是机器的接口地址,则会返回错误信息,并且不会发送任何内容。
注意: 您可以使用 -S 标志,通过特定源 IP 地址发送或接收 ping 数据包,但 -S 标志并不保证通过特定接口发送或接收 ping 数据包。 取而代之的是使用 -E 标志,确保通过特定接口发送或接收 ping 数据包。
-T ttl 指定多点广播包的生存时间为 ttl 秒。
开始更改-u结束更改 使用 -u 标志和 -i 标志。 如果指定 -u 标志,则传给 -i 标志的时间间隔将以微秒为单位。 -u 标志的有效间隔范围是大于或等于 50 微秒,小于 1000000 微秒。 1000000 微秒的值等于 1 秒。 请勿将 -u 标志与 -D 标志一起使用。
-v 要求提供详细输出,其中除 echo 响应外,还将列出收到的 ICMP 数据包。

参数

表 2。 参数
描述
PacketSize 指定必须发送的数据字节数。 默认数据字节为 56,与 8 个字节的 ICMP 报头数据合并后可转换为 64 个 ICMP 数据字节。 加入该参数是为了与以前版本的 ping 命令兼容。
COUNT 指定必须发送和接收的回声请求次数。 包含这个参数是为了和以前的 ping 命令版本相兼容。

安全性

关注 RBAC 用户
RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 要检查名为 canopus 的主机的网络连接并指定必须发送的 echo 请求次数,请输入以下命令:
    ping  -c 5 canopus
    ping canopus  56  5
    将显示类似于以下示例的输出:
    PING canopus.austin.century.com: (128.116.1.5): 56 data bytes
    64 bytes from 128.116.1.5: icmp_seq=0 ttl=255 time=2 ms
    64 bytes from 128.116.1.5: icmp_seq=1 ttl=255 time=2 ms
    64 bytes from 128.116.1.5: icmp_seq=2 ttl=255 time=3 ms
    64 bytes from 128.116.1.5: icmp_seq=3 ttl=255 time=2 ms
    64 bytes from 128.116.1.5: icmp_seq=4 ttl=255 time=2 ms
    
    ----canopus.austin.century.com PING Statistics----
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 2/2/3 ms
  2. 要获取名为 lear 的主机信息并启动套接字级调试,请输入以下命令:
    ping  -d  lear
    将显示类似于以下示例的输出:
    PING lear.austin.century.com: (128.114.4.18) 56 data bytes
    64 bytes from 128.114.4.18: icmp_seq=0 ttl=255 time=6 ms
    64 bytes from 128.114.4.18: icmp_seq=1 ttl=255 time=17 ms
    64 bytes from 128.114.4.18: icmp_seq=2 ttl=255 time=6 ms
    64 bytes from 128.114.4.18: icmp_seq=3 ttl=255 time=6 ms
    64 bytes from 128.114.4.18: icmp_seq=4 ttl=255 time=6 ms
    ^C
    ----lear.austin.century.com PING Statistics ----
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 6/8/17 ms
    注: 重复输出,直到收到中断 (C®trl-C)。
  3. 要获取名为 opus 的主机信息并指定必须发送的数据字节数,请输入以下命令:
    ping  -s 2000 opus
    ping opus  2000
    将显示类似于以下示例的输出:
    PING opus.austin.century.com: (129.35.34.234): 2000 data bytes
    2008 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=20 ms
    2008 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=19 ms
    2008 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=20 ms
    2008 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=20 ms
    2008 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=20 ms
    2008 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=19 ms
    2008 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=19 ms
    ^C
    ----opus.austin.century.com PING Statistics----
    7 packets transmitted, 7 packets received, 0% packet loss
    round-trip min/avg/max = 19/19/20 ms
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  4. 要启动指向主机 stlopnor 的 flood-ping 选项,请输入以下命令:
    ping  -f stlopnor
    将显示类似于以下示例的输出:
    Ping stlopnor.austin.century.com: (129.35.34.234): 56 data bytes
    .^C
    ----stlopnor.austin.century.com PING Statistics ----
    1098 packets transmitted, 1097 packets received, 0% packet loss
    round-trip min/avg/max = 4/4/11
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  5. 要指定发送到主机 opus 的数据包之间的间隔为 5 秒,请输入以下命令:
    ping  -i5 opus
    将显示类似于以下示例的输出:
    PING opus.austin.century.com: (129.35.34.234): 56 data bytes
    64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms
    64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms
    64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=6 ms
    ^C
    ----opus.austin.century.com PING Statistics----
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 5/5/6 ms
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  6. 要在进入正常行为模式之前向主机 opus 发送由 Preload 变量指定数量的数据包,请输入以下命令:
    ping  -l 10 opus
    将显示类似于以下示例的输出:
    PING opus.austin.century.com: (129.35.34.234): 56 data bytes
    64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=9 ms
    64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=11 ms
    64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=16 ms
    64 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=22 ms
    64 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=26 ms
    64 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=27 ms
    64 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=30 ms
    64 bytes from 129.35.34.234: icmp_seq=7 ttl=255 time=31 ms
    64 bytes from 129.35.34.234: icmp_seq=8 ttl=255 time=33 ms
    64 bytes from 129.35.34.234: icmp_seq=9 ttl=255 time=35 ms
    64 bytes from 129.35.34.234: icmp_seq=10 ttl=255 time=36 ms
    64 bytes from 129.35.34.234: icmp_seq=11 ttl=255 time=6 ms
    64 bytes from 129.35.34.234: icmp_seq=12 ttl=255 time=6 ms
    64 bytes from 129.35.34.234: icmp_seq=13 ttl=255 time=6 ms
    64 bytes from 129.35.34.234: icmp_seq=14 ttl=255 time=7 ms
    64 bytes from 129.35.34.234: icmp_seq=15 ttl=255 time=6 ms
    ^C
    ----opus.austin.century.com PING Statistics----
    16 packets transmitted, 16 packets received, 0% packet loss
    round-trip min/avg/max = 6/19/36 ms
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  7. 要诊断网络中依赖数据的问题,请输入以下命令:
    ping -p ff opus
    该命令将数据包以全 1 的 pad 格式发送到主机 opus。 将显示类似于以下示例的输出:
    PATTERN: 0xff
    PING opus.austin.century.com: (129.35.34.234): 56 data bytes
    64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms
    64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms
    64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=5 ms
    64 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=6 ms
    64 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=5 ms
    ^C
    ----opus.austin.century.com PING Statistics----
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 5/5/6 ms
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  8. 要指定静音输出,请输入以下命令:
    ping  -q bach
    显示与以下示例类似的摘要信息:
    PING bach.austin.century.com: (129.35.34.234): 56 data bytes
    ^C
    ----bach.austin.century.com PING Statistics----
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 5/5/8 ms
    注意:输出将一直重复,直到接收到中断信号 (Ctrl-C)。
  9. 要通过特定接口发送或接收 ping 数据包,请输入以下命令:
    ping -E en1 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02
    将显示类似于以下示例的输出:
    Using Source Address 2020:1234:5678:9122:2c6f:57ff:3e6b:58
    PING 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: (2020:1234:5678:9122:2c6f:57ff:fe6b:8b02): 56 data bytes
    64 bytes from 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: icmp_seq=0 ttl=64 time=1.462 ms
    64 bytes from 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: icmp_seq=1 ttl=64 time=0.917 ms
    64 bytes from 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: icmp_seq=2 ttl=64 time=1.187 ms
    64 bytes from 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: icmp_seq=3 ttl=64 time=1.105 ms
    64 bytes from 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02: icmp_seq=4 ttl=64 time=1.114 ms
    
    --- 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02 ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 0/0/1 ms
  10. 开始更改要检查主机 ping 服务器(即 commodev2 )的网络连接,并指定延迟必须是浮点精度,请输入以下命令:
    ping -F commodev2
    将显示类似于以下示例的输出:
    # ping -F commodev2
    PING commodev2.pok.stglabs.ibm.com: (9.114.250.236): 56 data bytes
    64 bytes from 9.114.250.236: icmp_seq=0 ttl=255 time=0.315 ms
    64 bytes from 9.114.250.236: icmp_seq=1 ttl=255 time=0.100 ms
    64 bytes from 9.114.250.236: icmp_seq=2 ttl=255 time=0.088 ms
    64 bytes from 9.114.250.236: icmp_seq=3 ttl=255 time=0.090 ms
    --- commodev2.pok.stglabs.ibm.com ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max = 0.088/0.148/0.315 ms
    结束更改
  11. 开始更改要指定向主机 commodev6 (ping 服务器)发送数据包的间隔为 1000 微秒,请输入以下命令:
    • 在下面的示例中,主机 ping 服务器 commodev6 连续停机 4 秒和 2 秒。

      # ping -ui 1000 commodev6
      PING commodev6.pok.stglabs.ibm.com: (9.114.248.17): 56 data bytes
      Packets from icmp_seq 1507 (time:14:20:09.283540) to 5464 (time:14:20:13.287128) missed
      Packets from icmp_seq 10415 (time:14:20:18.295048) to 12396 (time:14:20:20.299296) missed
      --- commodev6.pok.stglabs.ibm.com ping statistics ---
      19438 packets transmitted, 13497 packets received, 30% packet lost
      round-trip min/avg/max = 0.050/0.058/0.124 ms
    • 在下面的示例中,由于 ping 客户端和 ping 服务器之间的距离较远,导致 ping 响应延迟和失序。

      # ping -ui 1000 aixbase.aus.stglabs.ibm.com
      PING aixbase.aus.stglabs.ibm.com: (9.3.199.113): 56 data bytes
      Packets from icmp_seq 179 (time:14:24:17.106403) to 181 (time:14:24:17.340580) missed
      icmp_seq=181 received out of order
      icmp_seq=179 received out of order
      icmp_seq=180 received out of order
      …
    • 在下面的示例中,没有收到来自 commodev6 ping 服务器的响应。

      # ping -ui 1000 commodev6
      PING commodev6.pok.stglabs.ibm.com: (9.114.248.17): 56 data bytes
      --- commodev6.pok.stglabs.ibm.com ping statistics ---
      3609 packets transmitted, 0 packets received, 100% packet loss
    • 在下面的示例中,ping 服务器一直正常运行,ping 客户端收到了对所有 ping 请求的响应。

      # ping -ui 1000 commodev6
      PING commodev6.pok.stglabs.ibm.com: (9.114.248.17): 56 data bytes
      
      --- commodev6.pok.stglabs.ibm.com ping statistics ---
      1989 packets transmitted, 1989 packets received, 0% packet loss
      round-trip min/avg/max = 0.050/0.056/0.322 ms
    结束更改