Manpages

名 称

ping - 向 网 络 主 机 发 送 ICMP 回 显 请 求 ( ECHO_REQUEST) 分 组

概 要

ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval] [-I interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop ...] destination

描 述

ping 使 用 ICMP 协 议 规 定 的 ECHO_REQUEST 数 据 报 引 发 一 个 来 自 主 机 或 网 管 的 ICMP ECHO_RESPONSE 回 应 。 ECHO_REQUEST 数 据 报 ( “ping”信 息 ) 有 一 个 IP 和 ICMP 头 部 , 其 后 跟 随 了 一 个 结 构 , 包 含 一 个 时 间 相 关 的 值 以 及 一 个 任 意 的 “pad” 字 节 的 随 机 数 用 以 填 充 数 据 包 。

ping可 以 同 时 在 IPv4 和 IPv6 下 工 作 。 如 需 明 确 强 制 指 定 使 用 其 中 某 个 , 可 以 使 用 -4 或 者 -6

ping 还 可 以 发 送 IPv6 节 点 信 息 查 询 ( Node Information Quries, RFC4620) 。 中 间 节 点 ( hop) 可 能 不 被 允 许 , 因 为 IPv6 源 路 由 已 不 赞 成 使 用 ( RFC5095) 。

选 项

-4 仅 使 用

IPv4。

-6 仅 使 用

IPv6。

-a

Audible ping.

-A 自 适 应

ping。

-b 允 许 对 一

个 广 播 地 址 进 行 ping。
-t
ttl 仅 进 行 ping。 设 置 IP 的 TTL( Time to Live) 。

-T timestamp option 设 置 特 殊 的 IP 时 间 戳 选 项 。 timestamp option 可 以 是 tsonly( 仅 时 间 戳 ) 、 tsandaddr( 时 间 戳 和 地 址 ) 或 者 tsprespec host1 [host2 [host3 [host4]]]( 预 先 指 定 跳 数 的 时 间 戳 ) 。

-U 打 印 完 整 的 用 户 到 用 户 的 延 迟 ( 旧 行 为 ) 。 通 常 情 况 下

ping 打 印 网 络 往

返 延 时 , 它 们 可 能 不 同 , 例 如 在 DNS 解 析 出 现 失 败 时 。

-v 输 出 详 细 信 息 。

-V 显 示 版 本 并 退 出 。

-c

count 在 发 送 (和 接 收 )了 正 好 数 量 为 count 的 回 显 应 答 分 组 后 停 止 操 作 。 在 发 送 了 count 个 分 组 后 没 有 收 到 任 何 分 组 的 特 别 情 况 是 发 送 导 致 了 终 止 (选 程 主 机 或 网 关 不 可 达 )。

-d 在 所 用 的 套 接 字 上 使 用

SO_DEBUG 选 项 。 实 际 上 , 这 个 套 接 字 选 项 没 有

被 Linux 内 核 所 使 用 。

-D 在 每 行 之 前 打 印 时 间 戳 (

UNIX 时 间 + gettimeofday 中 的 毫 秒 ) 。

-f 以 高 速 ( 洪 水 ) 方 式 进 行

ping。 以 分 组 返 回 的 速 度 来 输 出 其 它 分 组 或 每

秒 输 出 百 次 。 当 收 到 每 个 回 显 应 答 并 打 印 一 个 退 格 符 时 , 对 每 个 回 显 请 求 都 打 印 一 个 句 点 ’’.’’。 这 可 以 快 速 显 示 出 丢 弃 了 多 少 个 分 组 , 只 有 超 级 用 户 可 以 用 这 个 选 项 。 这 ( 操 作 ) 对 网 络 要 求 非 常 苛 刻 , 应 该 慎 重 使 用 。

-i

wait 在 发 送 每 个 分 组 时 等 待 wait 个 秒 数 。 缺 省 值 为 每 个 分 组 等 待 一 秒 。 此 选 项 与 -f选 项 不 能 同 时 使 用 。

-l

preload 如 果 指 定 preload , 那 么 ping 程 序 在 开 始 正 常 运 行 模 式 前 尽 可 能 快 地 发 送 分 组 。 同 样 只 有 超 级 用 户 可 以 用 这 个 选 项 。

-n

只 以 数 字 形 式 输 出 信 息 。 这 样 就 不 尝 试 去 查 找 主 机 名 了 。

-p

pattern 可 以 指 定 最 多 16个 填 充 字 节 用 于 保 持 分 组 长 度 为 16的 整 数 倍 。 在 网 络 上 诊 断 与 数 据 相 关 问 题 时 此 选 项 很 有 用 。 例 如 ’’-p ff’’将 使 发 出 的 分 组 都 用 全 1填 充 数 据 区 。

-q

静 态 输 出 。 在 程 序 启 动 和 结 束 时 只 显 示 摘 要 行 。

