当前位置: 首页 > news >正文

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

(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

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

相关文章:

  • 定义自动编号字段的初始值和步进值
  • Ubuntu linux 内核升级后系统无声的解决办法
  • 网上最盛行的警世狂言
  • VS2005使用DEF文件来生成DLL与Lib
  • 常用新闻组
  • VC2005 + SQLite 3.6.3 编译、测试开发手记
  • 好久没有来这里写Blog,主要原因是太慢了,而且有的时候总是打不开。
  • 在ASP.NET 2.0中实现数据的绑定
  • Android开发-面向对象的数据库Db4o
  • 实现千万级数据的分页显示
  • Linux 下 crontab 格式详解
  • UltraWebGrid根据单元格内容禁用checkbox列
  • Linux 指令篇:日期时间排程--crontab
  • liferay的contextpath问题
  • 与领导喝酒的18个应紧记的诀窍
  • [NodeJS] 关于Buffer
  • 【node学习】协程
  • CSS魔法堂:Absolute Positioning就这个样
  • JAVA SE 6 GC调优笔记
  • JSONP原理
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Travix是如何部署应用程序到Kubernetes上的
  • 从零开始学习部署
  • 基于webpack 的 vue 多页架构
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 理解在java “”i=i++;”所发生的事情
  • 使用common-codec进行md5加密
  • 跳前端坑前,先看看这个!!
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我是如何设计 Upload 上传组件的
  • 学习HTTP相关知识笔记
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Android开发者必备:推荐一款助力开发的开源APP
  • 仓管云——企业云erp功能有哪些?
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #100天计划# 2013年9月29日
  • (+4)2.2UML建模图
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (九)信息融合方式简介
  • (十)c52学习之旅-定时器实验
  • (一)Dubbo快速入门、介绍、使用
  • (转)winform之ListView
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET MVC之AOP
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET多线程执行函数
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @GlobalLock注解作用与原理解析