首页 > VirtualBox使用技巧:关于undo差分盘与端口映射

VirtualBox使用技巧:关于undo差分盘与端口映射

为什么80%的码农都做不了架构师?>>>   hot3.png

参见VirtualBox UserManual文档

一、undo盘(Differencing images),差异盘的具体实现

使用VirtualBox自带的程序VBoxManage(通常在vbox安装目录下)来完成一下操作。操作如下:

1.创建一个虚拟机及一个虚拟磁盘,可以是任意类型(也可以是已有的虚拟机或磁盘)。

2.挂载这个虚拟磁盘,执行下列命令:

VBoxManage unregisterimage disk Ubuntu_1004_Server.vdi

3.释放掉这个挂载的虚拟磁盘,继续执行

VBoxManage registerimage disk Ubuntu_1004_Server.vdi -type immutable

4.重新挂载上述磁盘,即发现存储一列的磁盘类型已由原来的normal变为immutable类型。

自此转换成功完成!

------------------------------------------------------------------------------

1、转换之后又什么作用呢?

最大的变化是,从此你在这台虚拟机的任何修改及读写都不会保存(注意仅是当前修改的虚拟机,如果你新建另一个虚拟机并挂载此虚拟磁盘的话它仍将变回normal类型)。

2、这样一来,要怎么保存自己修改过的数据呢?你可以将你的修改都保存到备份中,也就是如果你在创建完一个immutable类型的虚拟磁盘后立即为当前虚拟机作一个备份然后以后的操作都在这个备份中进行,这样你就可以将修改的内容都存储到磁盘备份中,下一次启动这台虚拟机的时候也会自动加载最新的备份。

3、这样做有什么目的呢?目的只有一个,就是节省磁盘空间,可以重复利用一个虚拟磁盘创建出多个不同的虚拟机来。

相对于VirtualPC或vmware来说,这个操作比较麻烦,实现的效果也大同小异。



二、实现虚拟机端口映射到主机某端口

1.在完成下面的操作前,请保证你的虚拟机的网络连接方式为NAT(端口映射的目的就是限制外部对虚拟机及服务的访问,因此只有设置为NAT模式才有意义):

对于ubuntu你可以进行如下设置,设置方法请参考:关于Ubuntu的ip设置

使用NAT模式VBox无法保证能对linux自动分配IP地址,因此虽然VBox有DHCP服务器,但是实际操作中发现仍然需要手动去设置网络连接信息,具体设置如下:

  • IP:10.0.2.15
  • 网关(gateway):10.0.2.2
  • 子网掩码(netmask):255.255.255.0
  • DNS:10.0.2.3

#子网掩码和DNS可设置为与主机相同。

#如果有多台使用NAT网络的虚拟机,IP地址可相应设为10.0.3.15、10.0.4.15等等。

(文档中说明DNS应该设置为使用VBox内置的DNS服务器,即10.0.2.3,但测试发现设置此DNS并不能实现地址解析,可能是版本问题。因此还是设置为与主机相同的地址或谷歌的DNS解析地址:8.8.8.8)

当然也可以设置为其他DHCP分配的地址,详细请参考VBox使用文档:9.8节 Fine-tuning the VirtualBox NAT engine

2.同样使用VBoxManage完成上面的操作后虚拟机的Tcp端口80将会映射到主机8080端口

以下内容来自:具体参见第6章Virtual networking第6.3节Network Address Translation (NAT),94页

c: && cd C:Program FilesSunVirtualBox
VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/Protocol" TCP
VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/GuestPort" 80
VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/HostPort" 8080

3.在什么情况下做端口映射呢?

如果你设置虚拟机的上网方式为nat(通过地址转换或dhcp方式获得的内网地址),外网将无法直接访问到你虚拟机的web服务,因此需要进行端口映射将外部对真实主机的某端口访问映射到虚拟机的指定服务端口。

这样在某方面提高了web服务的安全性,无论如何收到攻击的最先是主机,不会先影响到web服务及数据,起到一个隐蔽的效果。

此外,你可以通过映射虚拟机的ssh的22端口到主机从而实现远程登录管理虚拟机。



注:

#e:SUNUbuntu_1004_Server.vdi就是我所创建的虚拟磁盘。

#C:Program FilesSunVirtualBox>是我的VirtualBox VBoxManage.exe程序的绝对路径。

#ubuntu是需要做端口映射的虚拟机名称

#guestweb是自定义的名称,作为虚拟机端口映射的实现名称

转载于:https://my.oschina.net/cwalet/blog/306266

