歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 每天一個Linux命令(48)ping命令

每天一個Linux命令(48)ping命令

日期:2017/3/3 11:55:21   编辑:Linux技術

[b] ping命令用來測試主機之間網絡的連通性。[/b][b] (1)用法:[/b]

[b] 用法: ping [參數] [主機名或IP地址][/b][b] (2)功能:[/b]

[b] 功能: 確定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。 [/b][b]  細節: 執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。[/b]例如: “ping一下某機器,看是不是開著”、不能打開網頁時“先ping網關地址192.168.1.1試試”。ping 命令每秒發送一個數據報並且為每個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統計信息,並且在完成之後顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。

[b] 注意: 有些服務器為了防止通過ping探測到,通過防火牆設置了禁止ping或者在內核參數中禁止ping,這樣就不能通過ping確定該主機是否還處於開啟狀態。[/b][b] (3)選項參數:[/b]

1) -b n:        測試與網關IP的連通性 2) -c n:       執行指定次數 n的ping命令

3) -i n:       設定間隔幾秒送一個網絡封包給一台機器,預設值是一秒送一次。 4) -s 字節數:     指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。

5) -t 存活數值:    設置存活數值TTL的大小。[b] (4)實例:[/b]

1)[root@localhost ~]# ping 192.168.120.205          用ping命令測試與目標站點IP的連通情況

[root@localhost ~]# ping 192.168.120.205
PING 192.168.120.205 (192.168.120.205) 56(84) bytes of data.
64 bytes from 192.168.120.205: icmp_seq=1 ttl=64 time=0.720 ms
64 bytes from 192.168.120.205: icmp_seq=2 ttl=64 time=0.181 ms
64 bytes from 192.168.120.205: icmp_seq=3 ttl=64 time=0.191 ms
64 bytes from 192.168.120.205: icmp_seq=4 ttl=64 time=0.188 ms
64 bytes from 192.168.120.205: icmp_seq=5 ttl=64 time=0.189 ms

--- 192.168.120.205 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.181/0.293/0.720/0.214 ms
[root@localhost ~]#

2)[root@localhost ~]# ping 192.168.120.202          ping命令不連通時

[root@localhost ~]# ping 192.168.120.202
PING 192.168.120.202 (192.168.120.202) 56(84) bytes of data.
From 192.168.120.204 icmp_seq=1 Destination Host Unreachable
From 192.168.120.204 icmp_seq=2 Destination Host Unreachable
From 192.168.120.204 icmp_seq=3 Destination Host Unreachable
From 192.168.120.204 icmp_seq=4 Destination Host Unreachable
From 192.168.120.204 icmp_seq=5 Destination Host Unreachable
From 192.168.120.204 icmp_seq=6 Destination Host Unreachable

--- 192.168.120.202 ping statistics ---
packets transmitted, 0 received, +6 errors, 100% packet loss, time 7005ms
, pipe 4
[root@localhost ~]#

3)[root@localhost ~]# ping -b 192.168.120.1          ping命令測試與網關IP的連通性

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# ping -b 192.168.120.1
PING 192.168.120.1 (192.168.120.1) 56(84) bytes of data.
bytes from 192.168.120.1: icmp_seq=1 ttl=255 time=2.02 ms
bytes from 192.168.120.1: icmp_seq=2 ttl=255 time=1.83 ms
bytes from 192.168.120.1: icmp_seq=3 ttl=255 time=1.68 ms
bytes from 192.168.120.1: icmp_seq=4 ttl=255 time=1.98 ms
bytes from 192.168.120.1: icmp_seq=5 ttl=255 time=1.88 ms

--- 192.168.120.1 ping statistics ---
packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 1.682/1.880/2.020/0.129 ms

4)[root@localhost ~]# ping -c 10 192.168.120.206       ping指定的次數

[root@localhost ~]# ping -c 10 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.25 ms
bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.260 ms
bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.242 ms
bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.271 ms
bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.274 ms
bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.295 ms
bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.269 ms
bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.270 ms
bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.253 ms
bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.289 ms

--- 192.168.120.206 ping statistics ---
packets transmitted, 10 received, 0% packet loss, time 9000ms
rtt min/avg/max/mdev = 0.242/0.367/1.251/0.295 ms
[root@localhost ~]#

5)[root@localhost ~]# ping -c 10 -i 0.5 192.168.120.206    指定時間間隔和參數限制

[root@localhost ~]# ping -c 10 -i 0.5 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.24 ms
bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.235 ms
bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.244 ms
bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.300 ms
bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.255 ms
bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.264 ms
bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.263 ms
bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.331 ms
bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.247 ms
bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.244 ms

