VirtualBox

  • 部分转载自:VirtualBox的四种网络连接方式

快捷键

  • Ctrl + G 全句设置
  • Ctrl + I 导入虚拟电脑
  • Ctrl + E 导出虚拟电脑
  • Ctrl + D 虚拟介质管理
  • Ctrl + Q 退出
  • Ctrl + S 设置
  • Ctrl + L 日志
  • Ctrl + P 暂停
  • Ctrl + T 重启
  • Alt 定位到菜单栏
  • Tab 在下面的三个框里面切换

控制

  • Host + Home 定位到菜单栏
  • Host + Q 退出
  • Host + H 正常关机
  • Host + N 系统运行状态
  • Host + T 系统快照,备份
  • Host + P 暂停/开始
  • Host + R 重启
  • Host + S 设置
  • Host + Del Log Out
  • 鼠标集成 鼠标只能在虚拟机了/可以出来

视图

  • Host + L 无缝模式
  • Host + F 全屏
  • Host + C 自动缩放模式 会去掉菜单栏,状态栏
  • Host + E 屏幕截图

相关设置

双向拖放、复制、鼠标集成

  • Host + Home -> 设备 -> 拖放 -> 双向
  • Host + Home -> 设备 -> 共享粘贴板 -> 双向
  • Host + Home -> 热键 -> 鼠标集成

解决不能全屏加鼠标移动卡顿

  • 将VirtualBox安装目录下的VBoxGuestAdditions.iso挂载自己的Ubuntu系统中
  • 运行其中的VBoxLinuxAdditions-x86.run
  • reboot

VirtualBox的四种网络连接方式

  • a. NAT 网络地址转换模式(Network Address Translation)
  • b. Bridged Adapter 桥接模式
  • c. Internal 内部网络模式
  • d. Host-only Adapter 主机模式
  • VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。
NAT Bridged Adapter Internal Host-Only Adapter
虚拟机->主机
主机->虚拟机
虚拟机->其他主机
其他主机->虚拟机
虚拟机之间 同网络名下可以

四种模式介绍

NAT

  • NAT:Network Address Translation,网络地址转换
  • NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:
  • Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。
  • Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。
  • 虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
  • 虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
  • 虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
    IP:10.0.2.15
    网关:10.0.2.2/10.0.2.0
    DNS:10.0.2.3/...
  • 一台虚拟机的多个网卡可以被设定使用 NAT, 第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(IP Address)是10.0.2.15,网关(Gateway)是10.0.2.2,域名服务器(DNS)是10.0.2.3,可以手动参考这个进行修 改。
  • NAT方案优缺点:
  • 笔记本已插网线时:虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后(最后有说明),主机可以访问虚拟机上的服务(如数据库)。
  • 笔记本没插网线时:主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)

Bridged Adapter(网桥模式)

  • 网桥模式,你可以这样理解:
  • 它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
  • 网桥模式下的虚拟机,你把它认为是真实计算机就行了。
  • 虚拟机与主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
  • 虚拟机于网络中其他主机的关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
  • 虚拟机与虚拟机的关系:可以相互访问,原因同上。
  • IP:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。
  • 笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。
  • 笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。
  • 这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。

Internal(内网模式)

  • 内网模式,顾名思义就是内部网络模式:
  • 虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
  • 虚拟机与主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。
  • 虚拟机与网络中其他主机的关系:不能相互访问,理由同上。
  • 虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。
  • IP:VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。
  • 笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信
  • 这种方案不受主机本地连接(网卡)是否有红叉的影响。

Host-only Adapter(主机模式)

  • 主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
  • 我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
  • 虚拟机与主机的关系:默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
  • 虚拟机与网络主机的关系:默认不能相互访问,原因同上,通过设置,可以实现相互访问。
  • 虚拟机与虚拟机的关系:默认可以相互访问,都是同处于一个网段。
  • 虚拟机访问主机,用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1 ,不管主机“本地连接”有无红叉,永远通。
  • 主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101 ,不管主机“本地连接”有无红叉,永远通。
  • 虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)
  • 补充:我刚装上VirtualBox的时候所有的网络连接方式都试过了,但虚拟机和虚拟机之间就是不能相互访问,Ping都Ping不通,我在想难道VirtualBox的网络设置有这么复杂吗,后来想到是不是Windows XP的防火墙的问题,关闭之,一切就正常了!

灵活应用(模拟出来一个一台主机,监控一个局域网上网情况的网络环境)

  • 通过对以上几种网络模式的了解,我们就可以灵活运用,模拟组建出我们所想要的任何一种网络环境了。
  • 首先我开启了两台虚拟机vhost1与vhost2,当然如果硬件允许,我同样可以再增加vhost3、vhost4……
  • 所有的vhost我都设置成internat内网模式,网络名称为intnal,网关为192.168.56.100,意思就是通过 192.168.56.100网卡上网。
  • 其中有一台vhost1我设置为双网卡,一张为内网模式(192.168.56.100),一张为网桥模式 (192.168.1.101)。
  • 两张网卡设置双网卡共享上网,虚拟机之间为局域网,其中有一台虚拟机vhost1通过与外网相连,所有局域网中的虚拟机又通过vhost1来实现上外网。
  • 这样vhost1就可以监控整个虚拟机局域网上网情况了。

