VirtualBox橋接網路的簡單配置,讓虛擬機器直接存取網路

來源:互聯網
上載者:User

(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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.