热门标签 | 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内核支持),关联此接到口网桥<虚拟桥接口>(可选)。

推荐阅读
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • AcetoneISO:Ubuntu Linux下的全能虚拟光驱工具
    AcetoneISO 是一款功能强大的虚拟光驱软件,适用于 Linux 和 Mac 系统。它支持多种映像文件格式的挂载和转换,并提供丰富的文件管理功能。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • Ubuntu 14.04 系统安装后网卡名称修改方法
    本文介绍了在安装 Ubuntu 14.04 Server 版本后,如何将默认的网卡名称从非 eth 格式修改为传统的 eth 格式,并提供了详细的步骤和示例。 ... [详细]
  • Linux 数据流重定向详解
    本文详细介绍了 Linux 系统中的数据流重定向技术,包括标准输出(stdout)、标准错误输出(stderr)和标准输入(stdin)的重定向方法,以及其在实际应用中的具体示例。 ... [详细]
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社区 版权所有