热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

*虽然是较旧的fedora10的版本,但是可以参考一下。VitrualBox是sun公司的虚拟机软件,支持多平台,开源免费,犹其对linux平台支持较好。一、为什么要安装VirtualBox(以下简称VBox)?第一、win下的有些功能,比如OA系统、网上银行、迅雷、QQ游戏等,在linux
*虽然是较旧的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 Interface,MAC地址改为000000000001(主要是比较好记,你自己设个也行),在Interface 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文件,修改为以下内容
# xxxxxx (这里是厂商及型号,不用改)
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 interface to bridge)
delif <虚拟桥接口> <实际接口> 将某实际接口从已存在的虚拟桥接口中删除(delete interface 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内核支持),关联此接到口网桥<虚拟桥接口>(可选)。

推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
author-avatar
手机用户2502883445
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有