VirtualBox的四種網絡連接方式

VirtualBox的四種網絡連接方式

VirtualBox中有4中網絡連接方式:
a. NAT                          網絡地址轉換模式(Network Address Translation)
b. Bridged Adapter        橋接模式
c. Internal                     內部網絡模式
d. Host-only Adapter     主機模式

VMWare中有三種,其實他跟VMWare 的網絡連接方式都是一樣概念,只是比VMWare多了Internal方式。

要讓自己(或別人)理解深刻,方法就是做比較和打比方,比較之間的不同和相同,拿熟知的事物打比方。先來一張圖,通過這張圖就很容易看出這4種方式的區別:

 

一、四種模式介紹

1、NAT

NAT:Network Address Translation,網絡地址轉換

NAT模式是最簡單的實現虛擬機上網的方式,你可以這樣理解:

Guest訪問網絡的所有數據都是由主機提供的,Guest並不真實存在於網絡中,主機與網絡中的任何機器都不能查看和訪問到Guest的存在。

Guest可以訪問主機能訪問到的所有網絡,但是對於主機以及主機網絡上的其他機器,Guest又是不可見的,甚至主機也訪問不到Guest。

虛擬機與主機的關係:只能單向訪問,虛擬機可以通過網絡訪問到主機,主機無法通過網絡訪問到虛擬機。
虛擬機與網絡中其他主機的關係:只能單向訪問,虛擬機可以訪問到網絡中其他主機,其他主機不能通過網絡訪問到虛擬機。
虛擬機與虛擬機的關係:相互不能訪問,虛擬機與虛擬機各自完全獨立,相互間無法通過網絡訪問彼此。

IP:10.0.2.15

網關:10.0.2.2

DNS:10.0.2.3

一臺虛擬機的多個網卡可以被設定使用 NAT, 第一個網卡連接了到專用網 10.0.2.0,第二個網卡連接到專用網絡 10.0.3.0,等等。默認得到的客戶端ip(IP Address)是10.0.2.15,網關(Gateway)是10.0.2.2,域名服務器(DNS)是10.0.2.3,可以手動參考這個進行修 改。

NAT方案優缺點:

筆記本已插網線時:虛擬機可以訪問主機,虛擬機可以訪問互聯網,在做了端口映射後(最後有說明),主機可以訪問虛擬機上的服務(如數據庫)。
筆記本沒插網線時:主機的“本地連接”有紅叉的,虛擬機可以訪問主機,虛擬機不可以訪問互聯網,在做了端口映射後,主機可以訪問虛擬機上的服務(如數據庫)

2、Bridged Adapter(網橋模式)

網橋模式,你可以這樣理解:

它是通過主機網卡,架設了一條橋,直接連入到網絡中了。因此,它使得虛擬機能被分配到一個網絡中獨立的IP,所有網絡功能完全和在網絡中的真實機器一樣。

網橋模式下的虛擬機,你把它認爲是真實計算機就行了。

虛擬機與主機的關係:可以相互訪問,因爲虛擬機在真實網絡段中有獨立IP,主機與虛擬機處於同一網絡段中,彼此可以通過各自IP相互訪問。
虛擬機於網絡中其他主機的關係:可以相互訪問,同樣因爲虛擬機在真實網絡段中有獨立IP,虛擬機與所有網絡其他主機處於同一網絡段中,彼此可以通過各自IP相互訪問。
虛擬機與虛擬機的關係:可以相互訪問,原因同上。

IP:一般是DHCP分配的,與主機的“本地連接”的IP 是同一網段的。虛擬機就能與主機互相通信。

筆記本已插網線時:(若網絡中有DHCP服務器)主機與虛擬機會通過DHCP分別得到一個IP,這兩個IP在同一網段。 主機與虛擬機可以ping通,虛擬機可以上互聯網。

筆記本沒插網線時:主機與虛擬機不能通信。主機的“本地連接”有紅叉,就不能手工指定IP。虛擬機也不能通過DHCP得到IP地址,手工指定IP後,也無法與主機通信,因爲主機無IP。

