Linux ping 命令

17 Mar 2025 | 5 分钟阅读

Linux ping 命令的含义是 (Packet Internet Groper)。它用于检查两个节点之间的连通性,以查看服务器是否可用。它发送 ICMP ECHO_REQUEST 数据包到网络主机,并显示远程服务器响应的数据。它检查远程主机是否在线,或者网络接口是否可达。此外,它还用于检查两个设备之间是否存在网络连接。它也是一个检查您的网络连接和验证网络问题的有用工具。

Ping 命令会一直执行并发送数据包,直到您中断它。

要停止执行,请按“CTRL+C”键。

语法

ping 命令支持各种命令行选项。但是,ping 命令的基本语法如下

选项

ping 命令支持以下命令行选项

-4: 用于仅使用 IPv4。

-6: 用于仅使用 IPv6。

-a: 用于发出声音提示。

-A: 用于自适应 ping。

-b: 用于 ping 广播地址。

-B: 用于不更改探测使用的源地址。

-c count: 用于在发送 count 个 ECHO_REQUEST 数据包后停止。

-d: 用于设置所用套接字的 SO_DEBUG 选项。

-D: 用于在每行前面打印时间戳。

-f: 代表 flood ping。它会为每个发送的 ECHO_REQUEST 打印一个点,并为每个收到的 ECHO_REPLY 打印一个退格符。

-F flow label: 仅用于 IPv6。它在 echo 请求数据包上分配一个 20 位流标签(十六进制)。

-h: 用于显示帮助手册,其中包含用法和支持选项的简要说明。

-i interval: 用于指定每个数据包之间的时间间隔(以秒为单位)。默认情况下,设置为一秒。

-I interface: 用于指定源接口。

-l preload: 如果指定了 preload,它会发送数据包而不等待回复。只有超级用户(具有 sudo 权限的用户)才有权选择大于 1 的 preload。

-L: 用于抑制多播数据包的循环。对于多播目标地址很有用。

-m mark: 用于标记出站数据包。对于在出站处理中选择策略路由很有用。

-M pmtudisc_opt: 用于选择路径 MTU 发现策略。

-N nodeinfo_option: 仅用于 IPv6。

-n: 用于显示数字输出。

-O: 用于在发送下一个数据包之前报告未完成的 ICMP ECHO 回复。

-p pattern: 允许我们指定最多 16 个“填充”字节来填充发送的数据包。这对于确定“网络中的数据依赖性问题”很有用。

-q: 用于从终端静默输出。

-Q tos: 用于设置 ICMP 数据报中与服务质量相关的位。

-r: 用于绕过正常的路由表。此外,它会直接将其发送到连接接口上的主机。

-R: 用于记录路由。

-s packet size: 用于确定要发送的数据字节数。默认情况下,发送 56 字节。

-S sndbuf: 用于设置套接字 sndbuf。如果未指定,则缓冲区不会选择超过一个数据包。

-t ttl: 仅用于 ping,它设置 IP 生存时间。

-T timestamp option: 用于设置特殊的 IP 时间戳选项,例如 tsonly、tsandaddr 或 tsprespec host1 [host2 [host3 [host4]]]。

-U: 用于显示完整的用户到用户延迟。通常,ping 命令显示网络往返时间。

-v: 打印更详细的输出。

-V: 用于显示版本信息。

-w deadline: 用于指定 ping 命令退出之前的超时时间(以秒为单位)。

-W timeout: 用于指定等待响应的时间(以秒为单位)。

Ping 命令示例

让我们来看 ping 命令的以下示例

  • 使用 DNS 进行 Ping
  • 使用 IP 地址进行 Ping
  • 限制数据包数量
  • 检查远程主机是否在线
  • 检查 IPv4 连通性
  • 检查 IPv6 连通性
  • 在每行前面添加时间戳
  • 指定源接口
  • 更改 Ping 数据包之间的时间间隔

使用 DNS 进行 Ping

要使用 DNS 检查连通性,请按如下方式执行命令

考虑以下命令:

上面的命令将 ping 'javatpoint.com'。请参见下面的输出

Linux ping

使用 IP 地址进行 Ping

我们可以使用 IP 地址而不是 DNS 来使用 ping 命令。要使用 IP 地址 ping 目标,请按如下方式执行命令

考虑以下命令:

上面的命令将检查与给定 IP 地址的连通性。请参见下面的输出

Linux ping

限制数据包数量

我们可以使用 ping 命令限制发送的数据包数量。要限制数据包,请指定 'c' 选项,后跟要发送的数据包数量。它将按如下方式执行

考虑以下命令:

上面的命令将数据包限制为最多 5 个。请参见下面的输出

Linux ping

检查远程主机是否在线。

要检查远程主机是否在线,请执行 ping 命令,后跟远程服务器的主机名或 IP 地址。请参见下面的命令

上面的命令将检查与 'javatpoint.com' 的连通性。请参见下面的输出

Linux ping

从上面的输出中,命令将继续运行;我们可以按 CTRL+C 键手动中断它。

检查 IPv4 连通性

'-4' 选项用于 IPv4 接口。要检查 IPv4 接口是否在线,请按如下方式执行命令

上面的命令将使用 IPv4 地址显示与 'javatpoint.com' 的连通性。请参见下面的输出

Linux ping

检查 IPv6 连通性

'-6' 选项用于 IPv6 接口。要检查 IPv6 接口是否在线,请按如下方式执行命令

上面的命令将使用 IPv6 地址显示与 'javatpoint.com' 的连通性。请参见下面的输出

Linux ping

在每行前面添加时间戳。

'-D' 选项用于在每行前面添加时间戳。要添加时间戳,请按如下方式执行命令

上面的命令将在每行开头添加一个 UNIX 时间戳。请参见下面的输出

Linux ping

指定源接口

默认情况下,ping 命令使用默认路由发送 ICMP 数据包。要指定特定的源接口,请按如下方式使用 '-I' 选项

考虑以下命令:

上面的命令将使用 'enp7s0' 作为源接口 ping javatpoint.com。请参见下面的输出

Linux ping

更改 Ping 数据包之间的时间间隔

默认情况下,ping 数据包之间的时间间隔为一秒。我们可以根据需要进行设置。'-i' 选项用于设置每个 ping 请求之间的时间间隔。要设置 ping 间隔,请按如下方式执行命令

考虑以下命令:

上面的命令将每 '1.5' 秒请求一次 ping 数据包。请参见下面的输出

Linux ping

从上面的输出中,我们可以看到 8 个数据包的传输时间为 1050 秒。


下一个主题Linux netstat