访问VirtualBox中Linux http,mysql服务
  • 一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,如果想让主机访问客户机的http服务或sql服务,应该采用桥接模式(Bridged),这里的桥接模式就如同VMware中的Bridged模式,Host与Guest在局域网(LAN)中的地位是相等的。
       参考virtualbox安装后放在VirtualBox目录中的用户手册文件UserManual.pdf 配置如下:
      1. 在基于Debian 和Ubuntu 的系统上,首先要安装含有建立虚拟网络设备( TAP interfaces ) 的工具uml-utilities 和桥接工具bridge-utils:
      sudo apt-get install uml-utilities
      sudo apt-get install bridge-utils
       为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组(请用你的用户名替换其中的“vboxuser”):
      sudo gpasswd -a vboxuser uml-net
       注意:为了使改动生效,请重新启动你的电脑。
      2. 向你的Debian 或者ubuntu 操作系统描述你要添加的虚拟网络设备,编辑/etc/network/interfaces:
      sudo vim /etc/network/interfaces
       在打开的文件后面添加下面的内容,将虚拟网络接口命名为 “tap0″,指定该接口IP配置方法为手动,并指定使用该接口的用户(请用你的用户名替换其中的 “vboxuser”):
      auto tap0
      iface tap0 inet manual
      up ifconfig $IFACE 0.0.0.0 up
      down ifconfig $IFACE down
      tunctl_user vboxuser
      3. 首次使用需要激活刚才建立的虚拟网络接口和网络桥:
      sudo /sbin/ifup tap0
      sudo /sbin/ifup br0
       这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。
      4. 另外还需要在/etc/network/interfaces 中加入如下内容,建立一个名叫 “br0″ 的桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上:
      auto br0
      iface br0 inet dhcp
      bridge_ports all tap0
       在这里你可以根据自己的网络状况做相应的更改,你可以使网络桥使用静态IP:
      iface br0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      network 192.168.1.0
      broadcast 192.168.1.255
      gateway 192.168.1.1
      5. 让virtualbox 使用这个虚拟网络接口,启动virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中其中一块网卡(通常为 “网络适配器0”),选中“启用网络适配器”,“连接到”后面选 “Host Interface”,选中“接入网线”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字 “tap0″,确定。同样的你也可以使用VBoxManage 的命令行工具(将 “My VM” 换成你的虚拟机名字 ):

      VBoxManage modifyvm “My VM”-hostifdev1 tap0/
       最后,配置主机和虚拟机的网络,使主机和虚拟机在同一个网段,这样主机和虚拟机就成了局域网中地位相同的两台机器了,可以互相访问了。
     
    另外,如果需要SSH链接客户机 那么需要在主机端为客户机建立端口映射。
    建立端口映射的命令格式为:
    VBoxManage setextradata 虚拟主机名称"VBoxInternal/Devices/pcnet/0/LUN#0/Config/服务名称/Protocol" TCP
    VBoxManage setextradata 虚拟主机名称"VBoxInternal/Devices/pcnet/0/LUN#0/Config/服务名称/HostPort" 映射后的端口//这个端口可以自由设定
    VBoxManage setextradata 虚拟主机名称"VBoxInternal/Devices/pcnet/0/LUN#0/Config/服务名称/GuestPort" 现在服务端口
     
    关闭客户机,在宿主机VirtualBox程序文件夹中建立一个批处理文件,编辑命令如下:
     
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 80
     
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssl/Protocol" TCP
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssl/GuestPort" 443
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssl/HostPort" 443
     
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/Protocol" TCP
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/GuestPort" 3306
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/HostPort" 3306
     
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
    VBoxManage setextradata 客户机名"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
    注:上面是开启了80 mysql ssl ssh服务。
    如果在cmd中执行命令 首页要把目录cd为VBoxManage命令所在目录。
     
    Permalink to : http://www.bluek.org/blog/index.php/2010/03/19/159/

     

  • 点这里复制本页地址发送给您QQ/MSN上的好友
  • 300*300广告