日常工作中,常常會(huì )用虛擬機,在里面安裝Server,搭建服務(wù)端環(huán)境供開(kāi)發(fā)調試,這種使用場(chǎng)景一般都需要虛擬機能夠正常訪(fǎng)問(wèn)外部網(wǎng)絡(luò ),同時(shí)宿主機必須可以訪(fǎng)問(wèn)虛擬機。在Virtualbox中,虛擬機訪(fǎng)問(wèn)外部網(wǎng)絡(luò )一般是使用配置起來(lái)最簡(jiǎn)單的NAT模式,但純NAT模式下,宿主機不能訪(fǎng)問(wèn)虛擬機,必須使用Bridged或者Host-only模式才可以。在這兩個(gè)模式下,虛擬機都可以獲得一個(gè)可用的IP地址,宿主機通過(guò)該IP地址即可訪(fǎng)問(wèn)虛擬機。
關(guān)于Virtualbox的網(wǎng)絡(luò )接入模式,不了解的同學(xué)可以自行Google一下,這部分資料其實(shí)都挺齊全的,這篇文章主要是簡(jiǎn)單的介紹(記錄)一下在Virtualbox虛擬機中使用NAT模式訪(fǎng)問(wèn)外部公共網(wǎng)絡(luò )(互聯(lián)網(wǎng)),再結合Host-only模式,令宿主機同時(shí)可以用虛擬機的靜態(tài)IP地址訪(fǎng)問(wèn)虛擬機的配置實(shí)現。該配置相對于單純使用Bridged模式的好處在于:即使沒(méi)有外部公用網(wǎng)絡(luò ),宿主機也可以無(wú)障礙的訪(fǎng)問(wèn)虛擬機,不會(huì )影響使用。
在Bridged模式下,虛擬機和宿主機處于同等地位,就像是一臺真實(shí)主機一樣存在于局域網(wǎng)中,可以分配到一個(gè)網(wǎng)絡(luò )中獨立的IP,所有網(wǎng)絡(luò )功能都和在網(wǎng)絡(luò )中的真實(shí)機器一樣,網(wǎng)絡(luò )中的其它機器(包括宿主機)也可以訪(fǎng)問(wèn)到這臺虛擬機。同時(shí),如果網(wǎng)絡(luò )斷開(kāi),即便虛擬機和宿主機其實(shí)是在一臺物理機器上,宿主機也不能夠訪(fǎng)問(wèn)虛擬機。而Host-only模式,可以理解為Virtualbox在宿主機中模擬出一張專(zhuān)供虛擬機使用的網(wǎng)卡,所有虛擬機都是連接到該網(wǎng)卡上的,虛擬機可以通過(guò)該網(wǎng)卡IP訪(fǎng)問(wèn)宿主機,同時(shí)Virtualbox提供一個(gè)DHCP服務(wù),虛擬機可以獲得一個(gè)內部網(wǎng)IP,宿主機可以通過(guò)該IP訪(fǎng)問(wèn)虛擬機。如果單純使用Host-only模式,則虛擬機不能連接外部公共網(wǎng)絡(luò )。
在有外部網(wǎng)絡(luò )的情況下,假如需要將虛擬機開(kāi)放給網(wǎng)絡(luò )中的其它機器訪(fǎng)問(wèn),比如讓同事連上虛擬機做開(kāi)發(fā)測試等工作,那么就可以直接使用Bridged模式,該模式也僅需要占用公共網(wǎng)絡(luò )中的一個(gè)IP地址,但日常使用環(huán)境中,有時(shí)候不一定有公共網(wǎng)絡(luò )可以用,假如使用Bridged模式,則虛擬機連不上,開(kāi)發(fā)工作也做不了,此時(shí)Host-only模式就是一個(gè)不錯的選擇,若是再配合NAT模式,則外部公共網(wǎng)絡(luò )可用時(shí),虛擬機也可以訪(fǎng)問(wèn)外部公共網(wǎng)絡(luò )。
下面簡(jiǎn)單介紹下使用這幾個(gè)模式時(shí)需要做的相關(guān)配置。
首先在Virtualbox中的全局配置(呼出快捷鍵ctrl+g)界面的網(wǎng)絡(luò )配置中,點(diǎn)擊右側添加按鈕,增加一個(gè)Host-only網(wǎng)絡(luò )。查看該網(wǎng)絡(luò )的詳情,可以看到:
可以看出,該網(wǎng)絡(luò )是192.168.56.0,可供分配使用的IP地址是192.168.56.101 - 192.168.56.254。
打開(kāi)虛擬機的網(wǎng)絡(luò )配置,將網(wǎng)卡1的連接方式選為“網(wǎng)絡(luò )地址轉換(NAT)”,網(wǎng)卡2的連接方式選為“僅主機(Host-only)適配器”,如下圖所示:
假如使用Bridged模式,則需要將連接方式選為“橋接網(wǎng)卡”。
保存后,啟動(dòng)虛擬機,虛擬機以Ubuntu server 12.04為例,打開(kāi)配置文件 /etc/network/interfaces 加入如下配置:
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # Virtualbox Host-only modeauto eth1 iface eth1 inet static address 192.168.56.190 netmask 255.255.255.0 network 192.168.56.0 # Virtualbox Bridged mode#auto eth1#iface eth1 inet static #address 192.168.0.190 #netmask 255.255.255.0 #gateway 192.168.0.1
該配置將虛擬機在內部網(wǎng)絡(luò )中的IP地址設置為靜態(tài)分配(192.168.56.190),方便宿主機在hosts中綁定該IP訪(fǎng)問(wèn)虛擬機。保存配置后,執行如下命令重啟網(wǎng)絡(luò )服務(wù):
$ sudo /etc/init.d/networking restart
即可實(shí)現虛擬機使用NAT通過(guò)宿主機來(lái)正常訪(fǎng)問(wèn)外部網(wǎng)絡(luò ),同時(shí)因為使用了Host-only模式,宿主機可以通過(guò)虛擬機在內部網(wǎng)絡(luò )的IP地址訪(fǎng)問(wèn)虛擬機,即使外部網(wǎng)絡(luò )不可用也不影響宿主機對虛擬機的訪(fǎng)問(wèn)。
聯(lián)系客服