歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VirtualBox橋接網絡的簡單配置 讓虛擬機直接訪問網絡

VirtualBox橋接網絡的簡單配置 讓虛擬機直接訪問網絡

日期:2017/2/28 16:20:18   编辑:Linux教程

(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 inet manual
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

最後要注意將宿主機與虛擬機設置在同一網段,否則無法通信。

Copyright © Linux教程網 All Rights Reserved