1. 程式人生 > >VirtualBox虛擬機器網路設定(四種方式)

VirtualBox虛擬機器網路設定(四種方式)

VirtualBox的提供了四種網路接入模式,它們分別是: 
1、NAT 網路地址轉換模式(NAT,Network Address Translation) 
2、Bridged Adapter 橋接模式 
3、Internal 內部網路模式 
4、Host-only Adapter 主機模式 

第一種 NAT模式 
解釋: 
NAT模式是最簡單的實現虛擬機器上網的方式,你可以這樣理解:Vhost訪問網路的所有資料都是由主機提供的,vhost並不真實存在於網路中,主機與網路中的任何機器都不能檢視和訪問到Vhost的存在。 
虛擬機器與主機關係: 
只能單向訪問,虛擬機器可以通過網路訪問到主機,主機無法通過網路訪問到虛擬機器。 
虛擬機器與網路中其他主機的關係: 
只能單向訪問,虛擬機器可以訪問到網路中其他主機,其他主機不能通過網路訪問到虛擬機器。
虛擬機器與虛擬機器之間的關係: 
相互不能訪問,虛擬機器與虛擬機器各自完全獨立,相互間無法通過網路訪問彼此。 
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方案優缺點: 
筆記本已插網線時: 虛擬機器可以訪問主機,虛擬機器可以訪問網際網路,在做了埠對映後(最後有說明),主機可以訪問虛擬機器上的服務(如資料庫)。 
筆記本沒插網線時: 主機的“本地連線”有紅叉的,虛擬機器可以訪問主機,虛擬機器不可以訪問網際網路,在做了埠對映後,主機可以訪問虛擬機器上的服務(如資料庫)。 

第二種 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不能主機。 

第三種 Internal模式 
解釋: 
內網模式,顧名思義就是內部網路模式,虛擬機器與外網完全斷開,只實現虛擬機器於虛擬機器之間的內部網路模式。 
虛擬機器與主機關係: 
不能相互訪問,彼此不屬於同一個網路,無法相互訪問。 
虛擬機器與網路中其他主機關係: 
不能相互訪問,理由同上。 
虛擬機器與虛擬機器關係: 
可以相互訪問,前提是在設定網路時,兩臺虛擬機器設定同一網路名稱。如上配置圖中,名稱為intnet。 
IP: VirtualBox的DHCP伺服器會為它分配IP ,一般得到的是192.168.56.101,因為是從101起分的,也可手工指定192.168.56.*。 
筆記本已插網線時:虛擬機器可以與主機的VirtualBox Host-Only Network 網絡卡通訊 
這種方案不受主機本地連線(網絡卡)是否有紅叉的影響。 

第四種 Host-only Adapter模式 
解釋: 
主機模式,這是一種比較複雜的模式,需要有比較紮實的網路基礎知識才能玩轉。可以說前面幾種模式所實現的功能,在這種模式下,通過虛擬機器及網絡卡的設定都可以被實現。 
我們可以理解為Vbox在主機中模擬出一張專供虛擬機器使用的網絡卡,所有虛擬機器都是連線到該網絡卡上的,我們可以通過設定這張網絡卡來實現上網及其他很多功能,比如(網絡卡共享、網絡卡橋接等)。 
虛擬機器與主機關係 
預設不能相互訪問,雙方不屬於同一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, 這時主機要能通過“本地連線”有線上網,(無線網絡卡不行) 

通過對以上幾種網路模式的瞭解,我們就可以靈活運用,模擬組建出我們所想要的任何一種網路環境了。 
比如我想模擬出來一個一臺主機,監控一個區域網上網情況的網路環境。 
首先我開啟了兩臺虛擬機器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 設定埠對映 

http://huzhangsheng.blog.163.com/blog/static/34787784200802801435931/ 
你可以設定一個虛擬機器的服務(比如 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' 22 
VBoxManage 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 伺服器上 

上文出處:
http://www.cnblogs.com/coltiam/archive/2010/03/26/1696939.html
 

個人感覺通過使用埠對映的方式很不爽,還不如直接橋接來的快,現在多數情況下連線到網路是沒問題的,埠對映還需要在宿主跟虛擬機器都額外開某個服務,感覺不爽。 

“網路”配置頁面有4個方案: 

1:NAT 網路地址轉換(Network Address Translation) 

2:Birdged Network 橋接 

3:Internal Network 內部網路(可以是虛擬機器與虛擬機器之間) 

4:Host-Only 只與主機通訊(大概吧) 

安裝完VirtualBox2.2後,主機多了一個“VirtualBox Host-Only Network ”本地網絡卡。 

-------------------------------------------------------------------- 

我的網路環境: 

主機: 

系統:xp 

“本地連線”的IP:由於是筆記本,經常換工作網路環境,都是通過DHCP分配的,有時候還無網路,“本地連線”有紅叉(對主機與虛擬機器通訊有影響)。 

“VirtualBox Host-Only Network網絡卡”IP:192.168.56.1 ,因為VirtualBox的DHCP伺服器IP是192.168.56.100,要在同一網段。 

虛擬機器:要能與主機互相通訊,要能訪問網際網路(不須要被網際網路訪問)。 

系統:win2003 

網絡卡1,網絡卡2,網絡卡3 後面說各網絡卡的配置情況 

---------------------------------------------------------------------- 

--------------------------- 各網絡卡的配置情況 -------------------------------------------- 

網絡卡1: 用NAT方案 

IP:10.0.2.15 

閘道器:10.0.2.2 

DNS:10.0.2.3 


為什麼這樣配置?因為VirtualBox的幫助中,有以下一段說明(英譯漢): 

一臺虛擬機器的多個網絡卡可以被設定使用 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:用Birdged Network 方案 

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: 用Host-Only 方案 

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

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

筆記本沒插網線時:虛擬機器可以與主機的VirtualBox Host-Only Network 網絡卡通訊 

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


------------------------------------------------------------------ 

以上三種方案,可以右擊虛擬機器視窗最下邊 兩個小電視 的圖示快速切換。滿足各種網路環境。 

關於Internal Network 方案,我也沒試。 


上面三種方案的總結 


同進啟用下面兩個方案: 

網絡卡2:用Birdged Network 方案 

網絡卡3: 用Host-Only 方案 

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

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

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