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