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