ping(8) | 系統管理員手冊:iptuils | ping(8) |
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)。
當用ping來隔離故障時,應首先在本地主機上執行,以檢查本地網路介面有效 執行。然後,應該進一步檢查主機和閘道器。計算出往返時間和分組丟失率。如 果收到重複的分組,雖然這些分組的往返時間要用於計算往返時間的最小/平均 /最大值,但是它們不應該算在剛才計算的丟失的分組中。當指定數量的分組已 經發送(和接收)時或如果程式被SIGINT訊號終止,會顯示一份簡短的摘要。
如果ping程式根本沒有收到任何返回分組,那它將以返回碼1退出。出錯時返回 2。否則返回0。這些值可能用於檢視主機存在與否。
此程式專用於網路測試,度量和管理。因為它會使用網路的流量,在正常操作或 自動的指令碼中使用它並不明智。
一個無選項的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欄位完成三件事:
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 的情況下執行。
ping 是 iputils 軟體包的一部分。 其最新版本原始碼可以從下述地址獲取到: http://www.skbuff.net/iputils/iputils-current.tar.bz2.
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
2016年11月10日 | iputils-161105 |