vmware虛擬機器三種網路模式詳解
寫這篇的原因是這個問題出現了好幾次,每次都要耽誤很久去重新查資料解決,所以決定記下來。
問題描述:
由於公司伺服器重啟導致出現過以下幾種情況:
1.在Xshell裡連線虛擬機器對映時連線失敗
2.能夠連線上虛擬機器的對映地址,但git pull時報錯無法解析hostname
因為之前出現過1、2這兩種情況,在找了一天方法未果之後諮詢了大神朋友才解決,也因為不是自己解決的,所以對這個過程包括虛擬機器的使用都並不清楚,這次重新出現問題2,又重新查了一遍資料,才算是對虛擬機器有了一點點了解。因為有之前的問題,所以這次問題出現就想到是虛擬機器IP問題。
問題1第一次出現時是因為當時虛擬機器IP沒有固定,換了一個IP所以連線失敗,把本地對映地址改成新IP就好了。
問題2雖然也是IP問題,但是感覺跟問題1不太一樣,主要還是虛擬機器網路配置問題。
首先去虛擬機器查看了IP,然後發現虛擬機器沒有IP,原來配的IP不見了,所以按照NAT模式重新配了一遍IP,但是也沒有用,後來查資料說閘道器也需要配,都沒有什麼用,所以還是按照資料的方法重新從網路模式開始配置。
vmware提供了三種網路工作模式:Bridged(橋接模式)、NAT(網路地址轉換模式)、Host-Only(僅主機模式),模式配置可以在虛擬機器左上角“編輯——虛擬網路編輯器”中設定,如下圖:
可以看到三種不同模式對應的狀態,其中VMnet1,VMnet8的IP都是隨機分配的,如果想要重新設定,或者在主機上看不到對應的VMnet1,VMnet8虛擬網絡卡,只需要點選左下角的恢復預設設定,即可看到虛擬機器中這兩個方式IP變了的同時,主機上的虛擬網絡卡也更新了。主機檢視虛擬網絡卡設定可以到網路中心設定:
從上面可以看出,主機是沒有橋接模式對應的VMnet0虛擬網絡卡的,下面介紹三種方式的區別:
一、Bridged(橋接模式)
橋接模式就是將主機網絡卡與虛擬機器虛擬的網絡卡利用虛擬網橋進行通訊。在橋接的作用下,類似於把物理主機虛擬為一個交換機,所有橋接設定的虛擬機器連線到這個交換機的一個介面上,物理主機也同樣插在這個交換機當中,所以所有橋接下的網絡卡與網絡卡都是交換模式的,相互可以訪問而不干擾。在橋接模式下,虛擬機器ip地址需要與主機在同一個網段(即地址前三個數相同),如果需要聯網,則閘道器與DNS需要與主機網絡卡一致。
先確認一下主機的IP地址,閘道器以及DNS資訊,Window+R輸入cmd進入命令視窗,輸入命令ipconfig/all即可檢視:
也可以到網路中心點選當前連線檢視,如果主機的IP是自動獲取的,在網路中心看不到,只能用命令列:
在開啟虛擬機器前先選擇連線模式:編輯虛擬機器設定——網路介面卡——橋接模式
開啟虛擬機器後開啟命令列,輸入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0編輯IP配置檔案:
此處應將IP地址設定和主機地址在同一網段,閘道器地址和DNS地址和主機一樣,因為我用的是NAT模式,且自動獲取IP,所以我的檔案沒有改,改完儲存重啟虛擬機器或者虛擬網絡卡(命令:service network restart),不知道為什麼我重啟虛擬網絡卡時命令列一直都沒用,所以我只好一遍遍地重啟虛擬機器。然後可以Ping一下主機地址試試能不能通,想要看主機和虛擬機器之間是否通訊正常,可以在主機新建虛擬機器地址的網路對映,在Xshell裡看能不能連線成功。
橋接模式配置簡單,如果網路環境是ip資源很缺少或對ip管理比較嚴格的話,不建議使用橋接模式,可以使用NAT模式。
二、NAT(地址轉換模式)
NAT模式藉助虛擬NAT裝置和虛擬DHCP伺服器,使得虛擬機器可以聯網。結構圖如下:
虛擬機器不佔用主機所在區域網的ip,通過使用主機的NAT功能訪問區域網和網際網路,意味著虛擬機器可以訪問區域網中的其他電腦,但是其他電腦不知道虛擬機器的存在。使用這種模式時,虛擬機器不需要設定靜態IP,只需要使用DHCP功能自動獲取ip即可。這個地方讓我耽誤了很久,因為一開始想的固定IP比較方便,所以沒有設定自動獲取,結果不停換IP都不行,後來設定了自動獲取所有問題都解決了。
配置過程:首先在虛擬網路編輯器裡設定NAT模式裡的NAT設定閘道器地址和DHCP設定虛擬機器IP範圍,一般預設的設定都不用改,主要為了確保都在同一個網段:
然後設定主機VMnet8虛擬網絡卡的IPv4設定:
此處要把IP地址設定為虛擬機器中NAT模式下設定的閘道器地址,我設定了自動獲取,好像也是可以的,同時我的虛擬機器地址也是自動獲取的,如果想要固定IP地址,就到虛擬機器裡設定/etc/sysconfig/network-scripts/ifcfg-eth0檔案中的各地址,此時設定的IP要在DHCP設定範圍內,閘道器地址也要跟DHCP裡的一樣。
在這個時候會發現在VMnet8的網路設定裡是顯示IPv4沒有網路訪問許可權的,也就是說虛擬機器不是靠虛擬網絡卡來連網的,只是用來讓主機和虛擬機器進行通訊的。
三、Host-Only(僅主機模式)
Host-Only模式其實就是NAT模式去除了虛擬NAT裝置,然後使用VMware Network Adapter VMnet1虛擬網絡卡連線VMnet1虛擬交換機來與虛擬機器通訊的,Host-Only模式將虛擬機器與外網隔開,使得虛擬機器成為一個獨立的系統,只與主機相互通訊。也就是說虛擬機器只能和主機通訊,不能連網。結構圖如下:
步驟基本和NAT一樣,設定固定IP時虛擬機器IP要和VMnet1在同一網段,閘道器一致,DNS地址要和主機相同。
一些網路常識:
1.網路中對電腦的訪問是通過ip定位的。
就好像我們的身份證號,可以唯一辨識一個人。ip是用來區分網路中的電腦的,因此同一網路(準確講是“網段”)中,ip地址不能相同。如果同一網路中有相同的ip存在,經常發生無法聯網或者經常掉線的情況。
2.網路是分段管理的。
拿區域網為例,我們通常的網段是192.168.1.xxx。我們的ip地址就是把xxx成1到254的數字。如果多臺計算機的ip的前面數字都是192.168.1,那麼就叫做屬於同一個網段,他們之間是可以互相通訊的。如果一臺機器的ip是192.168.1.100,另一臺機器的ip是192.168.3.100,正常情況下,不能互相通訊的(有辦法可以搞定,我們不討論)。所以,在設定虛擬機器時要考慮是否同一個網段。
3.怎麼知道電腦的ip地址?
在windows系統下,在命令列中執行ipconfig;在linux系統下,在命令列中執行ifconfig即可,下文會詳述。
4.怎麼判斷是否與對方能夠通訊?
最簡單的方式是執行ping命令。無論是windows還是linux,都可以在命令列中執行“ping 對方ip”