您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux基礎命令ping的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux基礎命令ping的用法”吧!
ping
ping指令可以發送ICMP請求到目標地址,如果網絡功能正常,目標主機會給出回應信息。ping使用ICMP協議強制發送ECHO_REQUEST報文到目標主機,從主機或網關獲取ICMP ECHO_RESPONSE。ECHO_REQUESTt數據報(‘pings’)有一個IP和ICMP報頭,后面跟著一個timeval結構體,然后是用于填充數據包的任意數量的“pad”字節。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
ping [選項] destination
2、選項列表
選項 | 說明 |
-a | 可聽的ping |
-A | 自適應平包間隔適應往返時間,因此有效地不超過一個(或多個,如果設置了預加載)未回答的探針在網絡中存在。對于非超級用戶,最小間隔為200毫秒。在RTT低的網絡上,這種模式實質上等同于flood模式。 |
-b | 允許ping廣播地址 |
-B | 不允許ping更改探針的源地址。當ping啟動時,該地址綁定到選定的地址。 |
-c count | 指定ping的次數 |
-d | 在所使用的套接字上設置SO_DEBUG選項。實際上,linux內核不使用這個套接字選項。 |
-F flowlabel | 在回送請求數據包上分配和設置20位flow label。(只有平6)。如果值為零,內核將分配隨機flow label。 |
-f | 極限檢測,不等收到回復就發送下一個請求,只有超級管理員才可以使用 |
-i interval | 指定發送的時間間隔 |
-Iinterfaceaddress | 將源地址設置為指定的接口地址。參數可以是數字IP地址或設備名稱。當選擇ipv 6鏈路本地地址時,此選項是必需的。 |
-l preload | 如果指定了預加載preload,ping將發送許多未等待回復的數據包。只有超級用戶才能選擇超過3的預加載 |
-L | 抑制組播數據包的回送。此標志僅適用于ping目標為多播地址的情況 |
-n | 用數字方式顯示 |
-p pattern | 您可以指定多達16個“PAD”字節來填充您發送的數據包。這對于診斷網絡中與數據相關的問題很有用 |
-Q tos | 在ICMP數據報中設置與服務相關的比特的質量。TOS可以是十進制數,也可以是十六進制數。傳統上(RFC 1349),它們被解釋為:0表示保留(當前被重新定義為擁塞控制),1-4表示服務類型,5-7表示優先級。服務類型的可能設置是:最低成本:0x02,可靠性:0x04,吞吐量:0x08,低延遲:0x10。不能同時設置多個TOS位。特殊優先級的可能設置范圍從優先級(0x20)到凈控制(0xe0)。 |
-q | 不顯示執行過程 |
-r | 忽略正常的路由表 |
-R | 記錄路由 |
-spacketsize | 指定數據包的大小 |
-S sndbuf | 設置套接字發送緩沖區sndbuf。如果沒有指定,則選擇它來緩沖不超過一個數據包 |
-t ttl | 指定數據包的生存期TTL |
-Ttimestampoption | 設置特殊的ip時間戳選項。可以是tsonly (only timestamps), tsandaddr (timestamps and addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp prespecified hops) |
-M hint | 選擇路徑MTU發現策略,可以是do(禁止碎片,即使是本地的)、want(當數據包大小較大時,在本地發現pmtu)、don’t(不設置DF標志) |
-U | 打印完整的user-to-user延遲 |
-wdeadline | 在ping退出之前指定一個超時(以秒為單位),而不管發送或接收了多少數據包。 |
-Wtimeout | 等待響應的時間,以秒為單位。該選項只影響任何響應的超時,否則ping將等待兩個RTT |
-v | 顯示詳細執行過程 |
-V | 顯示版本 |
3、ICMP報文
沒有選項的IP報頭是20個字節。ICMP echo_Request數據包包含另外8字節的ICMP報頭,后面跟著任意數量的數據。當給定一個數據包大小時,這表明了這個額外數據塊的大小(缺省值為56)。因此,在ICMP ECHO_REPLY類型的IP數據包中接收的數據量總是比請求的數據空間(ICMP報頭)多8個字節。
如果數據空間至少是結構體timeval的大小,Timeval ping使用這個空間的起始字節來包含它在計算往返時間時使用的時間戳。如果數據空間較短,則不提供往返時間。
4、 重復和損壞的數據包
ping將報告重復和損壞的數據包。重復的數據包不應該發生,似乎是由不適當的鏈路級重傳引起的.重復可能在許多情況下發生,很少(如果有的話)是一個好的跡象,盡管低水平的重復可能并不總是引起恐慌。損壞的數據包顯然是引起警報的嚴重原因,并且經常表示ping數據包路徑(網絡中或主機中)的某個硬件出現故障。
5、嘗試不同的數據模式
(內部)網絡層不應根據數據部分中包含的數據對分組進行不同的處理。不幸的是,依賴于數據的問題已經被人們知道潛入網絡,并且在很長一段時間內沒有被發現。在許多情況下,會出現問題的特定模式是沒有足夠的“轉換”的東西,例如所有的1或所有的零,或者在邊緣的一個模式,例如幾乎所有的零。僅僅指定命令行上所有零的數據模式(例如)并不一定足夠,因為感興趣的模式是在數據鏈接級別上,而且您鍵入的內容與控制器發送的內容之間的關系可能很復雜。
這意味著,如果您有一個數據依賴的問題,您可能需要做大量的測試才能找到它。如果幸運的話,您可能會設法找到一個文件,該文件要么無法通過您的網絡發送,要么需要比其他類似長度的文件更長的傳輸時間。然后,您可以檢查這個文件是否有重復的模式,可以使用ping的-p選項進行測試。
6、TTL
IP數據包的TTL值表示數據包在被丟棄之前可以通過的最大IP路由器數。在當前的實踐中,您可以期望Internet中的每個路由器將TTL字段減少一個。TCP/IP規范規定,TCP數據包的TTL字段應該設置為60,但許多系統使用較小的值(4.3BSD使用30,4.2使用15)。該字段的最大可能值為255,大多數Unix系統將ICMP ECHO_REQUEST數據包的TTL字段設置為255。這就是為什么您會發現您可以“ping”一些主機,但不能通過telnet(1)或ftp(1)到達它們。
在正常操作中,ping從它接收的數據包打印ttl值。當遠程系統收到ping數據包時,它可以在響應中使用ttl字段執行以下三項任務之一。
1)不改變它;這是Berkeley Unix系統在4.3BSDTahoe發布之前所做的事情。在這種情況下,接收到的數據包中的TTL值將為255減去往返路徑中的路由器數量。
2)將其設置為255;這是目前BerkeleyUnix系統所做的。在這種情況下,接收到的數據包中的TTL值將為255減去從遠程系統到ping主機的路徑中的路由器數量。
3)將其設置為其他值。有些機器對ICMP數據包使用的值與它們對TCP數據包使用的值相同,例如30或60。其他人可能會使用完全狂野的價值觀。
7、實例
1)ping廣播地址
|
2)測試目標地址是否暢通
|
感謝各位的閱讀,以上就是“Linux基礎命令ping的用法”的內容了,經過本文的學習后,相信大家對Linux基礎命令ping的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。