Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103696459
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-06 14:28:33

 来源:赛迪网

  测试环境:  

  HOST:HP NC6000笔记本,1.6G的CPU,512M+256M的内存,主机系统为Kubuntu 7.10,采用DHCP获取地址,地址段为10.32.150.*,上外网需要通过代理。

  GUEST:WINXP SP2  

  由于我是在内网,连接Internet比较慢,所以直接下载了VirtualBox 1.5.2的DEB包。安装的时候还依赖libxalan110和libxerces27两个包,我就直接在packages.ubuntu.com上下载了。由于在配置网络过程中还需要bridge-utils和uml-utilities我也一并下载了。   

  一、安装VirtualBox 1.5.2   

  安装过程很简单,直接使用dpkg安装:

  sudo dpkg -i libxalan110_1.10-3_i386.deb

  sudo dpkg -i libxerces27_2.7.0-3_i386.deb

  sudo dpkg -i virtualbox_1.5.2-25433_Ubuntu_gutsy_i386.deb

  sudo dpkg -i bridge-utils_1.2-1build1_i386.deb

  sudo dpkg -i uml-utilities_20060323-3ubuntu2_i386.deb  

  安装完成后,在Kubuntu的开始菜单的系统里面有可以看到VirtualBox了。  

  二、安装操作系统   

  然后我是从硬盘镜像安装的,所以在CDROM的配置时直接选择了在硬盘上的WINXP镜像,然后直接将网络配成NAT了。安装的时候我分了4G给虚拟机,内存分配了512M。   

  三、网络配置   

  VirtualBox的网络配置分为3种方式:NAT,Host Interface,Internal Network;我试了前两种方式。   

  NAT

  这种方式非常简单,简单得在某种情况下让你感觉不到这种方式的存在。只要在“Setting/Network”里将“Attach to”选择NAT就行了。然后虚拟机启动后Guest机采用DHCP的方式从VirtualBox虚拟的DHCP服务器上获取IP地址。  

  不过这种方式有个问题, NAT地址池的地址不能修改,启动系统用ipconfig /all可以看到网关就是10.0.2.2,同时在主机上又不能手工添加路由,十分郁闷。而我们公司刚好也是使用10.*.*.*的网段,结果是我访问外网可以,但是访问内网反而不行了。所以,只能尝试使用第二种方式。   

  Host Interface

  这种方式搞得我比较郁闷,我按照VirtualBox网站上提供的UserManual看了半天,试了几次,总是不行。后来在网上搜了半天,满世界都是leemars的那片文章在转来转去,且还用到了iptables,我对这个东东又不太熟,搞了半天还是不行。后来又发现Alexey Eremenko的《Using VirtualBox: the new era User-Friendly x86 PC Virtualizer》,照着一试还真行了,但是这种方法都是手工在执行命令,虽然可以写成脚本执行也感觉挺麻烦的,就想着能不能像UserManual一样直接修改/etc/network/interfaces文件搞定,然后就对照着这篇文章,发现UserManual里没有注意的几点,下面是我的配置步骤:  

  i.设置/dev/net/tun的读写权限,这个东东早晚都得做,就早做了,并且只用一次就行了

  chmod 0666 /dev/net/tun  

  ii.生成tap0接口

  在/etc/network/interfaces中加入如下内容(username为使用VirtualBox的用户名):

  auto tap0

  iface tap0 inet manual

  up ifconfig $IFACE 0.0.0.0 up

  down ifconfig $IFACE down

  tunctl_user username   

  这一步对应的操作为:

  $sudo tunctl -t tap0 -u username

  $sudo ifconfig tap0 0.0.0.0 up   

  iii.生成br0桥

  在/etc/network/interfaces中加入如下内容:

  auto br0

  iface br0 inet dhcp

  bridge_ports eth0 tap0

  up ifconfig $IFACE up   

  这一步对应的操作为:

  $sudo brctl addbr br0

  $sudo brctl addif br0 eth0 tap0

  $sudo dhcpcd br0

  $sudo ifconfig br0 up   

  如果手工执行时,可能会报没有dhcpcd命令,需手工安装:

  $export http_proxy=http://代理服务器:端口

  $sudo apt-get install dhcpcd   

  iv.确保tap0和eth均未配置IP地址

  这一步实际上就是把eth0的网口的地址清掉,将/etc/network/interfaces中的eth0段改为如下内容即可:   

  iface eth0 inet manual

  up ifconfig $IFACE 0.0.0.0 up  

  这一步对应的操作为:

  $sudo ifconfig eth0 0.0.0.0 up

  v.现在打开VirtualBox的GUI,选中你的虚拟机,在“Setting/Network”中修改“Attached to”为“Host Interface”,然后在“Interface name”中输入tap0即可。  

  vi.现在启动虚拟机,我的Windows XP已经工作正常了,内网已经可以正常访问了,然后进行代理服务器设置,工作正常!  

  四、Windows与Linux文件共享  

  在VirtualBox的GUI中选择虚拟机,“Setting/Shared Folders”,添加你要共享的目录,然后在Windows中,打开我的电脑,在“工具/映射网络驱动器”的“文件夹”中输入“\\vboxsvr\你的共享文件夹名”(无括号),驱动器可以自己选择,确定即可。   

  我把我原来Windows的几个盘全部共享过来了,呵呵,就像在直接安装的Windows系统下一样使用。由于Kubuntu 7.10已经可以直接写NTFS格式的磁盘,我甚至可以直接将相关文档保存到我的本地硬盘了。   

  五、其他   

  VirtualBox还有一个小功能,可以在Guest和Host之间共享剪贴板,所以在Host上拷贝的东东,可以直接粘贴到Guest上,反之依然。

阅读(579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~