🖥️ 第二课:本地虚拟机搭建 — 零成本部署实验环境

预计阅读时间:15 分钟  |  难度:入门 ⭐⭐

📋 本课目标:在自己的 Windows 电脑上搭建一台 Linux 虚拟机,为后续课程准备好一个安全、免费的实验环境。学完这节课,你就能像操作一台云服务器一样在本地虚拟机里练习所有部署操作。

1 为什么先学本地虚拟机?

在正式开始部署之前,你需要一个可以随便折腾的环境——装错软件、配错防火墙、搞崩系统,都不可怕,因为你可以一键恢复。

本地虚拟机的优势:

对比项本地虚拟机云服务器
💰 费用免费(只需电脑配置够)每月 50~100 元起步
🔄 快照回滚一键恢复,随便试错需要做镜像/快照(可能收费)
🌐 网络本地网络,不暴露到公网公网 IP,几小时内被扫描
📦 模拟生产几乎一致(Ubuntu Server)真实生产环境
⏱ 启动速度即时启动需要创建实例等待
💡 建议:先在本机虚拟机里熟练所有操作,再上云服务器。一台虚拟机可以反复"搞坏→恢复",学习效率远高于直接操作云服务器。

2 准备工作

2.1 你需要什么

2.2 虚拟化软件选型

软件费用特点
VirtualBox完全免费 ⭐推荐开源、轻量、功能齐全、Windows/Linux/macOS 全平台
VMware Workstation Player个人免费性能略好,界面更现代
Hyper-VWindows 内置Win 10 Pro/Enterprise 自带,性能最好但配置稍复杂
WSL2免费不是完整虚拟机,但适合轻量 Linux 操作,不能完全模拟服务器环境

本课以 VirtualBox 为例,它是零门槛的选择。

3 第一步:安装 VirtualBox

3.1 下载安装

  1. 访问 VirtualBox 官方下载页
  2. 选择 Windows hosts 下载安装包
  3. 双击安装,一路默认选项即可
  4. 安装过程中如果提示安装网络驱动,选择"是"
⚠️ 常见误区:安装时取消勾选网络驱动。VirtualBox 的网络驱动是虚拟机联网和 SSH 连接的关键,不要跳过。

3.2 下载 Ubuntu Server ISO

我们使用 Ubuntu Server 22.04 LTS——它没有图形界面,纯命令行操作,和云服务器完全一致。

  1. 访问 Ubuntu Server 下载页
  2. 下载 Ubuntu Server 22.04 LTS ISO 文件(约 2GB)
💡 LTS 代表 Long Term Support(长期支持版),官方提供 5 年安全更新。服务器环境永远选 LTS 版本。

4 第二步:创建虚拟机

4.1 VirtualBox 中创建新虚拟机

  1. 打开 VirtualBox,点击 "新建"
  2. 名称:Ubuntu-Server-Learning
  3. 文件夹:默认即可
  4. ISO 镜像:选择刚才下载的 Ubuntu Server ISO
  5. 类型:Linux,版本:Ubuntu (64-bit)
  6. 内存:分配 2048 MB(2GB,如果你的内存充裕可以给 4GB)
  7. 硬盘:创建虚拟硬盘,大小 20GB,类型选 VDI(VirtualBox 格式)
  8. 点击"完成"

创建完成后,先别急着启动——先配置网络:

  1. 选中虚拟机,点击 "设置"
  2. 进入 网络 选项卡
  3. 方式选 NAT(默认即可)
  4. 点击 高级 → 端口转发
  5. 添加一条规则:
主机端口 → 虚拟机端口
─────────────────────
2222 → 22 (SSH)
8080 → 80 (HTTP)
8443 → 443 (HTTPS)
# 端口转发配置(在 VirtualBox 设置中填写)
# 名称 协议 主机IP 主机端口 虚拟机IP 虚拟机端口
ssh TCP 0.0.0.0 2222 10.0.2.15 22
http TCP 0.0.0.0 8080 10.0.2.15 80
https TCP 0.0.0.0 8443 10.0.2.15 443
⚠️ 常见误区:使用 NAT 模式但忘记配端口转发,或者配了转发但主机端口和本地已有服务冲突(比如 80 端口已被本地 IIS 占用)。建议 SSH 用 2222,HTTP 用 8080 避免冲突。
网络模式小贴士:

5 第三步:安装 Ubuntu Server

5.1 启动并安装

  1. 选中虚拟机,点击 "启动"
  2. 虚拟机启动后会进入 Ubuntu 安装界面,选择语言 English
  3. 键盘布局:默认即可(或选择 Chinese)
  4. 网络配置: DHCP 会自动分配 IP,保持默认
  5. 代理和镜像地址:保持默认(国内用户可以改为 mirrors.ustc.edu.cn 加速下载)
  6. 磁盘分区:选择 Use An Entire Disk,然后确认
  7. 用户名和密码:设置你的用户名(如 ubuntu)和密码(记下来!)
  8. SSH 设置:勾选 Install OpenSSH server这一步非常重要!
  9. 等待安装完成 → 重启
