服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 云和虚拟化 > VirtualBox > 正文

Fedora Core系统virtualbox虚拟机中桥接模式设置教程

时间:2015-01-18    来源:服务器在线    投稿:泡泡    点击:

*虽然是较旧的fedora10的版本,但是可以参考一下。
VitrualBox是sun公司的虚拟机软件,支持多平台,开源免费,犹其对linux平台支持较好。

一、为什么要安装VirtualBox(以下简称VBox)?
第一、win下的有些功能,比如OA系统、网上银行、迅雷、QQ游戏等,在linux下还不能完美替代,而安装双系统又需要不断地重新启动切换,很不方便。这些用VBox在linux下虚拟一个win系统,就可以很好地解决。
第二、在搭建服务器时,需要有网络环境来测试效果。比如在fedora下用VBox虚拟一个win2003,然后再设置成桥接模式。这时相当于你在局域网内有两台真实的服务器,它们在同一子网内但是有不同的IP地址,一台fedora的,一台win2003的,两台服务器都可以与子网内的其他机器通信(包括两台服务器之间),即都可以为子网内的其他机器提供服务,而且在一台物理机器上就能操作这两台服务器,这在测试及学习服务器时是很有帮助的。
第三、VBox是开源免费的,它符合GNU精神。
第四、vbox对主机硬件配置的要求相对较低,安装包的大小也相差20倍左右(vbox只有30m),在linux下,使用vbox速度比VMWare要快。

二、 安装VBox。
1、解决依赖关系。
#yum install kernel-devel (安装内核源码包)
#rpm -q kernel-devel (查看已经安装的内核源码包版本,可能会出现多个)
#uname -r (查看内核版本,是你正在运行的版本)
比较一下,看你正在运行的版本,是不是已经安装的版本里最新的那个,如果不是继续下一步,如果是跳过下一步
#yum update (升级整个系统,升级后重新启动)
#yum install qt (安装qt,qt是一个跨平台的C++图形用户界面库)
#yum install qtpfsgui (Qtpfsgui是一款具有图形界面的图像处理工具,主要功能就是允许用户处理HDR图片(High Dynamic Range,即高动态光照渲染图片))
#yum install gcc (需要gcc编辑环境及其他组件,如果已经安装可以忽略)
2、安装
到http://www.virtualbox.org/wiki/Linux_Downloads,下载Fedora 9 ("Sulphur") i386(10的还没出来,9的一样用)
#rpm -ivh VirtualBox-2.0.6_39765_fedora9-1.i386.rpm
(因为每台主机的环境不一样,所以这里还是有可能出现依赖性问题,请根据提示解决)
----------------------------------------------------------------------------------------------------------------------------------------
[xu@scb9 VirtualBox]$ sudo rpm -ivh --replacepkgs VirtualBox-2.0.6_39765_fedora9-1.i386.rpm
Preparing... ########################################### [100%]
1:VirtualBox ########################################### [100%]
chcon: can't apply partial context to unlabeled file “/usr/lib/virtualbox/VirtualBox”
chcon: can't apply partial context to unlabeled file “/usr/lib/virtualbox/VBoxSDL”
chcon: can't apply partial context to unlabeled file “/usr/lib/virtualbox/VBoxHeadless”
chcon: can't apply partial context to unlabeled file “/usr/lib/virtualbox/vboxwebsrv”
Creating group 'vboxusers'. VM users must be member of that group!
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.
Success!
----------------------------------------------------------------------------------------------------------------------------------------
#service vboxdrv setup (重新编译内核模块)
如果提示都ok就成功了。以后每次升级内核后,都需要执行一次此命令。
然后查看vboxdrv和vboxnet这两个服务是不是自启动,我的是自动设置成自启动的。
#chkconfig --list vboxdrv (查看设置)
#chkconfig --level 2345 vboxdrv on (设置运行级别2345下些服务为自启动)
vbox会自动创建一个vboxusers的用户组,有些帖说需要把用户加入vboxusers的组才能运行,我没有加也可以运行。
#usermod -a -G vboxusers 用户名 (把用户加入vboxusers组)

