不让国产流氓软件作恶的终极手段:虚拟机

(部分资料引用自编程随想博客)

我介绍过国产软件的流氓事迹,但有些流氓软件(QQ,迅雷等)不大能找到合适的替代品,怎么办呢?

用虚拟机!先介绍一下虚拟机:虚拟机(Virtual Machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。虚拟机最初由波佩克与戈德堡定义为有效的、孤立的真实机器的副本。当前包括跟任何真实机器无关的虚拟机用Java编写的程序可以通过对Java运行环境(JRE)软件发命令获得服务,取得期望的结果。透过提供这种服务,JRE起到了虚拟机的作用。程序不必为特定的操作系统或硬件编写。
虚拟机根据它们的运用和与直接机器的相关性分为两大类。系统虚拟机提供一个可以运行完整操作系统的完整系统平台。相反,程序虚拟机为运行单个计算机程序设计,这意谓它支持单个进程。虚拟机的一个本质特点是运行在虚拟机上的软件被局限在虚拟机提供的资源里——它不能超出虚拟世界。

简单来说,虚拟机就是一种软件,它在你的PC中再虚拟出一台PC,而虚拟的PC与真正的PC在功能上没什么差别(单机游戏除外)。
虚拟出的PC的操作系统被称为guestOS,而真实PC的操作系统被称为hostOS。hostOS可以影响到guestOS,但guestOS无论如何都影响不到hostOS,事实上guestOS连hostOS是什么都不知道,guestOS内的软件就更不可能知道hostOS的任何情况了。当把QQ迅雷这种流氓软件扔到干净的虚拟机里之后,他们不管怎么扫描硬盘都无法探测到你在hostOS里放置的隐私了。

虚拟机的功能:◇同时运行多个操作系统
这是最重要的一个特性。
在没有虚拟机的年代,电脑一次只能运行一个操作系统。有了虚拟机之后,一台电脑可以同时运行 N 个不同的操作系统。N 的大小取决于电脑的CPU 是否足够强劲、物理内存是否够大、硬盘是否够大。很多虚拟机软件具有快照(Snapshot)的功能。这个功能比较重要,俺说详细点。
首先,快照是针对某个虚拟系统而言的。当你为某个虚拟系统创建快照,则虚拟机软件会把这个虚拟系统的所有信息(包括内存状态、硬盘状态、等等)都保存起来。当你需要的时候,可以再切换到这个快照。一旦切换到某个快照,虚拟系统就回到当初创建快照的那个状态。
大多数虚拟机软件都支持树状结构的快照,也就是说,你可以在某个快照之上再创建快照。这就好比大伙儿都熟悉的文件目录结构——可以在某个目录内再创建目录,最终形成一个树形结构。
◇对CPU的虚拟
通常而言,只有IT技术人员(尤其是程序猿)会关心虚拟机对 CPU 的虚拟。如果你不是 IT 技术人员,请跳过本小节,看下一个小节——”对内存的虚拟”
CPU是硬件系统的心脏。对虚拟机来说,最重要的功能就是虚拟 CPU 了。对 CPU 的虚拟包括两种:
1. 虚拟同种类型的CPU
2. 虚拟异种类型的CPU

第一种是比较常见的——大部分虚拟机软件都只能模拟同种类型的 CPU。

第二种类型的虚拟机就比较牛B了。比如有些虚拟软件虽然安装在 x86 的硬件系统上,但居然可以模拟各式各样的其它芯片(比如:ARM、SPARC、MIPS、PowerPC、等等)。◇对内存的虚拟

对内存的虚拟也属于常见功能,每个虚拟机软件都具备此功能。
对用户来说,你只需关心:要分配给虚拟系统多大的内存。具体要分配多大的内存,取决于两个因素:
1. 被虚拟的操作系统是什么类型
2. 这个虚拟系统用来干嘛
举几个例子:
假如要安装一个虚拟的 DOS 来玩一些古老的 DOS 游戏,那只需要为它分配几个 MB 的内存;反之,如果要安装一个虚拟的 Linux 用来跑大型的数据库服务,那可能就需要分配几个 GB 的内存。
当然啦,分配给每一个 Guest OS 的内存都不能超过 Host OS 的物理内存大小;并且,同时运行的 Guest OS 的内存总和也不能超过 Host OS 的物理内存大小。
◇对硬盘的虚拟
说完 CPU 和内存,再来说说硬盘。
常见的虚拟机软件可以把一个大文件虚拟成一个硬盘,该分区上的所有数据(包括文件、目录、等)、其实都存储在这个大文件内部。
因为文件是很方便COPY的,所以用一个大文件来虚拟一个硬盘会带来如下的很多好处。
1. 备份
可以把安装好的虚拟系统备份起来。万一你的电脑坏了,换了新电脑,直接用备份的虚拟机拷贝回去,省得再重装系统。
2. 共享
比如公司里某个测试人员搭建了一个虚拟系统用来进行某某软件的测试。那么,其他测试人员只需要把这个虚拟系统的硬盘文件COPY过去,不需要再重新搭建一次。
◇对网卡的虚拟
1. Bridge 模式
在这种模式下,虚拟系统的网卡跟你物理系统的网卡几乎一样。
外部网络对虚拟系统的网卡是可见的;虚拟系统的网卡对外部网络也是可见的。
2. NAT 模式
外部网络对虚拟系统的网卡是可见的;虚拟系统的网卡对外部网络是不可见的。
换句话说,NAT 模式可以起到单向防火墙的效果。这种模式用得最多。
3. Host-Only 模式
外部网络对虚拟系统的网卡是不可见的;虚拟系统的网卡对外部网络也是不可见的。
这种模式相当于双向防火墙的效果。相对而言,这种模式用得较少。当你想搭建一个跟外界隔离的虚拟内部网络,可以使用这种模式。◇对光驱的虚拟
虚拟机软件通常可以用两种方式来虚拟光驱:
1. 把虚拟光驱直接映射到你电脑的物理光驱
2. 把虚拟光驱映射到某个光盘镜像(比如 ISO 文件)
第二种模式用得比较多。如果你习惯了这种模式,基本上就不再需要使用传统的光盘了(省去了买盘刻盘的麻烦)。
比方说要在虚拟系统中安装 Office,你只需要把虚拟系统的光驱指向 Office 的光盘镜像文件。然后,你在虚拟系统里面就可以看到这张光盘了。
虚拟机的应用场景:★运行各种系统的软件
虚拟机最主要的一个功能就是:可以在一台电脑上运行不同的操作系统。不同的操作系统,差异是很大滴。操作系统的差异性导致了很多专有软件——有些软件只有 Windows 才有,有些只有 Mac OS 才有,还有些软件只有 Linux 才有。
举个例子:
很多苹果的粉丝发现苹果系统上翻墙软件奇缺(大部分翻墙软件,比如赛风、自.由.门、无.界,都是 Windows 软件)。便于系统备份
既然虚拟机有利于”硬件迁移”,自然也就有利于”系统备份”。
如今笔记本电脑大行其道,但也带来一个问题:容易弄丢或者容易摔坏。一旦弄丢或摔坏,你免不了又要装系统、装软件。如果你平时就使用虚拟机工作,并且记得把虚拟机镜像备份出来(比如拷贝到另外一个移动硬盘)。一旦失窃或摔坏,恢复起来就很省力。
◇便于灾难恢复
每当装好虚拟系统及常用的几款软件之后,建议你先做一个快照(这个快照对应的是干净的、正常的系统)。以后你在使用的过程中,万一发生了误操作(比如误删了系统文件),直接回退到这个干净的快照,系统自然就恢复了;如果系统莫名其妙坏了、无法启动了,也只需”回退到干净的快照”,即可。◇无需清理系统垃圾
貌似很多网友都会在自己的 Windows 系统上安装一些系统优化的软件。这些软件的一个主要功能是”清理系统垃圾”。
但是像俺这样,主要工作都在虚拟机内完成的人,就没必要”清理系统垃圾”。俺使用的虚拟机,每隔几天就回退到前一个干净的快照。一旦回退快照,系统垃圾自然就没了。
◇使用快照的注意事项
刚才连续举了两种使用快照的场景。顺便说一下”注意事项”。
假如把虚拟机回退到某一个快照(以下称”快照A”),那么从”快照A”之后的所有文件系统的变化(包括新建的文件、修改的文件、删除的文件)都会被复原。
如果你像俺这样,定期回退到前一个干净的快照,有一点务必提醒大家:需要长期保留的文件(尤其是一些个人数据),不要放到虚拟机里。
举个例子:
假如你在虚拟机内用 MSN/Skype 聊天,它会在本地保存聊天记录。一旦你把虚拟机的快照回退,刚刚保存的聊天记录就没了。
解决的办法:
很多虚拟机软件都支持 Host OS 到 Guest OS 的目录映射——把真实系统的某个目录映射到虚拟系统中。也就是说,你在虚拟机中看到的这个目录,其实是存在于外部的真实系统。
通过这个功能,你可以把需要长期保存的文件,存放到这个”映射目录”中。就不会受”快照回退”的影响。俺在后续博文会介绍某几个虚拟机软件的使用教程,到时候会提到如何建立这种目录映射。◇防范流氓软件偷窥
除了刚才提到的”防范黑客”,虚拟机还可以用来保护隐私。
“比如臭名昭著的 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。

那我们该选择什么虚拟机软件呢?在此我向大家推荐一款免费开源的虚拟机软件:VirtualBox (官网:https://www.virtualbox.org/
教程:1.先下载VirtualBox最新版本
2.安装。这个步骤很简单,如果中途弹出安装驱动的提示请选择“继续安装”。部分用户安装完以后需要重启
创建虚拟机
首先运行VirtualBox,然后单击左上角的“新建”
这时候来到了“新建虚拟电脑向导”,直接单击“下一步”
这一步我们要为虚拟机命名,同时选择要安装的系统。正确选择要安装的系统可以让VirtualBox帮助你配置合适的硬件环境
这里选择为虚拟机分配内存的数量。如果你的内存小于512MB的话就保持默认配置,如果在512MB与1G之间可以设置为256MB,如果是1G以上的话可以设置384MB或者更多。
接着开始创建硬盘,选择“Create new hard disk”以后按“下一步”
这时我们来到了“新建虚拟硬盘向导”,直接单击“下一步”
这里我们需要选择创建的磁盘类型。如果你的硬盘不是大的用不完的话请选择“动态扩展”
这里我们要选择存放硬盘镜像的地点以及硬盘镜像的大小。如果你的虚拟机只是用来打包软件的话那么默认的10G空间足够用了
最后确认硬盘信息,点击“完成”
再确认虚拟电脑的信息,点击“完成”
这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机
安装操作系统
选择刚才创建的虚拟机,然后单击上方的“开始”
这时会弹出“首次运行向导”,单击“下一步”
这里选择要通过什么介质安装。如果你要通过光盘安装的话直接在“介质位置”选择你光盘的盘符就行了。这里我们使用光盘镜像安装,选择下面的“虚拟介质”,然后单击右边的文件夹图标
这时我们来到了“虚拟介质管理器”,单击上方的“注册”
选择光盘镜像所在的位置,然后单击“打开”
选择刚才添加的光盘镜像,然后单击“选择”
在这里单击“下一步”继续
最后确认信息,然后单击“完成”
接着我们将进入安装系统的步骤。和正常安装的方法一样,这里不再多做说明了。
安装驱动/配置文件共享
当我们安装好系统就要为其安装驱动了。选择虚拟机窗口上方的“设备”-“安装增强功能”
这时在虚拟机内会弹出安装向导。如果没有弹出的话请运行虚拟电脑光驱里的“VBoxWindowsAdditions.exe”文件
一路下一步,最后会提示重启虚拟机,重启一下驱动就安装好了。
接下来配置文件共享,方便实体机和虚拟机进行文件交换。
右击虚拟机右下角的文件夹图标
弹出“数据空间”窗口。选择右侧文件夹带加号的按钮
这时弹出“添加数据空间”窗口,选择“数据空间位置”-“其他”,然后选择在本地要共享的目录。如果要让这个共享一直保持的话记得要勾选“固定分配”,完成后点“OK”
这里再点OK
接下来打开虚拟机中的网上邻居,选择“添加一个网上邻居”
这时来到“添加网上邻居向导”窗口,单击“下一步”
这里继续单击下一步
在这里单击“浏览”
如图所示选择”VirtualBox Shared Folders”网络下你共享的文件夹,然后单击“确定”
这里我们继续单击“下一步”
给共享的空间命个名吧,完成后单击“下一步”
单击“完成”,大功告成
我们以后要和实体机交换文件的时候在实体机中只需把文件拖到共享的文件夹里即可。在虚拟机中只需打开网上邻居将文件拖进共享的文件夹就可以了。如果要更方面一点的方法的话直接在“我的电脑”里选择“映射网络驱动器”,讲共享的文件夹映射成一个磁盘就行了。
至此,我们的虚拟机就完全的配置好了,可以和正常电脑一样的使用了。
进行网络设置:选择bridge模式或nat模式可以直接联网(需要hostOS联网)