🔴 千万注意:Ubuntu Server 安装过程中的 "Install OpenSSH server" 选项在 SSH Setup 页面,默认是未勾选的。如果忘了勾选,装完后的虚拟机没有 SSH 服务,你只能用 VirtualBox 窗口操作,非常不方便。

安装完成后重启,看到登录提示符就说明安装成功了:

ubuntu-server login: # 输入你设置的用户名
Password: # 输入密码
ubuntu@ubuntu-server:~$ # 看到这个提示符就说明成功了

5.2 验证网络和更新系统

# 查看 IP 地址
ip addr show

# 测试联网
ping -c 4 8.8.8.8

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo apt install -y curl wget git vim net-tools

6 第四步:从宿主机 SSH 连接到虚拟机

6.1 连接测试

回到 Windows 的终端(PowerShell 或 Terminal),使用端口转发配置的端口连接:

# SSH 连接到虚拟机(端口 2222 映射到虚拟机的 22)
ssh -p 2222 ubuntu@127.0.0.1

# 第一次连接会提示确认主机指纹,输入 yes
# 然后输入你在安装时设置的密码

如果连接成功,你会看到:

Welcome to Ubuntu 22.04.3 LTS
ubuntu@ubuntu-server:~$ _

现在你可以在 Windows 终端里像操作云服务器一样控制虚拟机了——而且完全免费!

6.2 可选:配置 SSH 密钥登录

和云服务器一样,配置密钥登录更方便也更安全:

# 在本机生成密钥对(如果没有的话)
ssh-keygen -t ed25519 -C "vm-learning"

# 复制公钥到虚拟机
ssh-copy-id -p 2222 ubuntu@127.0.0.1

# 或手动追加(如果 ssh-copy-id 不可用)
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 2222 ubuntu@127.0.0.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# 配置好后,以后登录就不需要密码了
ssh -p 2222 ubuntu@127.0.0.1

7 第五步:快照——你的"后悔药"

快照是虚拟机最强大的功能——它记录了虚拟机的完整状态,你可以随时回到这个状态:

7.1 创建快照(安装干净系统后立刻做)

  1. 关闭虚拟机(在虚拟机中运行 sudo shutdown now
  2. 在 VirtualBox 主界面,选中虚拟机 → 点击 "快照" 按钮(或 机器 → 生成快照)
  3. 名称:Clean Install - Base
  4. 描述:刚装完 Ubuntu Server 22.04,已更新系统
💡 实战技巧:每次做一个重要操作之前(比如安装 Docker、配置 Nginx),先创建一个快照。搞砸了只需点一下"恢复快照",几秒钟回到操作前的状态。
推荐快照策略:
① Clean Install — 刚装完系统
② Before Docker — 安装 Docker 前
③ Before Nginx — 配置 Nginx 前
④ Working State — 一切正常工作时的状态

7.2 恢复快照

  1. 关闭虚拟机
  2. VirtualBox 主界面 → 快照管理
  3. 选中要恢复的快照 → 点击"恢复"
  4. 启动虚拟机——回到过去!

8 进阶:用 Vagrant 实现自动化

如果你觉得手动安装虚拟机太麻烦,Vagrant 可以用一条命令自动完成虚拟机的创建和配置:

# 安装 Vagrant(从 https://www.vagrantup.com/downloads 下载)
# 然后在项目目录创建 Vagrantfile

mkdir my-vm && cd my-vm
vagrant init ubuntu/jammy64

# 启动虚拟机(自动下载镜像、配置网络、启动)
vagrant up

# SSH 连接
vagrant ssh

# 销毁虚拟机
vagrant destroy -f

Vagrant 在后续课程中可以用来快速创建实验环境,但本课建议先手动装一遍——亲手装一次能帮你理解虚拟机的每个组成部分

9 本机操作验证清单

✅ 完成以下检查:

  1. ☐ VirtualBox 中虚拟机正常运行
  2. ☐ 可以从 Windows 用 SSH 连上虚拟机(ssh -p 2222 ubuntu@127.0.0.1
  3. ☐ 虚拟机可以上网(ping 8.8.8.8
  4. ☐ 系统已更新到最新(sudo apt update && sudo apt upgrade
  5. ☐ 基础工具已安装(curl、wget、git、vim、nginx)
  6. ☐ 已创建 "Clean Install" 快照
  7. ☐ (可选)配置了 SSH 密钥免密登录

10 小测验

Q1: 在 VirtualBox 中使用 NAT 网络模式时,怎样才能从宿主机访问虚拟机里的 Web 服务?

Q2: 安装 Ubuntu Server 时,最容易忘掉但最重要的步骤是什么?

Q3: 在做有风险的实验之前,最好的安全措施是什么?

📖 推荐官方文档

📌 下一课预告

第三课:传统云服务器手工部署

有了本地虚拟机的实验基础,现在可以上手真实的云服务器了——SSH 配置、Nginx 反向代理、HTTPS 证书,一步步走完完整的手工部署流程。