浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VirtualBox桥接网络的简单配置,让虚拟机直接访问网络 - Dreamcode ~ Stay Hungry Stay Foolish - 博客频道 - CSDN.NET


VirtualBox桥接网络的简单配置,让虚拟机直接访问网络


分类:
Linux


5071人阅读
评论(0)
收藏
举报

 

(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



最后要注意将宿主机与虚拟机设置在同一网段,否则无法通信。

posted on 2012-02-24 13:00  lexus  阅读(2150)  评论(1编辑  收藏  举报