-R 记 录 路 由 。 在 回 显 请 求 分 组 中 包 含 记 录 路 由 选 项 并 在 相 应 的 分 组 返 回 时 显 示 路 由 缓 冲 区 。 注 意

IP首 部 的 容 量 只 能 存 放 9条 这 样 的 路 由 。 很 多 主 机 忽 略 或 禁 用 此 选 项 。

-r 在 所 连 接 的 网 络 上 旁 路 正 常 的 选 路 表 , 直 接 向 主 机 发 送 分 组 。 如 果 主 机 未 处 于 直 接 相 连 的 网 络 上 , 那 么 返 回 一 个 错 误 。 此 选 项 可 用 来 通 过 无 路 由 接 口 对 一 台 主 机 进 行 检 测

(例 如 当 接 口 已 被 routed 程 序 丢 弃 后 )。

-s

packetsize 指 定 要 发 送 数 据 的 字 节 量 。 缺 省 值 为 56 , 这 正 好 在 添 加 了 8 字 节 的 ICMP 首 部 后 组 装 成 64 字 节 的 ICMP 数 据 报 。

-w

waitsecswaitsecs 秒 后 停 止 ping 程 序 的 执 行 。 当 试 图 检 测 不 可 达 主 机 时 此 选 项 很 有 用 。

当 用 ping来 隔 离 故 障 时 , 应 首 先 在 本 地 主 机 上 运 行 , 以 检 查 本 地 网 络 接 口 有 效 运 行 。 然 后 , 应 该 进 一 步 检 查 主 机 和 网 关 。 计 算 出 往 返 时 间 和 分 组 丢 失 率 。 如 果 收 到 重 复 的 分 组 , 虽 然 这 些 分 组 的 往 返 时 间 要 用 于 计 算 往 返 时 间 的 最 小 /平 均 /最 大 值 , 但 是 它 们 不 应 该 算 在 刚 才 计 算 的 丢 失 的 分 组 中 。 当 指 定 数 量 的 分 组 已 经 发 送 (和 接 收 )时 或 如 果 程 序 被 SIGINT信 号 终 止 , 会 显 示 一 份 简 短 的 摘 要 。 如 果 ping程 序 根 本 没 有 收 到 任 何 返 回 分 组 , 那 它 将 以 返 回 码 1退 出 。 出 错 时 返 回 2。 否 则 返 回 0。 这 些 值 可 能 用 于 查 看 主 机 存 在 与 否 。 此 程 序 专 用 于 网 络 测 试 , 度 量 和 管 理 。 因 为 它 会 使 用 网 络 的 流 量 , 在 正 常 操 作 或 自 动 的 脚 本 中 使 用 它 并 不 明 智 。

ICMP分 组 细 节 一 个 无 选 项 的 IP首 部 长 为 20字 节 。 一 个 ICMP回 显 请 求 分 组 包 含 了 额 外 的 8个 字 节 用 于 任 意 数 量 的 数 据 。 当 给 出 分 组 长 度 时 , 就 同 时 指 出 了 额 外 数 据 的 长 度 (缺 省 为 56)。 因 此 接 收 到 的 ICMP回 显 应 答 这 样 的 一 个 IP分 组 内 部 所 含 的 数 据 量 总 是 8个 字 节 从 而 超 过 了 请 求 数 据 空 间 (ICMP首 部 )。 如 果 数 据 空 间 至 少 有 8个 字 节 大 小 , ping程 序 使 用 此 空 间 的 头 8个 字 节 来 包 含 一 个 用 于 计 算 往 返 时 间 的 时 间 戳 。 如 果 指 定 了 填 充 字 节 小 于 8个 字 节 , 就 不 给 定 往 返 时 间 了 。 重 复 和 受 损 的 分 组
ping程 序 会 报 告 重 复 和 受 损 的 分 组 。 分 组 重 复 不 应 该 发 生 , 不 适 当 的 链 路 层 传 输 可 能 会 导 致 这 样 问 题 。 分 组 重 复 在 很 多 情 况 下 可 能 会 发 生 , 虽 然 存 在 少 量 重 复 并 不 总 会 导 致 警 告 , 但 并 不 是 个 好 信 号 。 分 组 受 损 很 显 然 会 引 起 严 重 警 告 , 并 通 常 会 在 检 测 分 组 的 路 径 上 某 处 指 出 受 损 的 硬 件 (在 网 络 中 或 主 机 中 )。 尝 试 不 同 的 数 据 结 构 互 联 网 络 并 不 会 因 为 分 组 数 据 部 分 的 内 容 不 同 而 区 别 看 待 分 组 。 不 幸 的 是 , 与 数 据 相 关 的 问 题 都 已 知 潜 存 于 网 络 中 , 并 在 一 个 较 长 时 期 内 无 法 检 测 到 。 在 很 多 情 况 下 , 引 起 问 题 的 特 殊 结 构 是 些 未 完 全 转 换 的 内 容 如 全 1或 全 0, 接 近 临 界 的 结 构 如 几 乎 全 0。 在 命 令 行 上 没 有 足 够 的 必 要 去 指 定 如 全 0这 样 的 一 个 数 据 结 构 , 因 为 有 影 响 的 结 构 位 于 数 据 链 路 层 , 并 且 与 指 定 的 和 控 制 器 传 输 的 复 杂 程 度 有 关 。 这 说 明 如 果 你 有 一 个 与 数 据 相 关 的 问 题 , 可 能 必 须 用 很 多 测 试 来 找 出 它 。 如 果 幸 运 的 话 , 可 以 设 法 查 找 一 个 不 能 在 网 上 发 送 或 发 送 时 要 花 比 同 长 度 的 文 件 更 多 时 间 的 文 件 。 然 后 检 查 此 文 件 中 用 ping程 序 的 -p选 项 来 指 定 的 重 复 结 构 。 有 效 时 间 细 节 一 个 IP分 组 的 TTL值 表 示 分 组 在 被 丢 弃 前 穿 越 IP路 由 器 的 最 大 数 据 。 在 现 有 的 实 际 中 , 你 可 以 认 为 互 联 网 上 每 个 路 由 器 都 对 TTL字 段 减 1。