這時主機的VirtualBox Host-Only Network 網卡是有ip的,192.168.56.1。虛擬機就算手工指定了IP 192.168.56.*,也ping不能主機。

 

3、Internal(內網模式)

內網模式,顧名思義就是內部網絡模式:

虛擬機與外網完全斷開,只實現虛擬機於虛擬機之間的內部網絡模式。

虛擬機與主機的關係:不能相互訪問,彼此不屬於同一個網絡,無法相互訪問。
虛擬機與網絡中其他主機的關係:不能相互訪問,理由同上。
虛擬機與虛擬機的關係:可以相互訪問,前提是在設置網絡時,兩臺虛擬機設置同一網絡名稱。如上配置圖中,名稱爲intnet。

IP:VirtualBox的DHCP服務器會爲它分配IP ,一般得到的是192.168.56.101,因爲是從101起分的,也可手工指定192.168.56.*。

筆記本已插網線時:虛擬機可以與主機的VirtualBox Host-Only Network 網卡通信

這種方案不受主機本地連接(網卡)是否有紅叉的影響。

 

4、Host-only Adapter(主機模式)

主機模式,這是一種比較複雜的模式,需要有比較紮實的網絡基礎知識才能玩轉。可以說前面幾種模式所實現的功能,在這種模式下,通過虛擬機及網卡的設置都可以被實現。

我們可以理解爲Guest在主機中模擬出一張專供虛擬機使用的網卡,所有虛擬機都是連接到該網卡上的,我們可以通過設置這張網卡來實現上網及其他很多功能,比如(網卡共享、網卡橋接等)。

虛擬機與主機的關係:默認不能相互訪問,雙方不屬於同一IP段,host-only網卡默認IP段爲192.168.56.X 子網掩碼爲255.255.255.0,後面的虛擬機被分配到的也都是這個網段。通過網卡共享、網卡橋接等,可以實現虛擬機於主機相互訪問。
虛擬機與網絡主機的關係:默認不能相互訪問,原因同上,通過設置,可以實現相互訪問。
虛擬機與虛擬機的關係:默認可以相互訪問,都是同處於一個網段。

虛擬機訪問主機,用的是主機的VirtualBox Host-Only Network網卡的IP:192.168.56.1  ,不管主機“本地連接”有無紅叉,永遠通。

主機訪問虛擬機,用是的虛擬機的網卡3的IP: 192.168.56.101  ,不管主機“本地連接”有無紅叉,永遠通。

虛擬機訪問互聯網,用的是自己的網卡2, 這時主機要能通過“本地連接”有線上網,(無線網卡不行)


補充:

我剛裝上VirtualBox的時候所有的網絡連接方式都試過了,但虛擬機和虛擬機之間就是不能相互訪問,Ping都Ping不通,我在想難道VirtualBox的網絡設置有這麼複雜嗎,後來想到是不是Windows XP的防火牆的問題,關閉之,一切就正常了!

 

二、靈活應用(模擬出來一個一臺主機,監控一個局域網上網情況的網絡環境)

通過對以上幾種網絡模式的瞭解,我們就可以靈活運用,模擬組建出我們所想要的任何一種網絡環境了。

首先我開啓了兩臺虛擬機vhost1與vhost2,當然如果硬件允許,我同樣可以再增加vhost3、vhost4......

所有的vhost我都設置成internat內網模式,網絡名稱爲intnal,網關爲192.168.56.100,意思就是通過 192.168.56.100網卡上網
其中有一臺vhost1我設置爲雙網卡,一張爲內網模式(192.168.56.100),一張爲網橋模式 (192.168.1.101)。
兩張網卡設置雙網卡共享上網,虛擬機之間爲局域網,其中有一臺虛擬機vhost1通過與外網相連,所有局域網中的虛擬機又通過vhost1來實現上外網。
這樣vhost1就可以監控整個虛擬機局域網上網情況了。

 

三、NAT 設置端口映射

