如果你平时主要使用 Windows 或 macOS,但后续实验需要 Linux 系统、专用测试工具或一个相对独立的操作环境,你并不需要专门买一台新电脑,也不需要把现有硬盘格式化后安装双系统。我们可以借助虚拟化技术,在当前操作系统内部运行另一套完整系统。
这样做的最大好处是:实验环境可以单独保存、随时恢复,也不会轻易影响你日常使用的主力电脑。
为什么需要虚拟机
安全实验常常涉及安装工具、修改配置、尝试可疑程序,甚至可能导致系统无法正常启动。如果直接在自己的 Windows 或 macOS 系统中操作,风险会比较高。
虚拟机可以提供一个独立的“沙盒”环境:
- 你可以在里面自由测试软件;
- 即使系统被误删、崩溃或配置错误,也不会直接破坏宿主机;
- 实验前后可以通过快照快速恢复环境;
- 不同课程实验可以放在不同虚拟机中,避免相互干扰。
对初学者来说,虚拟机是一个比较稳妥的练习环境。
什么是虚拟机
虚拟机(Virtual Machine,简称 VM) 是由虚拟化软件模拟出来的一台“独立计算机”。这台计算机有自己看似独立的操作系统、硬盘、内存和网卡,但这些资源最终都运行在你真实的物理电脑上。
这里的虚拟化软件通常称为 Hypervisor,也就是虚拟机管理程序。你可以把它理解为一层负责管理虚拟机的系统,它决定虚拟机能使用多少 CPU、内存、网络和磁盘资源。
几个常见概念:
- 宿主机(Host):承载虚拟机的物理电脑,以及电脑本身安装的操作系统。例如你的 Windows 11 笔记本。
- 客户机(Guest):运行在虚拟机内部的操作系统。例如你在 VirtualBox 中安装的 Kali Linux。
- 虚拟资源:虚拟机管理程序会为客户机提供虚拟 CPU、虚拟内存、虚拟网卡和虚拟硬盘。它们看起来像独立硬件,但实际仍由宿主机的真实硬件支撑。
需要特别注意:虚拟机的资源来自宿主机。如果宿主机物理内存总共只有 16 GB,而你给虚拟机分配了 8 GB,那么宿主机自身可用的内存会相应减少。虚拟机不是凭空产生性能,它仍然依赖你的电脑硬件。
常见且易于上手的个人桌面虚拟机工具有:
- VirtualBox:开源免费,适合学习和实验;
- VMware Workstation:功能成熟,常用于本地虚拟环境管理。
虚拟磁盘与快照
虚拟机和普通电脑类似,也有“硬盘”和“系统分区”。不过在宿主机看来,虚拟机里的整个系统文件通常只是一个普通大文件。
虚拟磁盘文件
虚拟机中的“C 盘”或“根分区”,在宿主机中可能只是一个 .vdi、.vmdk 等格式的磁盘镜像文件。
你在虚拟机内部创建、修改或删除文件,大多数情况下都被限制在这个虚拟磁盘文件内部。也就是说,虚拟机里的操作一般不会直接污染宿主机桌面、下载目录或“我的文档”。
这也是为什么我们可以把虚拟机当成一个隔离的实验盘。
快照机制
快照(Snapshot) 是虚拟化技术中非常实用的功能。
快照会保存虚拟机在某一时刻的完整状态,包括磁盘内容、系统配置以及当时的运行条件。你可以把它理解为“游戏存档”。
在实际实验中,建议养成这个习惯:
- 安装基础系统后,先创建一个“初始环境”快照;
- 进行高风险配置前,再创建一个“修改前”快照;
- 测试某个工具或脚本前,创建一个“实验前”快照;
- 如果虚拟机被搞坏,只要恢复快照,就能回到之前的正常状态。
需要注意的是,快照不是屏幕截图。它不是保存当前画面,而是保存虚拟机磁盘层面的状态还原点。
快照仍然依赖宿主机的存储。如果宿主机硬盘损坏,或者你从未把虚拟磁盘文件独立备份到其他设备,快照并不能代替真正的跨设备备份。
容器与虚拟机的区别
除了完整的虚拟机,现代云计算和开发环境中还经常使用容器技术,例如 Docker。
虚拟机和容器都可以用来隔离应用,但它们的工作方式不同。
虚拟机
虚拟机模拟的是一整台计算机。每一台虚拟机都会启动自己独立的操作系统内核,拥有自己的系统环境和运行空间。
特点:
- 隔离程度较高;
- 可以运行不同操作系统,例如在 Windows 宿主机里运行 Linux 虚拟机;
- 启动速度相对较慢;
- 资源占用通常更高。
容器
容器不模拟完整硬件,也不运行独立的操作系统内核。所有容器通常共享宿主机的操作系统内核,利用 Linux 内核中的命名空间(Namespaces)和控制组(Cgroups)等机制,为应用创建相互隔离的运行环境。
特点:
- 启动速度更快,通常可以在毫秒级到秒级完成;
- 资源消耗更低;
- 更适合部署应用和微服务;
- 隔离模型与虚拟机不同,通常不如完整虚拟机那样独立。
在 Windows 或 macOS 上使用 Docker 时,背后通常也会借助一个轻量级的 Linux 虚拟机环境来提供 Linux 内核。也就是说,跨平台使用容器时,底层机制可能仍然与虚拟机有关。
简单来说:
- 虚拟机更像“在电脑上运行另一台电脑”;
- 容器更像“在同一个系统内核上,为每个应用单独划分运行空间”。
分清当前环境在哪里
学习本课程时,你可能会同时看到多个操作窗口。此时最重要的是:始终清楚当前命令和文件操作发生在哪个环境里。
常见环境包括:
-
宿主系统(本机) 你自己使用的物理电脑,运行 Windows、macOS 或 Linux。
-
本地虚拟机(Local VM) 运行在你本机上的虚拟机,例如 VirtualBox 或 VMware 中的 Kali Linux。
-
远端实验容器(Remote Lab) 点击平台上的“启动实验”后,由远程服务器为你创建的临时实验环境。
当你在浏览器中访问远端 Lab 的网页或终端时,浏览器只是显示界面和传输数据的窗口。实际命令仍然运行在远程实验容器中。
因此:
- 你在远端 Lab 终端里创建的文件,保存在远程容器里;
- 这些文件不会自动出现在你的本机桌面、下载目录或本地硬盘中;
- 远端实验容器通常是临时性的;
- 当实验提交、超时或环境关闭后,远程容器可能会被销毁并重置;
- 重要的实验记录、截图、命令输出或笔记,应及时保存回本机。
一句话总结:
在哪里执行命令,文件就保存在哪里。远端环境不是你的电脑硬盘。