--- 192.168.120.206 ping statistics ---
packets transmitted, 10 received, 0% packet loss, time 4499ms
rtt min/avg/max/mdev = 0.235/0.362/1.241/0.294 ms
[root@localhost ~]# ping -c 10 -i 0.01 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=0.244 ms
bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.195 ms
bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.219 ms
bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.204 ms
bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=3.56 ms
bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=1.93 ms
bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.193 ms
bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.193 ms
bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.202 ms
bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.211 ms

--- 192.168.120.206 ping statistics ---
packets transmitted, 10 received, 0% packet loss, time 90ms
rtt min/avg/max/mdev = 0.193/0.716/3.564/1.080 ms
[root@localhost ~]#

6)[root@localhost ~]# ping -i 3 -s 1024 -t 255 192.168.120.206      使用多參數

[root@localhost ~]# ping -i 3 -s 1024 -t 255 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 1024(1052) bytes of data.
bytes from 192.168.120.206: icmp_seq=1 ttl=64 time=1.99 ms
bytes from 192.168.120.206: icmp_seq=2 ttl=64 time=0.694 ms
bytes from 192.168.120.206: icmp_seq=3 ttl=64 time=0.300 ms
bytes from 192.168.120.206: icmp_seq=4 ttl=64 time=0.481 ms
bytes from 192.168.120.206: icmp_seq=5 ttl=64 time=0.415 ms
bytes from 192.168.120.206: icmp_seq=6 ttl=64 time=0.600 ms
bytes from 192.168.120.206: icmp_seq=7 ttl=64 time=0.411 ms
bytes from 192.168.120.206: icmp_seq=8 ttl=64 time=0.281 ms
bytes from 192.168.120.206: icmp_seq=9 ttl=64 time=0.318 ms
bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.362 ms
bytes from 192.168.120.206: icmp_seq=11 ttl=64 time=0.408 ms
bytes from 192.168.120.206: icmp_seq=12 ttl=64 time=0.445 ms
bytes from 192.168.120.206: icmp_seq=13 ttl=64 time=0.397 ms
bytes from 192.168.120.206: icmp_seq=14 ttl=64 time=0.406 ms
bytes from 192.168.120.206: icmp_seq=15 ttl=64 time=0.458 ms

--- 192.168.120.206 ping statistics ---
packets transmitted, 15 received, 0% packet loss, time 41999ms
rtt min/avg/max/mdev = 0.281/0.531/1.993/0.404 ms
[root@localhost ~]#

參數說明:什麼是TTL?

TTL 指定數據報被路由器丟棄之前允許通過的網段數量。它是為了防止數據包在網絡中無限制的循環,而設定的網絡數據包在網絡傳輸中最大的轉發次數。因為每轉發一次在路由器,就會轉向下一跳,所以,又通常稱為最大跳數。  具體的含義是這樣的。我們本地機器會發出一個數據包,數據包經過一定數量的路由器傳送到目的主機,但是由於很多的原因,一些數據包不能正常傳送到目的主機,那如果不給這些數據包一個生存時間的話,這些數據包會一直在網絡上傳送,導致網絡開銷的增大。當數據包傳送到一個路由器之後,TTL就自動減1,如果減到0了還是沒有傳送到目的主機,那麼就自動丟失。

  例如:你定義了數據包的TTL為64.那麼在你的數據包被轉發了64次,也就是經過了63個中間路由器後,還沒有到達目的網絡,那麼,你的電腦就會顯示Requet time out (請求超時)了。例如:你定義了數據包的TTL為64.那麼在你的數據包被轉發了64次,也就是經過了63個中間路由器後,還沒有到達目的網絡,那麼,你的電腦就會顯示Requet time out (請求超時)了。這就是TTL的意思了。  在此補充一點,由於不同的操作系統所定義的TTL是不同的,一般有如下規則:默認情況下,Linux系統的TTL值為64或255,Windows NT/2000/XP系統的TTL值為128,Windows 98系統的TTL值為32,UNIX主機的TTL值為255。

[b] (5)其他:[/b] 1)ICMP協議:

ping 程序使用 ICMP 協議的強制回顯請求數據報以使主機或網關發送一份 ICMP 的回顯應答。 ICMP是“Internet Control Message Protocol”(Internet控制消息協議)的縮寫。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。

2)回顯請求數據報: 回顯請求數據報(" pings ")含有一個 IP 及 ICMP 的報頭,後跟一個時間值關鍵字,然後是一段任意長度的填充字節用於把保持分組長度為16的整數倍。

3)Linux下的ping和windows下的ping的區別: linux下的ping和windows下的ping稍有區別,linux下ping不會自動終止,需要按ctrl+c終止或者用參數-c指定要求完成的回應次數。