三、设置虚拟系统
1、打开VBox,一般在程序-系统工具里,也可以用VirtualBox从命令行打开。
管理-全局设置
常规-设置虚拟机的相关文件路径和虑的机的硬盘文件路径,一般是在/home/用户/下,如果需要可以更改。
INPUT-这个是设置在宿主机和虚拟机之间切换鼠标的快捷键,默认是右ctrl,在安装增强功能之前,两台机器的鼠标不能平滑,如果有的用小键盘没有右ctrl的,改一下。
Update-检查更新。
语言-设为中文简体吧。
2、新建-next-输入系统名称、选择系统类型-next-分配内存(如果有2G以上的内存,建议分配512m,分太大了也没用)-next-新建-next-选择动态扩展映像-next-选择映像文件位置并指定名称,再指定虚拟硬盘大小(10G够了吧)-next-finish。然后先退出,再选中新建的虚拟系统,点设置。在常规-基本中可以调整内存及显存的大小,在常规-高级中把光驱勾选并排在硬盘的前面。在光驱中分配一个虚拟光盘,就是win的安装镜像,注意ghost的不行。
其他的软驱、声音、串口、USB、数据空间、远程桌面都先不要启用,有空你再慢慢玩吧。
3、网络。
virtualbox预置了4个网络连接,应该够用了吧。这里只做个示范,多个网络连接原理不变。
在网络连接1中勾选启用网络连接,Attached to 选择Host Inte***ce,MAC地址改为000000000001(主要是比较好记,你自己设个也行),在Inte***ce Name中填写vbox0,确定。注意,这时先不要开始安装。

四、设置桥接模式
网上有很多关于linux下VirtualBox桥接模式的文章,多数是ubuntu下面的,而且很多需要用到脚本,比较麻烦,有些甚至会在重新启动后失效。经过多次测试,终于研究出fedora下较为方便的办法。本例以最简单的单网卡模式说明,如果有多块网卡连接多个网络,照此方法炮制多个桥接口(br)和VBox虚拟接口(vbox)即可。
环境:
配置桥接模式前,一块网卡为eth0,关闭了系统防火墙及iptables、ip6tables、selinux、NetowrkManager服务(先调通,再设置规则)。
关闭NetworkManager服务,启用network服务。
#chkconfig --level 2345 NetworkManager off
#chkconfig --level 2345 network on
#service NetworkManager stop
网关地址为192.168.1.1,主机地址为192.168.1.2,虚拟机地址为192.168.1.3,掩码255.255.255.0,dns地址为192.168.163.4、5。
1、安装桥工具bridge-utils
#yum install bridge-utils
(fedora10好像默认会安装的)
2、建立一个桥接口
#brctl addbr br0 (需要以root权限执行)
(关于brctl命令见附录)
3、在host上添加一个VirtualBox的虚拟接口vbox0,并指定其属主、将其关联到桥接口
#VBoxAddIF vbox0 用户名 br0 (需要以root权限执行)
(这里的属主我是用一个普通用户,如果设成root会不会使以普通用户权限执行的VirtualBox不能访问呢?没试过)
4、把网卡eth0、vbox0插入(形象的说法)到网桥br0
#brctl addif br0 eth0
#brctl addif br0 vbox0
5、新建/etc/sysconfig/network-scripts/ifcfg-br0文件,写入以下内容
# br0
DEVICE=br0
BOOTPROTO=static
TYPE=Bridge
HWADDR=xx:xx:xx:xx:xx:xx (设置为eth0的mac)
IPADDR=192.168.1.2 (设置为原来eth0的ip)
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
ONBOOT=yes
DNS1=192.168.1.4
DNS2=192.168.1.5
6、编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为以下内容
# ****** (这里是厂商及型号,不用改)
DEVICE=eth0
BOOTPROTO=static
TYPE=ether
HWADDR=xx:xx:xx:xx:xx:xx(当然是eth0的mac)
BRIDGE=br0 (这是最主要的,把它插到桥上,不用设ip地址)
ONBOOT=yes
7、建立/etc/sysconfig/network-scripts/ifcfg-vbox0文件,修改为以下内容
# vbox0
DEVICE=vbox0
BOOTPROTO=static
TYPE=ether
HWADDR=00:00:00:00:00:01
BRIDGE=br0 (一样的,插到网桥上)
ONBOOT=yes
8、重新启动network
#service network restart
9、打开VirtualBox,然后运行虚拟系统开始安装,装好后先用右Ctrl键把鼠标跳出,点设备-安装增强功能(包括平滑host与guest之间的鼠标,设置共享、网络等功能),然后把地址设为192.168.1.3,掩码255.255.255.0,网关192.168.1.1,dns192.168.4,试着ping下你的host,再ping下外网。成功了吗?