你可以設置一個虛擬機的服務(比如 WEB 服務),通過使用命令行工具 VboxManage 代理。你需要知道虛擬機的服務使用哪個端口,然後決定在主機上使用哪個端口(通常但不總是想要使虛擬機和主機使用同一個端口)。在主機上提供一個服務需要 使用一個端口,你能使用在主機上沒有準備用來提供服務的任何端口。一個怎樣設置新的 NAT 例子,在虛擬機上連接到一個 ssh 服務器,需要下面的三個命令:

VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol' TCP
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort' 22VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort' 2222

說明:VboxManage 是一個命令行程序,請查詢你的 VirtualBox 安裝目錄,'Linux Guest' 是虛擬主機名。guestssh 是一個自定義的名稱,你可以任意設置,通過上面的三個命令,把虛擬機的 22 端口 轉發到主機的 2222 端口。

又比如,我在虛擬機 debian 上安裝了 apache2 服務器,使用 80 端口,映射到主機的 80 端口。使用下面的命令。

'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol' TCP'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort' 80'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort' 80

注意:要使設置生效,請關掉 VirtualBox 再運行虛擬機,我把 VirtualBox 安裝在 winxp 上,在虛擬機中安裝 debian 4.02r ,虛擬機名是 debian ,並安裝了 apache2 php5 mysql-server ,在主機上用IE瀏覽 http://localhost,成功轉發到虛擬機 debian 的 apache2 web 服務器上。

 

四、圖解

NAT
這 種方式下,虛擬機的網卡 連接到宿主的 VMnet8 上。此時系統的 VMWare NAT Service 服務就充當了路由器的作用,負責將虛擬機發到 VMnet8 的包進行地址轉換之後發到實際的網絡上,再將實際網絡上返回的包進行地址轉換後通過 VMnet8 發送給虛擬機。VMWare DHCP Service 負責爲虛擬機提供 DHCP 服務。

vmware中的網絡(bridge,nat) - undemon - 對自己的最佳肯定就是對自己的不斷否定
Bridged
這種方式下,虛擬機就像一臺真正的計算機一樣,直接連接到實際的網絡上,與宿主機沒有任何聯繫。

vmware中的網絡(bridge,nat) - undemon - 對自己的最佳肯定就是對自己的不斷否定
Host-only
這種方式下,虛擬機的網卡連接到宿主的 VMnet1 上,但系統並不爲虛擬機提供任何路由服務,因此虛擬機只能和宿主機進行通信,而不能連接到實際網絡上。

vmware中的網絡(bridge,nat) - undemon - 對自己的最佳肯定就是對自己的不斷否定

 

replicate physical network connection state 選項解釋:

Select if the virtual machine uses a bridged network connection and if you use the virtual machine on a laptop or other mobile device. As you move from one wired or wireless network to another, the IP address is automatically renewed.

單機多網卡或者筆記本和移動設備使用虛擬機時,當在有線網絡和無線網絡切換時,勾選了Replicate physical network connection state,虛擬機網卡的ip地址會自動更新,不需要重新設置。

 

 

五、VirtualBox配置雙網卡,實現內外網絡互訪問

 

環境:

宿主機操作系統            Windows XP sp3

虛擬機軟件                  VirtualBox

虛擬機操作系統            Fedora(Linux)


1、使虛擬電腦Fedora能夠上網

原理:

NAT(網絡地址轉換模式)

  使用NAT模式,就是讓虛擬系統藉助NAT(網絡地址轉換)功能,通過宿主機器所在的網絡來訪問公網。也就是說,使用NAT模式可以實現在 虛擬系統裏訪問互聯網。NAT模式下的虛擬系統的TCP/IP配置信息是由VMnet8(NAT)虛擬網絡的DHCP服務器提供的,無法進行手工修改,因 此虛擬系統也就無法和本局域網中的其他真實主機進行通訊。採用NAT模式最大的優勢是虛擬系統接入互聯網非常簡單,你不需要進行任何其他的配置,只需要宿 主機器能訪問互聯網即可。

  如果你想利用VMWare安裝一個新的虛擬系統,在虛擬系統中不用進行任何手工配置就能直接訪問互聯網,建議你採用NAT模式。

 