4)VMWare網絡模式介紹及配置: [b]4.1VMWare的網絡模式:[/b]

   VMWare提供了三種工作模式,它們是bridged(橋接模式)、NAT(網絡地址轉換模式)和host-only(主機模式)。 [b] 橋接模式:在橋接模式下,VMware虛擬機裡的系統就像是局域網中的一台獨立的主機,它可以訪問同一個網段內任何一台機器,即可以相互ping通。在橋接模式下,你需要手工為虛擬系統配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通信。同時,由於這個虛擬系統是局域網中的一個獨立的主機系統,就可以手工配置它的IP,DNS服務器,網關等信息,以實現通過局域網的網關或通過交換機訪問外網。[/b]

   讓虛擬機具有與宿主機不同的各自獨立IP地址,但與宿主機保持在同一網段,最終結果是所有虛擬機都加入宿主主機所在的局域網,這與在該局域網中添加入其他宿主主機在效果上沒什麼區別。從網絡技術上相當於在宿主主機前端加設了一個虛擬交換機,然後宿主主機和所有虛機共享這個交換機;或者干脆理解成在宿主主機上作點增強,使其兼具一個交換機(當然是虛擬的)功能,供該宿主主機和網段內其他虛機使用。連接拓撲圖:

  圖中的局域網,可能由路由器或者交換機建立。本地物理網卡和虛擬網卡通過虛擬交換機進行橋接,物理網卡和虛擬網卡在拓撲圖上處於同等地位。Vmware默認給虛擬系統提供了一個虛擬網卡(linux下默認為eth0設備),虛擬系統通過該網卡與外部通信。圖中虛擬交換機由vmware提供,其默認設備名為 VMnet0。  [b]NAT模式:NAT 即 Network Address Translation 縮寫,即網絡地址轉換,由 NAT服務完成。在vmware裡默認為VMnet8虛擬交換機,它將虛擬系統的IP地址轉換成宿主機的IP地址,從而借用宿主機訪問其他主機。使用NAT模式,也可以讓虛擬系統通過宿主機器所在的網絡來訪問公網。[/b]

  在這種模式下,虛擬系統是不能被LAN內其他PC訪問的,只能虛擬機以宿主機的名義訪問LAN內的計算機。默認情況下NAT模式的虛擬系統的TCP/IP配置信息由VMnet8(NAT)虛擬網絡的DHCP服務器提供,因此采用NAT模式最大的優勢是虛擬系統接入互聯網非常簡單,你不需要進行任何其他的配置,只需要宿主機器能訪問互聯網即可。  使用NAT方式時,宿主機(Windows)網絡管理裡會多出一塊虛擬網卡, 名為VMware Network Adepter VMnet8 如下圖:

   雖然從表面現象看,虛機無自己的IP地址,而是共享宿主主機的IP地址,但技術本質上卻是基於Host-only方式的(即,虛機還是有自己獨立IP地址的,只不過實際中不投入使用),與Host-only方式一樣,宿主主機成為雙網卡主機,同時參與現有的宿主局域網和新建的虛擬局域網,但由於加設了一個虛擬的NAT服務器,使得虛擬局域網內的虛機在對外訪問時,完全“冒用”宿主主機的IP地址,這樣從外部網絡來看,只能看到宿主主機,完全看不到新建的虛擬局域網。  連接拓撲圖:

 [b] Host-only(主機模式):讓虛機具有與宿主機不同的各自獨立IP地址,但與宿主機位於不同網段,同時為宿主主機新增一個IP地址,且保證該IP地址與各虛機IP地址位於同一網段。最終結果是新建了一個由所有虛機與宿主主機所構成的局域網,但該局域網與宿主主機本身所處的現有局域網是相互獨立的,如果不做額外路由設置,這兩個局域網之間不會連通,因此新建的局域網可以認為是一個單獨從屬於當前宿主主機的私有網絡,其成員為當前宿主主機和相關的所有虛機,這也是Host-only命名的由來。從網絡技術上相當於為宿主主機增添了一個虛擬網卡,讓宿主主機變成一台雙網卡主機(宿主網卡+虛擬網卡)。同時在宿主主機後端加設一個虛擬交換機,讓宿主主機和所有虛機構成另一個虛擬的局域網。由於具備雙網卡,宿主主機可同時參與兩個局域網(現有的宿主局域網+新建的虛擬局域網),只不過缺省情況下兩個局域網不連通。[/b]

  連接拓撲圖:

[b] 4.2VMware網絡配置:[/b]

Copyright © Linux教程網 All Rights Reserved