六、其他
如果在开始虚拟系统准备安装的时候,有提示说没有权限访问/dev/net/tun,可以用chown或chmod更改其属主或权限。
本例为局域网静态IP地址,如果是动态地址,将BOOTPROTO设为DHCP,如果是ADSL接入,在完成上述设置后,虚拟机只能访问宿主机机,需要通过iptables设置nat来接入互联网(iptables的设置在前面已经发过帖了)。

七、附录
1、brctl。brctl是管理虚拟网桥的命令
用法:brctl [选项]
选项:
addbr <虚拟桥接口> 添加虚拟桥接口(add bridge)
delbr <虚拟桥接口> 删除虚拟桥接口(delete bridge)
addif <虚拟桥接口> <实际接口> 将某实际接口添加进已存在的虚拟桥接口中(add inte***ce to bridge)
delif <虚拟桥接口> <实际接口> 将某实际接口从已存在的虚拟桥接口中删除(delete inte***ce from bridge)
setageing <虚拟桥接口> <时间> 设置该虚拟桥接口的老化时间(set ageing time)
setbridgeprio <虚拟桥接口> <级别> 设置该虚拟桥接口的网桥优先级(set bridge priority),生成树算法中的一项指标
setfd <虚拟桥接口> <时间> 设置该虚拟桥接口的网桥转发延迟(set bridge forward delay)
sethello <虚拟桥接口> <时间> 设置该虚拟桥接口的hello time
setmaxage <虚拟桥接口> <时间> 设置该虚拟桥接口的报文最大周期(set max message age),不是很明白,也属生成树算法的概念
setpathcost <虚拟桥接口> <端口> <成本> 设置该虚拟桥接口的的端口成本(set path cost),生成树算法中的一项指标
setportprio <虚拟桥接口> <端口> <成本> 设置该虚拟桥接口的端口优先级(set port priority),生成树算法中的一项指标
show 查看该虚拟桥接口状态(show a list of bridges),其中最主要的信息是虚拟桥接口与实际接口的对应情况
showmacs <虚拟桥接口> 查看该虚拟桥接口的MAC地址缓存(show a list of mac addrs)
showstp <虚拟桥接口> 设置该虚拟桥接口的生成树信息(show bridge stp info)
stp <虚拟桥接口> {on|off} 转换该虚拟桥接口的生成树协议开/关状态(turn stp on/off)
2、VBoxAddIFVBoxAddIF是VirtualBox主机网络接口创建工具。
用法:VBoxAddIF <接口> [<用户名>| -g <组名>] [<虚拟桥接口>]
在主机系统上创建和注册一个永久接口<接口>(<接口>应该从vbox0-vbox99中选取),并设置属主为<用户名>(或者属组为<组名>,需要linux内核支持),关联此接到口网桥<虚拟桥接口>(可选)。

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。


相关内容
最新热点内容