查看: 7335|回复: 4
收起左侧

[分享] 主机访问VirtualBox虚拟机服务

 关闭 [复制链接]
107
发表于 2010-7-22 20:18:19 | 显示全部楼层 |阅读模式
本帖最后由 107 于 2010.8.15 10:57 编辑

本文提供了一个简单而实用的技巧:怎样在Ubuntu环境中(主机)访问VirtualBox安装的windows系统(虚拟机)中的服务。


使用虚拟机常常是为了调试服务器,因为在桌面系统安装服务程序,一来容易有安全问题,更重要是容易拖慢系统。


VirtualBox作为一款轻快的开源虚拟机软件,自从被Sun公司收购后,更新相当频繁,功能也逐渐完善,比起VMware动辄几百M的安装文件,VirtualBox几十M的身材而功能丝毫不在VMware之下,而且性能远远高出VMware。


如果把虚拟机作为服务器调试工具,VM默认是使用桥接方式连接虚拟机和主机,安装完后虚拟机直接对主机可见,调试很方便,但是VBox则默认是NAT方式,主机完全访问不了虚拟机。


除了设置VBox为桥接方式外(有点麻烦),另一更加简捷的方式是给虚拟机开端口。这和使用家用路由器映射端口原理是一样的,经过路由器后,局域网内的机器对公网外是不可见的,但是通过添加端口映射,公网就可以访问到内网的机器。


VirtualBox 的User Manual(2.1.4版)在6.4.1介绍了这个方法:使用VBox自带的VBoxManage工具设置端口映射。下面是介绍一个例子:


主机:Ubuntu 8.10

虚拟机:Win XP + phpStudy 套件(Apache、MySQL….),Apache在81端口提供服务。

配置后通过主机的8080访问虚拟机:localhost:8080。

在虚拟机关机情况下,在主机终端执行:

VBoxManage setextradata “xp”“VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/Protocol” TCP

VBoxManage setextradata “xp”“VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/GuestPort” 81

VBoxManage setextradata “xp”“VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/HostPort” 8080


      VBoxManage是VirtualBox的配置工具,setextradata只是其中一个方法。”xp”是虚拟机的名称,而”VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/…”是该虚拟机的一个属性,其中/web/是可以任意设置的名称。如果虚拟机用的虚拟网卡不是默认的PCNet,而是用了Intel PRO/1000,则需把路径中的“pcnet”替换为“e1000”,同样地,如果你为虚拟机配置了n个网卡,则要把/0/换成相应的序列。


      重新运行虚拟机,在Host的浏览器里敲入http://localhost:8080/phpinfo.php,虚拟机里面的php环境显示出来了。注意此时对主机网络内的其他机器,也可以通过本机的8080端口访问到虚拟机的web服务(当然,前提是主机的防火墙没有拦截该端口)。不过无法为主机小于1024端口进行映射(设了之后虚拟机启动报错),这涉及到Unix/Linux的保护措施,可能在root账户下可用。有兴趣的在Windows 平台试试,可能没此限制。


      注意在虚拟机运行的时候这样配置是无效的,必须重新启动一次,休眠(save state)了再开也可以。


      如果想删除这些映射,同样执行以上的命令,而把最后的命令值留空即可,如:

VBoxManage setextradata “xp”“VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/Protocol”


      VBoxManage工具是VirtualBox自带的配置工具,不论是Linux、Mac还是Windows平台下,都有这个工具,使用方法都是一样的。


redwhale
发表于 2010-7-22 21:52:56 | 显示全部楼层
有点意思,不过,似乎比桥接方式还要麻烦。
Lirio
发表于 2010-7-22 23:06:36 | 显示全部楼层
谢谢分享~~~辛苦了~~~不过 重新编辑一下吧  看着好密集哦
dongyiheng
发表于 2010-7-24 11:12:00 | 显示全部楼层
大脑哥再度发威,感谢分享
xifan
发表于 2010-7-29 00:16:51 | 显示全部楼层
感觉这个好有难度哦,现在不玩linux,暂时不看了,呵呵
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-24 15:53 , Processed in 0.124235 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表