NAT 设置端口映射

  • 你可以设置一个虚拟机的服务(比如 WEB 服务),通过使用命令行工具 VboxManage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要 使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 NAT 例子,在虚拟机上连接到一个 ssh 服务器,需要下面的三个命令:
    VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol' TCP
    VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort' 22
    VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort' 2222
  • 说明:VboxManage 是一个命令行程序,请查询你的 VirtualBox 安装目录,’Linux Guest’ 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。
  • 又比如,我在虚拟机 debian 上安装了 apache2 服务器,使用 80 端口,映射到主机的 80 端口。使用下面的命令。
    'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol' TCP
    'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort' 80
    'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort' 80
  • 注意:要使设置生效,请关掉 VirtualBox 再运行虚拟机,我把 VirtualBox 安装在 winxp 上,在虚拟机中安装 debian 4.02r ,虚拟机名是 debian ,并安装了 apache2 php5 mysql-server ,在主机上用IE浏览 http://localhost,成功转发到虚拟机 debian 的 apache2 web 服务器上。

Virtualbox虚拟机网络配置(NAT + Host-only - Bridged)

  • 日常工作中,常常会用虚拟机,在里面安装Server,搭建服务端环境供开发调试,这种使用场景一般都需要虚拟机能够正常访问外部网络,同时宿主机必须可以访问虚拟机。在Virtualbox中,虚拟机访问外部网络一般是使用配置起来最简单的NAT模式,但纯NAT模式下,宿主机不能访问虚拟机,必须使用Bridged或者Host-only模式才可以。在这两个模式下,虚拟机都可以获得一个可用的IP地址,宿主机通过该IP地址即可访问虚拟机。
  • 在Bridged模式下,虚拟机和宿主机处于同等地位,就像是一台真实主机一样存在于局域网中,可以分配到一个网络中独立的IP,所有网络功能都和在网络中的真实机器一样,网络中的其它机器(包括宿主机)也可以访问到这台虚拟机。同时,如果网络断开,即便虚拟机和宿主机其实是在一台物理机器上,宿主机也不能够访问虚拟机。而Host-only模式,可以理解为Virtualbox在宿主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,虚拟机可以通过该网卡IP访问宿主机,同时Virtualbox提供一个DHCP服务,虚拟机可以获得一个内部网IP,宿主机可以通过该IP访问虚拟机。如果单纯使用Host-only模式,则虚拟机不能连接外部公共网络。
  • 在有外部网络的情况下,假如需要将虚拟机开放给网络中的其它机器访问,比如让同事连上虚拟机做开发测试等工作,那么就可以直接使用Bridged模式,该模式也仅需要占用公共网络中的一个IP地址,但日常使用环境中,有时候不一定有公共网络可以用,假如使用Bridged模式,则虚拟机连不上,开发工作也做不了,此时Host-only模式就是一个不错的选择,若是再配合NAT模式,则外部公共网络可用时,虚拟机也可以访问外部公共网络。
  • 下面简单介绍下使用这几个模式时需要做的相关配置。
  • 首先在Virtualbox中的全局配置(呼出快捷键ctrl+g)界面的网络配置中,点击右侧添加按钮,增加一个Host-only网络。查看该网络的详情,可以看到:
  • 可以看出,该网络是192.168.56.0,可供分配使用的IP地址是192.168.56.101 - 192.168.56.254。
  • 打开虚拟机的网络配置,将网卡1的连接方式选为“网络地址转换(NAT)”,网卡2的连接方式选为“仅主机(Host-only)适配器”,如下图所示
  • 保存后,启动虚拟机,虚拟机以Ubuntu server 12.04为例,打开配置文件 /etc/network/interfaces 加入如下配置:
    # The loopback network interface
    auto lo
    iface lo inet loopback
    #####
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
    #####
    # Virtualbox Host-only mode
    auto eth1
    iface eth1 inet static
    address 192.168.56.101
    netmask 255.255.255.0
    #network 192.168.56.0
    #####
    # Virtualbox Bridged mode
    #auto eth1
    #iface eth1 inet static
    #address 192.168.0.190
    #netmask 255.255.255.0
    #gateway 192.168.0.1
  • 该配置将虚拟机在内部网络中的IP地址设置为静态分配(192.168.56.101),方便宿主机在hosts中绑定该IP访问虚拟机。保存配置后,执行如下命令重启网络服务:
  • $ sudo /etc/init.d/networking restart
  • 使用ifconfig查看一下是否有eth1的网络了,如果不行,就重启一下呗
  • 即可实现虚拟机使用NAT通过宿主机来正常访问外部网络,同时因为使用了Host-only模式,宿主机可以通过虚拟机在内部网络的IP地址访问虚拟机,即使外部网络不可用也不影响宿主机对虚拟机的访问。

设置Ubuntu虚拟机共享文件夹

  • 加载/usr/share/virtualbox中的VBoxGuestAdditions.iso
  • 安装
  • Host + S -> Shared Folders -> New -> Folder Path: /media/coder352/文档/Share && Folder Name: Share && Make permanent -> Ok
  • 进入Ubuntu
  • sudo mkdir /mnt/Share
  • sudo mount -t vboxsf Share /mnt/Share

设置Windows虚拟机共享文件夹

  • 加载/usr/share/virtualbox中的VBoxGuestAdditions.iso
  • 在Windows系统中进行安装
  • Host + S -> Shared Folders -> New -> Folder Path: /media/coder352/文档/Share && Folder Name: Share && Make permanent -> Ok
  • 我的电脑 -> 工具 -> 映射网络驱动器 -> 驱动器: D && 文件夹: \vboxsvr\Share (刚才设置的名字)

Ubuntu系统升级后打不开VirtualBox

  • sudo apt-get –reinstall install virtualbox-dkms
  • 可能第一次安装有错误,再装一次,或者
  • sudo /etc/init.d/vboxdrv setup

你可能感兴趣的:(VirtualBox)