ping命令用來測試主機之間網絡的連通性。
前端
(1)用法:linux
用法: ping [參數] [主機名或IP地址]windows
(2)功能:後端
功能: 肯定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。 服務器
細節: 執行ping指令會使用ICMP傳輸協議,發出要求迴應的信息,若遠端主機的網絡功能沒有問題,就會迴應該信息,於是得知該主機運做正常。例如: 「ping一下某機器,看是否是開着」、不能打開網頁時「先ping網關地址192.168.1.1試試」。ping 命令每秒發送一個數據報而且爲每一個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失狀況的統計信息,而且在完成以後顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。網絡
注意: 有些服務器爲了防止經過ping探測到,經過防火牆設置了禁止ping或者在內核參數中禁止ping,這樣就不能經過ping肯定該主機是否還處於開啓狀態。測試
(3)選項參數:spa
1) -b n: 測試與網關IP的連通性操作系統
2) -c n: 執行指定次數 n的ping命令3d
3) -i n: 設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。
4) -s 字節數: 指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。
5) -t 存活數值: 設置存活數值TTL的大小。
(4)實例:
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。
(5)其餘:
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網絡模式介紹及配置:
4.1VMWare的網絡模式:
VMWare提供了三種工做模式,它們是bridged(橋接模式)、NAT(網絡地址轉換模式)和host-only(主機模式)。
橋接模式:在橋接模式下,VMware虛擬機裏的系統就像是局域網中的一臺獨立的主機,它能夠訪問同一個網段內任何一臺機器,便可以相互ping通。在橋接模式下,你須要手工爲虛擬系統配置IP地址、子網掩碼,並且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通訊。同時,因爲這個虛擬系統是局域網中的一個獨立的主機系統,就能夠手工配置它的IP,DNS服務器,網關等信息,以實現經過局域網的網關或經過交換機訪問外網。
讓虛擬機具備與宿主機不一樣的各自獨立IP地址,但與宿主機保持在同一網段,最終結果是全部虛擬機都加入宿主主機所在的局域網,這與在該局域網中添加入其餘宿主主機在效果上沒什麼區別。從網絡技術上至關於在宿主主機前端加設了一個虛擬交換機,而後宿主主機和全部虛機共享這個交換機;或者乾脆理解成在宿主主機上做點加強,使其兼具一個交換機(固然是虛擬的)功能,供該宿主主機和網段內其餘虛機使用。
鏈接拓撲圖:
圖中的局域網,可能由路由器或者交換機創建。本地物理網卡和虛擬網卡經過虛擬交換機進行橋接,物理網卡和虛擬網卡在拓撲圖上處於同等地位。Vmware默認給虛擬系統提供了一個虛擬網卡(linux下默認爲eth0設備),虛擬系統經過該網卡與外部通訊。圖中虛擬交換機由vmware提供,其默認設備名爲 VMnet0。
NAT模式:NAT 即 Network Address Translation 縮寫,即網絡地址轉換,由 NAT服務完成。在vmware裏默認爲VMnet8虛擬交換機,它將虛擬系統的IP地址轉換成宿主機的IP地址,從而借用宿主機訪問其餘主機。使用NAT模式,也可讓虛擬系統經過宿主機器所在的網絡來訪問公網。
在這種模式下,虛擬系統是不能被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地址,這樣從外部網絡來看,只能看到宿主主機,徹底看不到新建的虛擬局域網。
鏈接拓撲圖:
Host-only(主機模式):讓虛機具備與宿主機不一樣的各自獨立IP地址,但與宿主機位於不一樣網段,同時爲宿主主機新增一個IP地址,且保證該IP地址與各虛機IP地址位於同一網段。最終結果是新建了一個由全部虛機與宿主主機所構成的局域網,但該局域網與宿主主機自己所處的現有局域網是相互獨立的,若是不作額外路由設置,這兩個局域網之間不會連通,所以新建的局域網能夠認爲是一個單獨從屬於當前宿主主機的私有網絡,其成員爲當前宿主主機和相關的全部虛機,這也是Host-only命名的由來。
從網絡技術上至關於爲宿主主機增添了一個虛擬網卡,讓宿主主機變成一臺雙網卡主機(宿主網卡+虛擬網卡)。同時在宿主主機後端加設一個虛擬交換機,讓宿主主機和全部虛機構成另外一個虛擬的局域網。因爲具有雙網卡,宿主主機可同時參與兩個局域網(現有的宿主局域網+新建的虛擬局域網),只不過缺省狀況下兩個局域網不連通。
鏈接拓撲圖:
4.2VMware網絡配置: