编程随想 | 扫盲操作系统虚拟机[2]:介绍各种应用场景

  前一篇帖子介绍了虚拟机的基本概念。今天来介绍一下,操作系统虚拟机可以用于哪些场合。为了打字省力,本文后续部分用”虚拟机”指代”操作系统虚拟机”。

★用于系统管理

◇便于硬件迁移

  如今硬件升级换代很快,某些网友时不时就会换新电脑。换了新电脑,可能要重装系统;就算新电脑随机带了操作系统,你也免不了要装一大堆自己用的软件。干这种事情,往往繁琐且费时费力。而虚拟机可以帮你免去这类烦恼。
  比如俺,每次换电脑,都非常省事儿。因为俺所有的电脑操作(包括翻墙上网、公司事务、写程序、写博客、等等)全都是在虚拟机内完成;俺平时用的软件(除了虚拟机软件本身),都装在虚拟系统内。所以捏,每次升级电脑,俺只需要安装 Host OS(宿主系统)和虚拟机软件。然后再把一大堆虚拟机镜像 copy 过去,就 OK 了。

◇便于系统备份

  既然虚拟机有利于”硬件迁移”,自然也就有利于”系统备份”。
  如今笔记本电脑大行其道,但也带来一个问题:容易弄丢或者容易摔坏。一旦弄丢或摔坏,你免不了又要装系统、装软件。如果你平时就使用虚拟机工作,并且记得把虚拟机镜像备份出来(比如拷贝到另外一个移动硬盘)。一旦失窃或摔坏,恢复起来就很省力。

◇便于灾难恢复

  前一篇帖子提到虚拟机的快照功能。这个功能有点类似于 Windows 的”系统还原”,但是比”系统还原”更安全,也更好用。因为”系统还原”功能只能帮你还原部分文件(主要是系统文件),而虚拟机快照可以帮你复原虚拟操作系统中的所有文件(包括内存状态)。
  有了这么牛叉的快照功能,可以帮你从误操作的灾难中恢复出来。
举例说明:
  每当装好虚拟系统及常用的几款软件之后,建议你先做一个快照(这个快照对应的是干净的、正常的系统)。以后你在使用的过程中,万一发生了误操作(比如误删了系统文件),直接回退到这个干净的快照,系统自然就恢复了;如果系统莫名其妙坏了、无法启动了,也只需”回退到干净的快照”,即可。

★用于信息安全领域

◇防范黑客入侵

  关于这招,请看《如何防止黑客入侵[7]:Web相关的防范 (下)》一文的”多虚拟机方案”。这里就不再浪费口水了。

◇试用危险的软件

  有时候你在网上看到某个软件(比如某个小游戏)很不错,很想安装了体验一下。但是这个软件可能来路不明,你不晓得这个软件本身是否安全可靠。
  咋办捏?
  俺通常会留一个干净的虚拟机用来进行”软件试用”。这个虚拟机事先做了一个干净的快照。在这个虚拟机里面,想装啥软件都可以(流氓软件、带毒的软件,都无所谓)。等到把这个软件玩腻了,就回退到事先做好的那个干净的快照。一旦回退快照,再流氓的软件都会从眼前消失。

◇搭建蜜罐

  所谓的”蜜罐”(洋文叫”honeypot”),是故意用来吸引攻击者的一个系统。
  在安全行业中,有时候会用虚拟机来搭建”蜜罐”。”蜜罐”有很多种用途,有些比较注重安全的企业或机构,可以通过蜜罐进行黑客入侵的早期预警。有些杀毒软件厂商则利用蜜罐用来收集病毒样本。
  更多的介绍可以看维基百科(在”这里“)

★用于隐私保护

  严格来说,”隐私问题”也属于”信息安全”的范畴。不过捏,因为这几年”隐私问题”比较突出,俺单独列一个章节来介绍。

◇防范流氓软件偷窥

  除了刚才提到的”防范黑客”,虚拟机还可以用来保护隐私。
“比如臭名昭著的 QQ 会偷偷扫描你的硬盘,窥探你的隐私。由于 QQ 的用户群太大了,你不用它还不行(像俺这种从来不用 QQ 的天朝网民,估计不到1%)。
  咋办捏?
  办法之一是把 QQ 安装到虚拟机系统,然后把你个人的隐私(比如裸照)放到外部的真实系统。这样一来,即使 QQ 偷窥,也看不到你的隐私。
  这招不光能用来对付”疼逊”,也可以用来对付其它流氓软件(比如”逊雷”)。

◇用于多人共用的电脑

  有些网友的电脑会被家人共用——你的MM或老婆可能会拿你的电脑上网;如果你有个已经上学的小孩,他/她可能也会拿你的电脑上网。当多人共用你的电脑,隐私问题就浮现出来了。
  举个例子:
  假如你上黄色网站,多半不希望让家人知道。不幸的是,你的家人因为用了你的浏览器,可能无意中会看到你的浏览历史……一旦发生这种不幸,轻则名誉受损;重则引发家庭纠纷。
  某些网友会建议说:每次上网后,清理一下浏览器历史记录;还有的同学会建议说:使用浏览器的隐私模式。
  但是俺觉得,这些招数都不够彻底。以”隐私模式”为例。虽然”隐私模式”不会在浏览器中留下上网的历史痕迹。但是!如果你下载某个黄色视频或黄色图片在本地观看,那”隐私模式”可就帮不了你喽。由此可见,要想彻底避免隐私外泄,还是得用虚拟机。具体做法如下:
  装一个虚拟机专门用来上”限制级的网站”。一旦下载了限制级的内容,也只保存在这个虚拟机内。通常来说,你的家人多半不熟悉 IT 技术,可能连”虚拟机”都没听说。所以,你的浏览历史,以及你保存下来的限制级内容,自然不易被发现 :)

◇用于隐匿自己的IP

  这种场景比较少见。一般来说,只有像俺这种”反党人士”,才有这种需求。
  举个例子:
  你想通过 QQ 群发一些”不和谐的言论”。但是大伙儿应该都知道,”疼逊”是朝廷的走狗,他会帮朝廷追查”反动言论的始作俑者”。因为 QQ 服务器会记录每一个 QQ 用户的 IP 地址。一旦发现某个用户发送煽动性言论,官府的捕头直接根据 IP 地址就可以定位到你的位置。
  那该咋办捏?
  某些天真的网友会想,如果为 QQ 设置代理,让 QQ 客户端通过代理联网;那么 QQ 服务器看到的就是代理的 IP 而不是本人的 IP。
  但是捏,这种做法不一定保险。即使你给 QQ 客户端设置代理,说不定 QQ 还是会偷偷地、(不经过代理)直接连接 QQ 服务器。如果是这样的话,那你的真实 IP 还是会暴露。
  正宗的做法如下:
  装2个虚拟机系统(简称 A 系统 和 B 系统)。A 系统装翻墙软件,配置双网卡,分别用 NAT 模式和 Host-Only 模式。B 系统装 QQ,单网卡,配置为 Host-Only 模式。然后配置 QQ 的代理,让 QQ 的代理指向 A 系统的翻墙软件。由于 B 系统的网卡是 Host-Only 模式,QQ 客户端即使想偷偷地直连服务器,也办不到。所以,QQ 只能老老实实地通过 A 系统中转。由于 A 系统的中转是通过翻墙代理,最终 QQ 服务器看到的是翻墙代理的 IP,看不到你本人的真实 IP。
  顺便说一下,如果你对安全性的要求比较高,可以在 A 系统中使用多重代理,具体的操作请看俺之前的博文。用了多重代理,朝廷几乎没可能从网络层面追踪你的真实 IP。
  光这么说,可能比较抽象,某些网友未必能搞懂。有空的话,俺会在《如何隐藏你的踪迹,避免跨省追捕》系列中,再补上一篇,详细介绍一下这个”双虚拟机”的招数。

★用于软件开发和测试

  考虑到俺博客的读者中,还是有不少软件从业人员。最后再介绍一下虚拟机在软件开发和测试中的应用。

◇搭建开发环境

  比方说你的工作是编写 Linux 平台的程序,但是你平时又不习惯用 Linux 而喜欢用 Windows。
  咋办捏?
  你可以在 Windows 系统中安装一个 Linux 的虚拟机。当写程序或调试程序时,切换到这个虚拟机中,其它时间照常用 Windows。

◇搭建测试环境

  类似于开发人员,测试人员也可以通过虚拟机来搭建测试环境。根据俺的经验,虚拟机对测试人员的帮助要大于对开发人员的帮助。虚拟机能给测试带来如下好处:

1. 搭建多样化的测试环境
  假如你的工作是测试某个软件的 Web 界面。因为要考虑兼容性,你需要分别用不同版本的 IE 来测试它。但是不同版本的 IE 又不能装在同一个 Windows 系统里。
  咋整捏?
  解决之道就是:装若干个 Windows 虚拟机。有的虚拟机装 IE6,有的装IE8,有的装IE9……以此类推。这样一来,你就可以在一台电脑上,测试多种版本的 IE 浏览器。

2. 确保测试环境的一致性
  在没有虚拟机的时代,测试人员往往是在自己的操作系统中进行测试。由于每个测试人员的操作系统可能会有差异(比如:安装的软件不同、升级的补丁不同、等等),这种环境差异会对测试结果造成干扰。比如同一个 bug 张三测试出来,而李四却无法复现。
  有了虚拟机之后,可以让同一个测试组的人员使用同一个虚拟机镜像做测试环境。如此一来,可以绝对保证测试环境的一致性。

3. 确保测试环境的纯洁性
  在没有虚拟机的时代,测试人员每次拿到新版本的软件之后,需要先卸载旧版本,然后再安装新版本。但是捏,一旦旧版本没卸载干净(比如在系统目录还遗留了旧的动态库),可能会引发很多诡异的问题。
  有了虚拟机之后,测试人员可以先做一个干净的虚拟机快照。测试人员每拿到新版本,先把测试用的虚拟系统回退到这个干净的快照,然后再安装。如此一来,可以保证待测的软件总是安装在一个干净的环境中,避免干扰因素。

★结尾

  对于虚拟机,上面这些招数算是比较常用的。还有一些应用场景,因为比较冷门,俺就不在这里介绍了。
  本系列的下一篇,介绍一下 VMware 的安装和使用。

回到本系列的目录

本文由自动聚合程序取自网络,内容和观点不代表数字时代立场

墙外新闻实时更新 欢迎订阅数字时代



2012年11月7日, 11:15 上午
分类: 公民博客