ping 命令
用途
向网络主机发送 ECHO_REQUEST 。
语法
ping [ -d ] [ -D ] [
-F
] [ -n ] [ -q ] [ -r ] [ -v] [ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [
-u
] [ -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_RESPONSE 。 ping 命令具有以下功能:
- 仅确定网络状态和外来主机状态。
- 跟踪并隔离硬件和软件问题。
- 测试、测量和管理网络。
如果主机在网络上运行,主机就会对回声作出响应。 每个 echo 请求都包含 Internet Protocol (IP)、ICMP 标头、ping 进程 ID (PID)、 timeval 结构以及完成数据包所需的字节。
ping 命令每秒发送一个数据报,每收到网络主机的一个响应就打印一行输出。 ping 命令计算往返时间和丢包统计,并在完成后显示摘要。 ping 命令在程序超时或收到 SIGINT 信号时完成。 Host 参数是一个有效的主机名或 IP 地址。
ping 命令默认会继续向显示屏发送回显请求,直到收到 (Ctrl-C) 中断。 您可以使用 stty 命令更改 Interrupt 密钥。
重复的回音请求可能会使系统超负荷。 因此,重复回波请求必须主要用于隔离问题。
标志
| 项 | 描述 |
|---|---|
| -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。 注意:
|
| 以浮点精度显示 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 标志不兼容。 |
| -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 标志和 -i 标志。 如果指定 -u 标志,则传给 -i 标志的时间间隔将以微秒为单位。 -u 标志的有效间隔范围是大于或等于 50 微秒,小于 1000000 微秒。 1000000 微秒的值等于 1 秒。 请勿将 -u 标志与 -D 标志一起使用。 | |
| -v | 要求提供详细输出,其中除 echo 响应外,还将列出收到的 ICMP 数据包。 |
参数
| 项 | 描述 |
|---|---|
| PacketSize | 指定必须发送的数据字节数。 默认数据字节为 56,与 8 个字节的 ICMP 报头数据合并后可转换为 64 个 ICMP 数据字节。 加入该参数是为了与以前版本的 ping 命令兼容。 |
| COUNT | 指定必须发送和接收的回声请求次数。 包含这个参数是为了和以前的 ping 命令版本相兼容。 |
安全性
- 关注 RBAC 用户
- RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。
示例
- 要检查名为
canopus的主机的网络连接并指定必须发送的 echo 请求次数,请输入以下命令:
或ping -c 5 canopus
将显示类似于以下示例的输出:ping canopus 56 5PING 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 - 要获取名为
lear的主机信息并启动套接字级调试,请输入以下命令:
将显示类似于以下示例的输出:ping -d learPING 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)。 - 要获取名为
opus的主机信息并指定必须发送的数据字节数,请输入以下命令:
或ping -s 2000 opus
将显示类似于以下示例的输出:ping opus 2000PING 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)。 - 要启动指向主机
stlopnor的 flood-ping 选项,请输入以下命令:
将显示类似于以下示例的输出:ping -f stlopnorPing 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)。 - 要指定发送到主机
opus的数据包之间的间隔为 5 秒,请输入以下命令:
将显示类似于以下示例的输出:ping -i5 opusPING 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)。 - 要在进入正常行为模式之前向主机
opus发送由 Preload 变量指定数量的数据包,请输入以下命令:
将显示类似于以下示例的输出:ping -l 10 opusPING 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)。 - 要诊断网络中依赖数据的问题,请输入以下命令:
该命令将数据包以全 1 的 pad 格式发送到主机ping -p ff opusopus。 将显示类似于以下示例的输出: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)。 - 要指定静音输出,请输入以下命令:
显示与以下示例类似的摘要信息:ping -q bachPING 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)。 - 要通过特定接口发送或接收 ping 数据包,请输入以下命令:
将显示类似于以下示例的输出:ping -E en1 2020:1234:5678:9122:2c6f:57ff:fe6b:8b02Using 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 要检查主机 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要指定向主机
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 …在下面的示例中,没有收到来自
commodev6ping 服务器的响应。# 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