VirtualBox中有4中網絡連接方式:
- NAT
- Bridged Adapter
- Internal
- Host-only Adapter
VMWare中有三種,其實他跟VMWare 的網絡連接方式都是一樣概念,只是比VMWare多了Internal方式。
要讓自己(或別人)理解深刻,方法就是做比較和打比方,比較之間的不同和相同,拿熟知的事物打比方。先來一張圖,通過這張圖就很容易看出這4種方式的區別:
(注:此圖直接取至Finalbug的Blog,表示感謝)
再來用文字做詳細的解釋(其實歸結起來就是上面的那張圖):
1、NAT
NAT:Network Address Translation,網絡地址轉換
NAT模式是最簡單的實現虛擬機上網的方式,你可以這樣理解:
Guest訪問網絡的所有數據都是由主機提供的,Guest並不真實存在於網絡中,主機與網絡中的任何機器都不能查看和訪問到Guest的存在。
Guest可以訪問主機能訪問到的所有網絡,但是對於主機以及主機網絡上的其他機器,Guest又是不可見的,甚至主機也訪問不到Guest。
虛擬機與主機的關系:只能單向訪問,虛擬機可以通過網絡訪問到主機,主機無法通過網絡訪問到虛擬機。
虛擬機與網絡中其他主機的關系:只能單向訪問,虛擬機可以訪問到網絡中其他主機,其他主機不能通過網絡訪問到虛擬機。
虛擬機與虛擬機的關系:相互不能訪問,虛擬機與虛擬機各自完全獨立,相互間無法通過網絡訪問彼此。
2、Bridged Adapter(網橋模式)
網橋模式,你可以這樣理解:
它是通過主機網卡,架設了一條橋,直接連入到網絡中了。因此,它使得虛擬機能被分配到一個網絡中獨立的IP,所有網絡功能完全和在網絡中的真實機器一樣。
網橋模式下的虛擬機,你把它認為是真實計算機就行了。
虛擬機與主機的關系:可以相互訪問,因為虛擬機在真實網絡段中有獨立IP,主機與虛擬機處於同一網絡段中,彼此可以通過各自IP相互訪問。
虛擬機於網絡中其他主機的關系:可以相互訪問,同樣因為虛擬機在真實網絡段中有獨立IP,虛擬機與所有網絡其他主機處於同一網絡段中,彼此可以通過各自IP相互訪問。
虛擬機與虛擬機的關系:可以相互訪問,原因同上。
3、Internal(內網模式)
內網模式,顧名思義就是內部網絡模式:
虛擬機與外網完全斷開,只實現虛擬機於虛擬機之間的內部網絡模式。
虛擬機與主機的關系:不能相互訪問,彼此不屬於同一個網絡,無法相互訪問。
虛擬機與網絡中其他主機的關系:不能相互訪問,理由同上。
虛擬機與虛擬機的關系:可以相互訪問,前提是在設置網絡時,兩台虛擬機設置同一網絡名稱。如上配置圖中,名稱為intnet。
4、Host-only Adapter(主機模式)
主機模式,這是一種比較復雜的模式,需要有比較扎實的網絡基礎知識才能玩轉。可以說前面幾種模式所實現的功能,在這種模式下,通過虛擬機及網卡的設置都可以被實現。
我們可以理解為Guest在主機中模擬出一張專供虛擬機使用的網卡,所有虛擬機都是連接到該網卡上的,我們可以通過設置這張網卡來實現上網及其他很多功能,比如(網卡共享、網卡橋接等)。
虛擬機與主機的關系:默認不能相互訪問,雙方不屬於同一IP段,host-only網卡默認IP段為192.168.56.X 子網掩碼為255.255.255.0,后面的虛擬機被分配到的也都是這個網段。通過網卡共享、網卡橋接等,可以實現虛擬機於主機相互訪問。
虛擬機與網絡主機的關系:默認不能相互訪問,原因同上,通過設置,可以實現相互訪問。
虛擬機與虛擬機的關系:默認可以相互訪問,都是同處於一個網段。
以上關於這4種連接方式的文字解釋,基本上抄自於(轉)VirtualBox網絡設置與應用詳解(圖解+文字)這篇文章,但沒有找到此文的原始出處。
關於這幾種連接方式,理解VMWare的三種網絡連接模式(bridged、NAT、host-only)里的解釋只是換了文字來表述,雖然顯得重復,但為了理解,干脆就寫成了這兩篇Blog。
Update:我剛裝上VirtualBox的時候所有的網絡連接方式都試過了,但虛擬機和虛擬機之間就是不能 相互訪問,Ping都Ping不通,我在想難道VirtualBox的網絡設置有這么復雜嗎,后來想到是不是Windows XP的防火牆的問題,關閉之,一切就正常了,Fuck!
參考資料:
VMware支持三種類型的網絡:NAT,Bridged,Host-only。
NAT
這種方式下,虛擬機的網卡連接到宿主的 VMnet8 上。此時系統的 VMWare NAT Service 服務就充當了路由器的作用,負責將虛擬機發到 VMnet8 的包進行地址轉換之后發到實際的網絡上,再將實際網絡上返回的包進行地址轉換后通過 VMnet8 發送給虛擬機。VMWare DHCP Service 負責為虛擬機提供 DHCP 服務。
Bridged
這種方式下,虛擬機就像一台真正的計算機一樣,直接連接到實際的網絡上,與宿主機沒有任何聯系。
Host-only
這種方式下,虛擬機的網卡連接到宿主的 VMnet1 上,但系統並不為虛擬機提供任何路由服務,因此虛擬機只能和宿主機進行通信,而不能連接到實際網絡上。