TCP/IP规 定 TCP分 组 的 TTL字 段 应 该 设 为 60, 但 很 多 系 统 用 较 小 的 值 (4.3 BSD 用 30, 4.2用 15)。 此 字 段 可 能 的 最 大 值 为 255, 多 数 UNIX系 统 把 ICMP回 显 请 求 分 组 的 TTL字 段 设 为 255。 这 就 是 为 什 么 你 可 以 ’’ping’’一 些 主 机 而 不 能 用 telnet(1)ftp(1)到 达 。 在 正 常 操 作 时 ping打 印 它 收 到 分 组 的 TTL值 。 当 选 程 系 统 收 到 一 份 ping的 分 组 时 , 在 作 出 响 应 时 可 以 用 TTL字 段 完 成 三 件 事 :

不 变 ;

4.3BSD-Tahoe release之 前 的 Berkeley Unix系 统 是 这 样 做 的 。 在 此 情 况 下 , 收 到 的 分 组 的 TTL值 为 255减 往 返 路 径 中 的 路 由 器 数 。

把 它 设 为 255;

当 前 的 Berkeley Unix系 统 是 这 样 做 的 。 在 此 情 况 下 , 收 到 的 分 组 的 TTL值 为 为 255减 选 程 系 统 与 执 行 ping主 机 之 间 的 路 由 器 数 。

把 它 设 为 其 它 值 。

有 些 主 机 对 ICMP分 组 使 用 与 TCP分 组 相 同 的 值 , 例 如 30或 60。 其 它 系 统 使 用 原 始 值 。 (校 对 者 请 指 教 此 句 之 确 切 含 义 : meaculpa [AT] 21cn.com)

缺 陷

• 很 多 主 机 和 网 关 忽 略 记 录 路 由 (

RECORD_ROUTE) 选 项 。

• 最 大

IP 头 部 长 度 对 如 记 录 路 由 ( RECORD_ROUTE)这 样 非 常 有 用 的 选 项 来 说 长 度 太 小 。 但 对 这 个 问 题 也 没 什 么 可 做 的 了 。

• 通 常 情 况 并 不 推 荐 以 高 速 方 式 作

ping, 而 且 只 应 当 在 非 常 受 限 的 条 件 下 才 可

对 广 播 地 址 这 样 做 。

另 见

netstat(1), ifconfig(8).

历 史

ping 命 令 出 现 于 4.3BSD。 当 前 文 档 描 述 的 版 本 是 它 在 Linux 平 台 上 的 后 续 版 本 。 从 版 本 s20160815 开 始 , ping6 二 进 制 程 序 不 再 存 在 。 它 已 经 被 合 并 进 了 ping 程 序 中 。 创 建 一 个 名 为 ping6 指 向 ping 的 符 号 链 接 可 以 提 供 原 有 的 功 能 。

安 全 性

ping 在 下 述 条 件 下 运 行 时 需 要 CAP_NET_RAW 能 力 : 1) 如 果 程 序 被 用 于 进 行 non-echo 查 询 ( 请 见 -N 选 项 ) , 或 2) 如 果 内 核 不 支 持 non-raw ICMP 套 接 字 , 或 3) 如 果 用 户 不 被 允 许 创 建 ICMP echo 套 接 字 。 本 程 序 设 计 可 以 用 于 在 设 置 用 户 ID为 root 的 情 况 下 运 行 。

获 取

pingiputils 软 件 包 的 一 部 分 。 其 最 新 版 本 源 代 码 可 以 从 下 述 地 址 获 取 到 : http://www.skbuff.net/iputils/iputils-current.tar.bz2.

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh

COMMENTS