步驟:

在VirtualBox中設置網絡連接,啓用NAT連接模式。

 


 

啓動Fedora,發現網絡成功連接上了,運行FireFox,可以成功登陸Fedora網頁。 



 

這裏我們查看一下Fedora的IP和Windows的網絡配置,並且互相ping。

 


 

Fedora可以ping到Windows


 

但是Windows不能ping到Fedora

這個也好理解,因爲NAT的網絡連接模式就是虛擬機通過宿主機的網絡來訪問互聯網,那麼虛擬機當然知道宿主機的網絡地址。但是反過來,Windows就不清楚到達10.0.2.15地址要如何經過路由了。

在這裏要注意一下,Fedora的IP地址10.0.2.5是通過DHCP自動分配的。

 

 

2、使虛擬電腦Fedora能夠與宿主機互聯

這一部分的目標就是實現Windows能夠ping通Fedora。

 

原理:

bridged(橋接模式)

  在這種模式下,VirtualBox虛擬出來的操作系統就像是局域網中的一臺獨立的主機,它可以訪問網內任何一臺機器。在橋接模式下,你需 要手工爲虛擬系統配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通信。同時,由於這個虛擬系統是局域網中的一 個獨立的主機系統,那麼就可以手工配置它的TCP/IP配置信息,以實現通過局域網的網關或路由器訪問互聯網。
 

使用橋接模式的虛擬系統和宿主機器的關係,就像連接在同一個Hub上的兩臺電腦。想讓它們相互通訊,你就需要爲虛擬系統配置IP地址和子網掩碼,否則就無法通信。

如果你想利用VirtualBox在局域網內新建一個虛擬服務器,爲局域網用戶提供網絡服務,就應該選擇橋接模式。

 

步驟:

在VirtualBox中設置網絡連接,開啓Bridge Adapter連接模式


 

啓動Fedora,發現多了一個未配置的網卡eht1

 


 

爲該網卡添加一個網絡配置,手動輸入IP地址、子網掩碼和網關(與宿主機要在同一網段)



 

設置好後查看網絡信息,並ping宿主機(這個在上一部分就實現了)

 


 

宿主機ping虛擬機


 

成功ping通

 

3、補充:第三種連接方式

在這裏必須提一點,就是如果172.16.35.237這個IP地址已經被其他計算機使用怎麼辦,爲了解決這種IP地址衝突的情況,我們來進一步瞭解host-only連接模式。

 

原理:

host-only(主機模式)

      在某些特殊的網絡調試環境中,要求將真實環境和虛擬環境隔離開,這時你就可採用host-only模式。在host-only模式中,所有的虛擬系統是可以相互通信的,但虛擬系統和真實的網絡是被隔離開的。  

 

提示:

在host-only模式下,虛擬系統和宿主機器系統是可以相互通信的,相當於這兩臺機器通過雙絞線互連。

在host-only模式下,虛擬系統的TCP/IP配置信息(如IP地址、網關地址、DNS服務器等),都是由VMnet1(host-only)虛擬網絡的DHCP服務器來動態分配的。

如果你想利用VirtualBox創建一個與網內其他機器相隔離的虛擬系統,進行某些特殊的網絡調試工作,可以選擇host-only模式。

 

步驟:

在VirtualBox中設置網絡連接,啓用host-only連接模式。

 


 

啓動Fedora,發現多了一個已配置的網卡eht2


 

因爲eth1和eth2的IP地址都是172.16.35.237,在Windows端ping的時候是不會成功的。它搞不清楚是哪個了。


 

現在爲該網卡添加一個網絡配置,設置在和VirtualBox的網關192.168.56.1保持一致的網段。



 

弄好後的網絡配置信息爲:

 

設置好後,可以在Windows端ping地址172.16.35.237又成功了。再ping新的IP地址也成功了。

 

 

小提示:

在Fedora窗口界面進行網絡配置的添加或刪除時,可能系統並沒有及時更新網絡配置信息,可以在終端使用命令/etc/rc.d/init.d/network restart來重啓網絡連接。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章