(1)最新的 VirtualBox 可以簡單的配置為橋串連,
(2) 如果 VirtualBox 的版本低可嘗試如下操作:
很久沒用虛擬機器了,昨天安裝了源裡的VirtualBox,發現視窗標題中多了一個“OSE”的字串,也沒有太在意。安裝的時候用的是NAT方式
的網路連接,裝完系統後卻發現Guest無法上網,去查網路設定,一切都正常,Guest可以通過DHCP獲得IP地址,但是地址和網關卻很怪,都是
“10.0.0.x”,而且無法Ping通外網。
到VirtualBox的官方網站
上去看了一下,原來最近VBox改變了一下發行策略,分成了一個閉源版本和一個開源版本,開源版本比閉源版本功能少一些,不過閉源版本也是免費的,而OSE就是“Open Source Edition”的簡稱。
雖然在兩個版本功能差異的列表
中
沒有找到和網路相關的內容,最終我還是下載並安裝了閉源版本。再次啟動Guest,奇蹟沒有發生,無奈之下,只好決定使用橋接網路。橋接網路和NAT的主
要區別表現在,NAT很簡單,只需在VirtualBox中選擇使用NAT方式,然後在Guest中選擇自動擷取Ip地址即可,它其實是使用Host的網
絡串連,因此在網路中並不作為一個獨立個體存在;而橋接方式則是使Guest可以獲得自己的IP,從而在網路上作為獨立個體與Host並列,這種方式靈活
而且不受Host的限制和影響,缺點就是配置起來相對較麻煩。
VirtualBox的橋接網路是和VMWare的Bridged方式一樣的東西,但和它不同,VirtualBox的Windows版和Linux版配置橋接網路的方式有所不同,這裡只介紹Linux下怎樣配置VirtualBox的橋接網路。
首先要安裝兩個用於橋接網路的庫,Ubuntu下使用下述命令安裝這兩個庫:
sudo apt-get install uml-utilities bridge-utils
之後,系統中會出現一個名為“uml-net”的使用者組,使用下述命令將運行虛擬機器的使用者添加到該組中:
sudo gpasswd -a user_name uml-net
將上面的“user_name”替換成運行虛擬機器的使用者的使用者名稱,然後編輯網路介面的設定檔:
sudo vi /etc/network/interfaces
在檔案的最後或者開頭,添加下面一段:
auto tap0
iface tap0 inetmanual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user user_name
上面的配置資訊的意思是,設定虛擬網路介面的名字為“tap0”;其IP配置方式為手動;指定使用此介面的使用者為“user_name”。然後要配置一個橋,同樣在上述配置資訊的下方添加如下內容:
auto br0
iface br0 inet dhcp
bridge_ports all tap0
此段配置資訊的意思是,建立名為“br0”的橋,它擷取IP的方式是通過DHCP自動擷取,本機所有網路介面,包括“tap0”虛擬介面都將建立在這個橋之上。如果希望手動指定IP,可以將上面的配置資訊替換成如下內容:
auto br0
iface br0 inet static
address 192.168.0.5
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
上面的配置資訊設定該橋的IP為“192.168.0.5”。
將該檔案儲存,重新啟動系統,然後在虛擬終端中輸入如下命令啟用此橋接網路,此命令只需執行一次:
sudo /sbin/ifup br0
sudo /sbin/ifup tap0
開啟開啟
VirtualBox,在列表中選中Guest系統,然後點擊工具列上的“設定”->“網路”,在列出的幾個網路介面卡中隨便選擇一個,一般只用一
個“網路介面卡0”,點選“啟用網路介面卡”;然後在“串連到”後的下拉式清單中選擇“Host
Interface”,同時確保“接入網線”處於選中狀態;然後在“主機網路介面名稱”中填寫“tap0”;其餘的不用管。點“確定”後啟動Guest,
設定系統的IP為自動擷取即可使橋接網路生效了。
如果要禁用該橋接器,首先使用如下命令:
sudo /sbin/ifdown br0
sudo /sbin/ifdown tap0
然後將/etc/network/interfaces檔案中上面添加的配置資訊刪除即可。
(3) 再介紹一種方法
1、首先要下載幾個軟體包
sudo apt-get install uml-utilities bridge-utils
2、建立名為tap.sh的檔案,將以下內容複寫到其中
sudo tunctl -t tap0 -u hongjiang #建立一個tap裝置, 名字為tap0 所有者為hongjiang
sudo brctl addbr br0 #建立一個橋接器
sudo ifconfig eth0 0.0.0.0 promisc #使eth0進入promiscuous模式
sudo brctl addif br0 eth0 #將eth0加入br0
#sudo ifconfig br0 192.168.1.12 up #固定IP方式
#sudo route del default
#sudo route add default gw 192.168.1.149 dev br0
sudo ifconfig br0 up #DHCP方式
sudo dhclient br0
sudo brctl addif br0 tap0 #將tap0加入br0
sudo ifconfig tap0 up #啟用tap0
sudo chmod a+rw /dev/net/tun
3、設定許可權
chmod u+x tap.sh
4、拷貝tap.sh到/home/hongjiang/.VritualBox
5、加入啟動項
sudo gedit /etc/rc.local
將 /home/hongjiang/.VirtualBox/tap.sh加入到 exit 0 之前
6、在VirtualBox的VM Setting的network標籤中,選擇"Host interface",並在下面的Interface中填上tap0
7、重啟或手動運行 tap.sh
最後要注意將宿主機與虛擬機器設定在同一網段,否則無法通訊。