更多相关:

  • 一、业务场景 在rMBP上的VMware Fushion 15.1安装虚拟机,采用一切默认的配置,经过简单几步,我们将得到一个dhcp协议的具有动态ip地址的虚拟机,可以满足绝大多数情况,也很方便很好用。但是有一种业务场景需要考虑到,比如我想创建一个虚拟机,只提供指定的网络服务(比如dns,http服务等),在家里和公司环境都不需要...

  • 1.区分VirtualBox和具体的虚拟机系统 VirtualBox是个虚拟机管理器,而我们真正使用的操作系统,比如CentOS,XP或Mac X OS,都是具体的虚拟机。在VirtualBox中可以安装多个具体的虚拟机系统。 安装完VirtualBox之后,还需要进一步安装具体的虚拟机实例。 2.区分虚拟机容器和光盘镜...

  • 问题:我们在使用Linux虚拟机的时候经常会出现各种各样的问题,其中的一个问题就是Linux虚拟机连不上网,这是我最近经常遇到的问题,下面提供一种方法解决这个问题 Linux网络设置 打开虚拟机依次单击【System】–>【Preferences】–>【Network Connections】,如下图所示 这个时候会弹出一...

  • virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式; (1)基础操作 --- 命令行下管理虚拟机 virsh list             列出当前宿主机上处于运行状态的虚拟机virsh list --all      列出当前宿主机上所有的虚拟机v...

  • Java是通过java虚拟机来装载和执行编译文件(class文件)的,java虚拟机通过命令java option 来启动,-option为虚拟机参数,通过这些参数可对虚拟机的运行状态进行调整. 一、如何查看参数列表: 虚拟机参数分为基本和扩展两类:在命令行中输入java可得到基本参数列表,java -X则可得到扩展参数列表。 注:以...

  • 下面的译文来自ATS官方交流博客中豪哥的一篇英文介绍,碰巧工作中又要用到,为了大家阅读方便,我特此翻译如下,不妥之处请指正: 说明: 慢速磁盘指普通的3.5寸硬盘,快速磁盘指ssd 缓存中间层 当我们考虑ATS的存储时,最原始的设计是支持具有相同容量的多块磁盘,(最适合没有做raid的块设备),由此构建分区,将每个分区...

  • 今天给主机加了一个希捷3TB硬盘,格式化是个头疼的问题,经过网上调研后,发现目前该问题已经被成功解决,现在使用希捷提供的DiscWizard可以成功解决。 下面记录一下我使用DiscWizard格式化2TB以上硬盘的基本过程。 1.首先从希捷官网下载并安装DiscWizard软件。 2.将3TB硬盘安装到主机上,并开启操作系统。...

  • df命令可以查看当前系统磁盘空间的使用情况 命令:df -h du -sh * 查看目录文件暂用磁盘大小 如果磁盘空间不够,需清理磁盘 磁盘速度测试,如果磁盘性能不好,性能测试数据会不准确(读写速度) 命令:dd if=/dev/zero of=/export/ddtest bs=8k count=1000000 oflag=dir...

  • 1. 磁盘的数据结构包括哪些内容?   答:分区,卷,磁盘分区,主分区,扩展分区,逻辑分区,逻辑驱动器,引导分区。 2. 什么是基本磁盘和动态磁盘?    (1) 基本磁盘和旧版本Windows操作系统中使用了相同的磁盘结构。    (2)动态磁盘功能最初发布于Windows2000,用于增强磁盘支持,在磁盘配置变动后需要重启动的次数...

  • 我们在重装好系统Win7系统后有时会碰到需要新建磁盘分区的情况,这时我们再重装系统进行磁盘分区就有些过于麻烦了,其实我们可以利用Win7系统自身的磁盘管理功能来新建一个磁盘分区。下面好系统重装助手就来介绍一下好系统Win7系统电脑磁盘新建分区的方法。 好系统Win7系统电脑磁盘新建分区的方法 1、右键点击我的电脑,选择管理,在计算机管...

  • 您一定是没有开启阿里云ECS后台的端口权限   如果不担心安全问题,直接把所有端口都开通吧,简单粗暴!!!直接在端口范围填写1/65535 注意!有部分Linux CentOS服务器需要重启执行reboot命令后才可以让端口生效,否则依然不能访问...

  • Linux下端口个数 首先简单介绍一下Linux下的端口的函数,当Linux各个主机之间进行通信的时候我们需要将某些数据进程传输,这个时候就需要将数据传入到某一个特定 的主机,这个时候就使用了TCP/IP协议,IP地址是用来标识互联网的唯一主机,端口号用来标识特定主机上面的唯一的网络进程,IP地址+端口号就可以标识互联网中的唯一进程...

  •   写在前面:  使用jvisualvm远程监控tomcat(阿里云ECS),连接是报错:service:jmx:rmi:jndi/rmi:IP:端口//  连接到 IP:端口,网上找了很多资料,未能解决,现已解决,记录下,供参考 本文为本地jvisualvm远程监控阿里云ecs服务器tomcat实践 准备工作: 1.服务器上安装好...

  • 有时候我们需要确定一下某个端口有无开启,有两种方法。 方法 1:查看一个端口有无开启的最简单方法 查看端口有无开启,需要在dos里使用命令来完成。这个命令就是: netstat -ano 这个命令能显示当前电脑有哪些端口正在使用,如下图: 我们可以这样来查看一个端口有无开启: 如果你在上图列表里没有看到某端口,则说明没有开启此端口...

  • 错误原因     tomcat的8005端口号被占用了   解决办法   关闭已有的占用端口   1. cmd—>netstat -an 查看当前开启的端口号   2. netstat -ano 获得端口号的pid码   3. skill -{pid}  杀死端口进程 转载于:https://www.cnblogs.com/lxq...