VirtualBox是一款SUN出品的非常優(yōu)秀的虛擬機(jī)程序,版本也非常齊全,你可以在官網(wǎng)上找到適合各種操作系統(tǒng)平臺的版本。
這里我先給大家大致講解下VBox的網(wǎng)絡(luò)配置及應(yīng)用。
VirtualBox的提供了四種網(wǎng)絡(luò)接入模式,它們分別是:
1、NAT 網(wǎng)絡(luò)地址轉(zhuǎn)換模式(NAT,Network Address Translation)
2、Bridged Adapter 橋接模式
3、Internal 內(nèi)部網(wǎng)絡(luò)模式
4、Host-only Adapter 主機(jī)模式
下面我們分別對這四種網(wǎng)絡(luò)模式進(jìn)行分析解釋:
第一種 NAT模式
解釋:
NAT模式是最簡單的實現(xiàn)虛擬機(jī)上網(wǎng)的方式,你可以這樣理解:Vhost訪問網(wǎng)絡(luò)的所有數(shù)據(jù)都是由主機(jī)提供的,vhost并不真實存在于網(wǎng)絡(luò)中,主機(jī)與網(wǎng)絡(luò)中的任何機(jī)器都不能查看和訪問到Vhost的存在。
虛擬機(jī)與主機(jī)關(guān)系:
只能單向訪問,虛擬機(jī)可以通過網(wǎng)絡(luò)訪問到主機(jī),主機(jī)無法通過網(wǎng)絡(luò)訪問到虛擬機(jī)。
虛擬機(jī)與網(wǎng)絡(luò)中其他主機(jī)的關(guān)系:
只能單向訪問,虛擬機(jī)可以訪問到網(wǎng)絡(luò)中其他主機(jī),其他主機(jī)不能通過網(wǎng)絡(luò)訪問到虛擬機(jī)。
虛擬機(jī)與虛擬機(jī)之間的關(guān)系:
相互不能訪問,虛擬機(jī)與虛擬機(jī)各自完全獨立,相互間無法通過網(wǎng)絡(luò)訪問彼此。
IP:10.0.2.15
網(wǎng)關(guān):10.0.2.2
DNS:10.0.2.3
一臺虛擬機(jī)的多個網(wǎng)卡可以被設(shè)定使用 NAT, 第一個網(wǎng)卡連接了到專用網(wǎng) 10.0.2.0,第二個網(wǎng)卡連接到專用網(wǎng)絡(luò) 10.0.3.0,等等。默認(rèn)得到的客戶端ip(IP Address)是10.0.2.15,網(wǎng)關(guān)(Gateway)是10.0.2.2,域名服務(wù)器(DNS)是10.0.2.3,可以手動參考這個進(jìn)行修改。
NAT方案優(yōu)缺點:
筆記本已插網(wǎng)線時: 虛擬機(jī)可以訪問主機(jī),虛擬機(jī)可以訪問互聯(lián)網(wǎng),在做了端口映射后(最后有說明),主機(jī)可以訪問虛擬機(jī)上的服務(wù)(如數(shù)據(jù)庫)。
筆記本沒插網(wǎng)線時: 主機(jī)的“本地連接”有紅叉的,虛擬機(jī)可以訪問主機(jī),虛擬機(jī)不可以訪問互聯(lián)網(wǎng),在做了端口映射后,主機(jī)可以訪問虛擬機(jī)上的服務(wù)(如數(shù)據(jù)庫)。
第二種 Bridged Adapter模式
解釋:
網(wǎng)橋模式是我最喜歡的用的一種模式,同時,模擬度也是相當(dāng)完美。你可以這樣理解,它是通過主機(jī)網(wǎng)卡,架設(shè)了一條橋,直接連入到網(wǎng)絡(luò)中了。因此,它使得虛擬機(jī)能被分配到一個網(wǎng)絡(luò)中獨立的IP,所有網(wǎng)絡(luò)功能完全和在網(wǎng)絡(luò)中的真實機(jī)器一樣。
虛擬機(jī)與主機(jī)關(guān)系:
可以相互訪問,因為虛擬機(jī)在真實網(wǎng)絡(luò)段中有獨立IP,主機(jī)與虛擬機(jī)處于同一網(wǎng)絡(luò)段中,彼此可以通過各自IP相互訪問。
虛擬機(jī)于網(wǎng)絡(luò)中其他主機(jī)關(guān)系:
可以相互訪問,同樣因為虛擬機(jī)在真實網(wǎng)絡(luò)段中有獨立IP,虛擬機(jī)與所有網(wǎng)絡(luò)其他主機(jī)處于同一網(wǎng)絡(luò)段中,彼此可以通過各自IP相互訪問。
虛擬機(jī)于虛擬機(jī)關(guān)系:
可以相互訪問,原因同上。
IP:一般是DHCP分配的,與主機(jī)的“本地連接”的IP 是同一網(wǎng)段的。虛擬機(jī)就能與主機(jī)互相通信。
筆記本已插網(wǎng)線時:(若網(wǎng)絡(luò)中有DHCP服務(wù)器)主機(jī)與虛擬機(jī)會通過DHCP分別得到一個IP,這兩個IP在同一網(wǎng)段。 主機(jī)與虛擬機(jī)可以ping通,虛擬機(jī)可以上互聯(lián)網(wǎng)。
筆記本沒插網(wǎng)線時:主機(jī)與虛擬機(jī)不能通信。主機(jī)的“本地連接”有紅叉,就不能手工指定IP。虛擬機(jī)也不能通過DHCP得到IP地址,手工指定IP后,也無法與主機(jī)通信,因為主機(jī)無IP。
這時主機(jī)的VirtualBox Host-Only Network 網(wǎng)卡是有ip的,192.168.56.1。虛擬機(jī)就算手工指定了IP 192.168.56.*,也ping不能主機(jī)。
第三種 Internal模式
解釋:
內(nèi)網(wǎng)模式,顧名思義就是內(nèi)部網(wǎng)絡(luò)模式,虛擬機(jī)與外網(wǎng)完全斷開,只實現(xiàn)虛擬機(jī)于虛擬機(jī)之間的內(nèi)部網(wǎng)絡(luò)模式。
虛擬機(jī)與主機(jī)關(guān)系:
不能相互訪問,彼此不屬于同一個網(wǎng)絡(luò),無法相互訪問。
虛擬機(jī)與網(wǎng)絡(luò)中其他主機(jī)關(guān)系:
不能相互訪問,理由同上。
虛擬機(jī)與虛擬機(jī)關(guān)系:
可以相互訪問,前提是在設(shè)置網(wǎng)絡(luò)時,兩臺虛擬機(jī)設(shè)置同一網(wǎng)絡(luò)名稱。如上配置圖中,名稱為intnet。
IP: VirtualBox的DHCP服務(wù)器會為它分配IP ,一般得到的是192.168.56.101,因為是從101起分的,也可手工指定192.168.56.*。
筆記本已插網(wǎng)線時:虛擬機(jī)可以與主機(jī)的VirtualBox Host-Only Network 網(wǎng)卡通信
這種方案不受主機(jī)本地連接(網(wǎng)卡)是否有紅叉的影響。
第四種 Host-only Adapter模式
解釋:
主機(jī)模式,這是一種比較復(fù)雜的模式,需要有比較扎實的網(wǎng)絡(luò)基礎(chǔ)知識才能玩轉(zhuǎn)?梢哉f前面幾種模式所實現(xiàn)的功能,在這種模式下,通過虛擬機(jī)及網(wǎng)卡的設(shè)置都可以被實現(xiàn)。
我們可以理解為Vbox在主機(jī)中模擬出一張專供虛擬機(jī)使用的網(wǎng)卡,所有虛擬機(jī)都是連接到該網(wǎng)卡上的,我們可以通過設(shè)置這張網(wǎng)卡來實現(xiàn)上網(wǎng)及其他很多功能,比如(網(wǎng)卡共享、網(wǎng)卡橋接等)。
虛擬機(jī)與主機(jī)關(guān)系
默認(rèn)不能相互訪問,雙方不屬于同一IP段,host-only網(wǎng)卡默認(rèn)IP段為192.168.56.X 子網(wǎng)掩碼為255.255.255.0,后面的虛擬機(jī)被分配到的也都是這個網(wǎng)段。通過網(wǎng)卡共享、網(wǎng)卡橋接等,可以實現(xiàn)虛擬機(jī)于主機(jī)相互訪問。
虛擬機(jī)與網(wǎng)絡(luò)主機(jī)關(guān)系
默認(rèn)不能相互訪問,原因同上,通過設(shè)置,可以實現(xiàn)相互訪問。
虛擬機(jī)與虛擬機(jī)關(guān)系
默認(rèn)可以相互訪問,都是同處于一個網(wǎng)段。
虛擬機(jī)訪問主機(jī) 用的是主機(jī)的VirtualBox Host-Only Network網(wǎng)卡的IP:192.168.56.1 ,不管主機(jī)“本地連接”有無紅叉,永遠(yuǎn)通。
主機(jī)訪問虛擬機(jī),用是的虛擬機(jī)的網(wǎng)卡3的IP: 192.168.56.101 ,不管主機(jī)“本地連接”有無紅叉,永遠(yuǎn)通。
虛擬機(jī)訪問互聯(lián)網(wǎng),用的是自己的網(wǎng)卡2, 這時主機(jī)要能通過“本地連接”有線上網(wǎng),(無線網(wǎng)卡不行)
通過對以上幾種網(wǎng)絡(luò)模式的了解,我們就可以靈活運(yùn)用,模擬組建出我們所想要的任何一種網(wǎng)絡(luò)環(huán)境了。
比如我想模擬出來一個一臺主機(jī),監(jiān)控一個局域網(wǎng)上網(wǎng)情況的網(wǎng)絡(luò)環(huán)境。
首先我開啟了兩臺虛擬機(jī)vhost1與vhost2,當(dāng)然如果硬件允許,我同樣可以再增加vhost3、vhost4…
所有的vhost我都設(shè)置成internat內(nèi)網(wǎng)模式,網(wǎng)絡(luò)名稱為intnal,網(wǎng)關(guān)為192.168.56.100,意思就是通過 192.168.56.100網(wǎng)卡上網(wǎng)。其中有一臺vhost1我設(shè)置為雙網(wǎng)卡,一張為內(nèi)網(wǎng)模式(192.168.56.100),一張為網(wǎng)橋模式 (192.168.1.101)。兩張網(wǎng)卡設(shè)置雙網(wǎng)卡共享上網(wǎng)
虛擬機(jī)之間為局域網(wǎng),其中有一臺虛擬機(jī)vhost1通過與外網(wǎng)相連,所有局域網(wǎng)中的虛擬機(jī)又通過vhost1來實現(xiàn)上外網(wǎng)。這樣vhost1就可以監(jiān)控整個虛擬機(jī)局域網(wǎng)上網(wǎng)情況了。
NAT 設(shè)置端口映射
http://huzhangsheng.blog.163.com/blog/static/34787784200802801435931/
你可以設(shè)置一個虛擬機(jī)的服務(wù)(比如 WEB 服務(wù)),通過使用命令行工具 VboxManage 代理。你需要知道虛擬機(jī)的服務(wù)使用哪個端口,然后決定在主機(jī)上使用哪個端口(通常但不總是想要使虛擬機(jī)和主機(jī)使用同一個端口)。在主機(jī)上提供一個服務(wù)需要使用一個端口,你能使用在主機(jī)上沒有準(zhǔn)備用來提供服務(wù)的任何端口。一個怎樣設(shè)置新的 NAT 例子,在虛擬機(jī)上連接到一個 ssh 服務(wù)器,需要下面的三個命令:
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" 是虛擬主機(jī)名。guestssh 是一個自定義的名稱,你可以任意設(shè)置,通過上面的三個命令,把虛擬機(jī)的 22 端口 轉(zhuǎn)發(fā)到主機(jī)的 2222 端口。
又比如,我在虛擬機(jī) debian 上安裝了 apache2 服務(wù)器,使用 80 端口,映射到主機(jī)的 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
注意:要使設(shè)置生效,請關(guān)掉 VirtualBox 再運(yùn)行虛擬機(jī),我把 VirtualBox 安裝在 winxp 上,在虛擬機(jī)中安裝 debian 4.02r ,虛擬機(jī)名是 debian ,并安裝了 apache2 php5 mysql-server ,在主機(jī)上用IE瀏覽 http://localhost,成功轉(zhuǎn)發(fā)到虛擬機(jī) debian 的 apache2 web 服務(wù)器上