Linux基礎命令---ping

一生有你llx發表於2019-02-27

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  flow label

在回送請求資料包上分配和設定20位flow label。(只有平6)。如果值為零,核心將分配隨機flow label。

-f

極限檢測,不等收到回覆就傳送下一個請求,只有超級管理員才可以使用

-i  interval

指定傳送的時間間隔

-I interface address

將源地址設定為指定的介面地址。引數可以是數字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

記錄路由

-s packetsize

指定資料包的大小

-S   sndbuf

設定套接字傳送緩衝區sndbuf。如果沒有指定,則選擇它來緩衝不超過一個資料包

-t   ttl

指定資料包的生存期TTL

-T timestamp option

設定特殊的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延遲

-w deadline

在ping退出之前指定一個超時(以秒為單位),而不管傳送或接收了多少資料包。

-W timeout

等待響應的時間,以秒為單位。該選項隻影響任何響應的超時,否則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廣播地址

[root@localhost ~]#  ping  192.168.1.255

Do you want to ping broadcast? Then -b

[root@localhost ~]#  ping -b 192.168.1.255                  // 只有使用 -b 選項才能 ping 廣播地址

WARNING: pinging broadcast address

PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.

64 bytes from 192.168.1.8: icmp_seq=1 ttl=64 time=0.219 ms

64 bytes from 192.168.1.8: icmp_seq=2 ttl=64 time=0.282 ms

64 bytes from 192.168.1.8: icmp_seq=3 ttl=64 time=0.215 ms

64 bytes from 192.168.1.8: icmp_seq=4 ttl=64 time=0.268 ms

^C

--- 192.168.1.255 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3684ms

rtt min/avg/max/mdev = 0.215/0.246/0.282/0.029 ms 

2 )測試目標地址是否暢通

[root@localhost ~]#  ping -c 4 192.168.1.8                // 指定傳送資料包的次數

PING 192.168.1.8 (192.168.1.8) 56(84) bytes of data.

64 bytes from 192.168.1.8: icmp_seq=1 ttl=64 time=0.427 ms

64 bytes from 192.168.1.8: icmp_seq=2 ttl=64 time=0.196 ms

64 bytes from 192.168.1.8: icmp_seq=3 ttl=64 time=0.220 ms

64 bytes from 192.168.1.8: icmp_seq=4 ttl=64 time=0.329 ms

 

--- 192.168.1.8 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3002ms

rtt min/avg/max/mdev = 0.196/0.293/0.427/0.092 ms



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29270124/viewspace-2605748/,如需轉載,請註明出處,否則將追究法律責任。

相關文章