ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VMware Workstation虚拟机安装配置实战:快照、克隆与网络调优全指南

VMware Workstation虚拟机安装配置实战:快照、克隆与网络调优全指南 1. 为什么我还坚持用虚拟机先想清楚再动手1.1 虚拟机到底解决了什么问题先聊点实际的。虚拟机这个东西我在项目里用了快十年从最早读书时候为了装个 Linux 折腾半天到后来工作里同时维护两三套环境它一直是我电脑上最值得装的软件之一。很多人觉得虚拟机就是个“能开另一个系统的工具”其实它真正解决的是三个很痛的问题环境隔离、快速回滚、多环境并行。环境隔离最好理解。比如你想试一个 MySQL 8.0 的新特性但你机器上已经装了 MySQL 5.7直接升级怕影响业务装两个实例又怕端口冲突。这时候开一台虚拟机里面随便折腾坏了删掉重来宿主机的环境一点不受影响。我在开发机上跑过 Redis、Nginx、Node.js、Java 全家桶全部塞进虚拟机里宿主机的 Windows 就干一件事跑 IDE 和浏览器干净得很。快速回滚就更实用了。虚拟机有快照功能装系统、配环境之前打一个快照后面不管怎么搞坏几分钟就能回到配置完的状态。这比在物理机上配环境靠谱多了——物理机上你配崩了 Nginx要么硬着头皮排查要么重装系统代价都很大。虚拟机里就是“坏了就回滚”完全没有心理负担。多环境并行是指你可以在同一台电脑上同时跑多个不同配置的虚拟机。比如我经常同时开一台 Ubuntu 做后端开发一台 CentOS 模拟生产环境偶尔再开一台 Windows Server 测部署脚本。这在物理机上想都不敢想但虚拟机里就是几个文件的事。1.2 选型VMware Workstation 还是别的虚拟机软件的选择说白了就几个主流VMware Workstation、Oracle VirtualBox、Hyper-V、KVM/QEMU。我最常用的是 VMware Workstation原因很直接性能损耗小、稳定性高、快照和克隆做得成熟。尤其是 2024 年博通宣布 Workstation Pro 对个人用户免费之后它基本成了我的默认选择不用再费心找激活码官方免费版直接下载安装省事。VirtualBox 我也用过不少它的优势是免费开源、跨平台轻量场景下够用。但说实话在 3D 加速、磁盘性能、大内存分配这些方面和 VMware 比还是有差距特别是跑图形界面或编译任务的时候明显一些。Hyper-V 是 Windows 自带的方便是方便但它是 Type 1 虚拟化和 VMware 这类 Type 2 在某些场景会冲突而且操作上不如 VMware 直观。KVM 更偏服务器方向适合玩 Linux 的人桌面用户没必要。所以这篇教程里我以 VMware Workstation Pro 17 为例把从安装到配置一条龙讲清楚。你如果用的是 VirtualBox思路完全一样很多步骤可以对照着来。2. 安装前的准备工作不检查这几项后面全是坑2.1 宿主机先确认 CPU 虚拟化是否开启这是很多人最容易忽略的一步也是“装完虚拟机一开机就蓝屏”的头号原因。虚拟机要运行CPU 必须支持硬件虚拟化技术——Intel 的叫 VT-xAMD 的叫 AMD-V。现在的 CPU 基本都支持但问题是默认不一定开启。Windows 下确认方法很简单打开任务管理器切到“性能”标签页点 CPU看右下角的“虚拟化”这一项如果是“已启用”说明没问题。如果显示“已禁用”那你需要进 BIOS/UEFI 设置里把它打开。不同品牌主板的入口不一样一般是开机按 Del、F2 或 F10进去之后找“CPU Configuration”、“Advanced”之类菜单把 Intel Virtualization Technology 或 SVM ModeAMD 平台设为 Enabled保存重启就好。这里有个细节很多电脑厂商默认把虚拟化关着尤其是品牌机。我见过不少同事在虚拟化没开启的情况下装 VMware系统能装但一启动虚拟机就直接报错或者卡死排查一圈才发现是这里的问题。另外如果你的 Windows 已经启用了 Hyper-V 或者内核隔离的“内存完整性”再跑 VMware 就容易蓝屏或报“不能启动虚拟机平台”的错。后面我会专门讲这个问题但安装之前最好先看一眼控制面板—程序—启用或关闭 Windows 功能如果里面勾选了 Hyper-V建议先取消勾选等装好 VMware 确认能跑虚拟机了再决定要不要开回来。2.2 安装 VMware Workstation 时的几个小决策去 VMware 官网下载 Workstation Pro 17个人用户可以直接用免费许可证安装过程基本一路 Next但有几个选项我建议你留意一下。第一个是安装路径默认在 C 盘。VMware 本体不算大但很多临时文件和虚拟机配置都会和安装目录有牵连如果你的 C 盘空间紧张最好改到别的盘。第二个是“增强型键盘驱动程序”这个选项弹出来的时候建议装上它在虚拟机里处理特殊按键组合比如 CtrlAltDel的时候更稳定。第三个是启动时检查更新我一般是关掉的省得每次打开都弹窗。装完以后你可以在“编辑—首选项—内存”里设置一下虚拟机的总内存上限。比如你宿主机有 32G 内存可以给虚拟机总量设到 16G 左右别让几个虚拟机加起来把宿主机内存吃光否则你自己的 IDE 也会卡。2.3 系统镜像Linux 还是 Windows虚拟机要装什么系统取决于你的目的。如果是学 Linux、跑开发环境我强烈推荐 Ubuntu LTS 版本现在是 24.04界面友好、软件源全、社区资料多遇到问题一搜就有答案。想模拟生产环境的可以考虑 CentOS Stream 或 Rocky Linux 之类的 RHEL 系但日常开发我觉得 Ubuntu 更省心。如果是想在虚拟机里跑 Windows——比如你需要在 macOS 上用 Windows 软件或者测试某个网页在 IE/Edge 下的兼容性——你就需要准备 Windows 的安装 ISO 镜像。注意虚拟机的 Windows 一样需要正版授权微软官网有官方的 ISO 下载入口不要随便去第三方网站下那个下回来的是不是干净的真说不准。我这里后面的步骤以 Ubuntu 24.04 为例但你装 Windows 的时候前期的虚拟机创建流程是通用的只是系统安装步骤不一样而已。3. 虚拟机创建与系统安装全流程3.1 新建虚拟机这些配置参数要动手调打开 VMware Workstation选择“创建新的虚拟机”。它会问你是“典型”还是“自定义”我建议直接选“自定义”这样每一步能控制得比较清楚。第一步是虚拟机的硬件兼容性保持 Workstation 17.x 就行除非你要把虚拟机迁移到 ESXi 或别的平台。第二步选择 ISO 镜像把你下载好的 Ubuntu ISO 选上VMware 会自动识别是 Linux 系统然后你手动选择 Ubuntu 64 位。接下来是 CPU 和内存。这两个是最影响体验的配置我给一个自己常用的参考CPU 至少 2 核如果有 4 核以上 CPU 的机器给虚拟机 4 核内存开发机建议 4G 起步如果是跑编译任务或数据库给到 8G 不嫌多。但要注意你给虚拟机多少资源宿主机就少多少物理机内存只有 8G 的话虚拟机开到 8G 会把自己卡死一般留一半给宿主机比较稳。磁盘类型默认 NVMe 就行现在的 Ubuntu 对 NVMe 支持很成熟性能也比 SATA 好一点。磁盘容量设置有个技巧虚拟机磁盘默认是“动态分配”也就是实际用多少占多少不会一开始就把 60G 吃掉所以容量可以稍微给大点。我建议至少 60G开发环境装完系统加一堆软件30G 会很紧张。而且这个容量后期也可以扩但扩容要操作分区表不如一开始给够。有个细节容易被忽略在“自定义硬件”页面把虚拟机的内存勾选上“预留所有内存”之前先想想你宿主机有没有多余内存。这个选项能提升虚拟机性能但会让那块内存被独占不适合内存紧张的电脑。3.2 安装 Ubuntu 系统的实操记录创建好虚拟机后点“开启此虚拟机”如果之前选的 ISO 正确它会自动从光盘引导启动。Ubuntu 的安装界面很友好选“Install Ubuntu”就行然后是语言、键盘布局一路默认。分区界面建议选“清除整个磁盘并安装 Ubuntu”这里清除的是虚拟机虚拟磁盘不会动你宿主机上的任何数据放心选。安装过程中会让你设置用户名、密码和主机名这些都会用于登录注意账号密码别太简单毕竟虚拟机虽然安全但好习惯要养成。安装时间取决于你分配的 CPU 核数和磁盘速度一般十分钟左右。有个很多人不知道的点安装过程最好不要让宿主机休眠或锁屏有些电脑休眠恢复后虚拟机的网络会变得奇怪等系统装完重启再操作更稳妥。装完重启后你会看到 Ubuntu 的桌面这时候虚拟机还处于“裸奔”状态很多东西没配好下一步就是装 VMware Tools。3.3 VMware Tools 和 open-vm-tools装了才顺手VMware Tools 的作用很多人不清楚其实它包含一组显卡驱动、鼠标驱动和系统服务装上以后才能实现鼠标在宿主机和虚拟机之间无缝切换、虚拟机窗口自适应分辨率、共享剪贴板、拖拽文件等操作。如果你用的是 Ubuntu 这类 Linux 系统其实不用装 VM 自带的那个 Tools直接用 open-vm-tools 更干净。在虚拟机里打开终端执行sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y装完重启一下虚拟机你就会发现鼠标随便进出窗口虚拟机分辨率也能跟着窗口走了体验瞬间正常了。Windows 虚拟机则是在 VMware 菜单栏的“虚拟机—安装 VMware Tools”里加载 ISO然后运行里面的 setup 程序装完重启就好。到这里虚拟机已经从能开机变成了“能用”但这只是开始真正干活前你还要把网络、软件环境这些都配好。4. 网络配置和开发环境让虚拟机真正融入你的工作流4.1 三种网络模式别再只会用默认 NAT虚拟机装好了很多人第一反应是“我在虚拟机里能上网吗”答案是取决于网络模式。VMware 有桥接、NAT、仅主机三种模式我一个个说清楚。NAT 模式是默认选项适合大多数场景。它的原理是虚拟机通过宿主机共享 IP 上网外网没法直接访问到虚拟机但虚拟机可以正常上网。你在真实局域网里有几台机器别人只能看到宿主机看不到虚拟机这对开发测试来说很友好不容易打扰别人。桥接模式则是把虚拟机直接接到物理网络上让它拥有和宿主机一个网段的独立 IP。别人可以直接用这个 IP 访问你的虚拟机。适合你要给同事展示页面或者虚拟机需要被局域网其他设备直连的场景。仅主机模式最好理解虚拟机只能和宿主机通信不能上外网。一般用于隔离环境、测试网络攻防之类的场景。日常开发和大多数人最合适的还是 NAT不打扰别人也能上网。4.2 给虚拟机配固定 IP别让地址一天变一次NAT 模式下虚拟机默认是用 DHCP 动态获取 IP 的每次重启可能变。开发最怕的就是 IP 变了代码里配置的数据库地址、Nginx 反代地址全要跟着改太折腾。所以我会把虚拟机的 IP 设置成固定的。具体分两步先在 VMware 的“编辑—虚拟网络编辑器”里找到 NAT 模式的 VMnet8把子网地址设置成你想要的网段比如 192.168.137.0网关设成 192.168.137.2DHCP 设置里可以给网段预留一部分地址避免冲突。然后进 Ubuntu 里把网卡改成静态 IP。Ubuntu 24.04 用的是 netplan 管理网络配置文件在 /etc/netplan/ 目录下一般是个 .yaml 文件。编辑它把 dhcp4 改成 no然后像这样写network: version: 2 ethernets: ens33: addresses: - 192.168.137.100/24 routes: - to: default via: 192.168.137.2 nameservers: addresses: - 8.8.8.8 - 223.5.5.5其中 ens33 是网卡名称可以用 ip addr 命令查到。改完执行 sudo netplan apply然后 ping 一下网关和外网地址能通就说明配置成功了。研究网络的时候有个地方容易踩坑Windows 防火墙默认会拦 ICMP所以虚拟机 ping 得通宿主机宿主机 ping 不通虚拟机不一定是你配置错了可能是防火墙的问题。排查的时候两边都看一眼。4.3 宿主机访问虚拟机网站、SSH、多站点一次搞定网络配好之后宿主机访问虚拟机里的服务主要有几种方式。最简单的如果虚拟机是 NAT 模式宿主机直接用虚拟机的 IP 就能访问它的端口。比如虚拟机里用 Nginx 跑了一个 8080 端口的服务宿主机浏览器打开 http://192.168.137.100:8080 就能看到页面。前提是虚拟机里那个服务要监听 0.0.0.0而不是只能监听 127.0.0.1这个细节我见过很多人踩。SSH 也是开发中必用的。在虚拟机里装好 SSH 服务sudo apt install openssh-server -y宿主机上直接 ssh 用户名192.168.137.100输入密码连上去就可以。要是嫌密码登录慢可以配置 SSH 密钥登录一劳永逸这里不展开讲。如果你有更复杂的本地开发场景比如要同时管理多个项目的域名可以试试“本地虚拟机 多端口 Nginx 开发环境多站点自定义域名配置”这个思路。做法是宿主机上改 hosts 文件把 project1.local、project2.local 解析到虚拟机的 IP然后在虚拟机里装 Nginx为每个项目写一个 server 块监听不同的 server_name 和端口最后宿主机用 http://project1.local:8080、http://project2.local:8081 就能分别访问不同的服务。这个方案比在宿主机上装一堆环境干净多了也特别适合前端联调。顺便说一句如果遇到宿主机访问不了虚拟机端口除了检查防火墙还要确认虚拟机里进程真的在跑、没被杀掉。用 sudo netstat -tlnp 看一下端口监听状态排查起来很快。4.4 开发软件在虚拟机里怎么装Java、Node、数据库一次配齐虚拟机里配置开发环境套路和物理机其实一模一样唯一的区别是要留意 Linux 和 Windows 的差异。这里把常用软件快速过一遍。JDK 的安装推荐用 openjdkUbuntu 下执行 sudo apt install openjdk-17-jdk 就可以装完执行 java -version 验证。如果公司项目指定要某个版本的 JDK可以下载 tar 包放到 /usr/local 下手动配置记得设置 JAVA_HOME 和 PATH 环境变量。Node.js 稍微麻烦一点apt 里的版本通常偏旧建议用官方源的 setup 脚本或者直接下载二进制 tar.xz 解压后配置环境变量。装完后用 node -v 和 npm -v 验证。MySQL 可以直接 apt 装或者去官方 APT 仓库装指定版本。装完之后记得执行 sudo mysql_secure_installation把 root 密码、匿名用户、测试库这些处理掉生产习惯在开发环境也照样做。Git 就很无脑了sudo apt install git 装上后 git config --global user.name / user.email 配置一下就可以用。我的个人习惯是宿主机只装 IDE 和浏览器其余所有服务全部塞进虚拟机。这样做最大的好处是哪天虚拟机被玩坏了打开快照回滚宿主机一点污染都没有。你问我值不值得我用了十年答案是相当值得。5. 快照、克隆与日常管理像是给虚拟机上了保险5.1 快照的正确打开方式快照是虚拟机最“香”的功能没有之一。原理很简单它保存了虚拟机磁盘在某个时间点的完整状态之后不管你怎么操作都能一键还原到这个时间点。我的习惯是每完成一个稳定阶段就打一个快照。比如刚装完系统打一个“base”配好网络打一个“network”装完 JDK、MySQL 打一个“dev-env”。这样后续操作出问题最多损失一顿饭的功夫不用从头再来。打快照的位置在 VMware 菜单栏“虚拟机—快照—拍摄快照”或者用 CtrlZ。恢复的时候点“快照管理器—转到”确定即可。要注意的是快照会占用磁盘空间每个快照的大小取决于它和当前状态之间的差异如果你频繁打快照又不清理磁盘会很快被撑满。有个坑想提醒你在打快照之前如果虚拟机的数据库或程序正在写数据最好先停掉相关服务再拍否则快照保存的可能是数据不一致的状态恢复后数据库可能打不开。这不是 VMware 的问题是文件一致性本身的要求。5.2 克隆多开几台虚拟机的最快方式克隆是另一个高效工具。它的作用是把当前虚拟机复制出一份完全一样的新虚拟机省去从头安装系统和配置环境的重复劳动。比如你配好了一台“基础开发机”想再要一台专门跑测试直接克隆一份改改主机名和 IP立刻就能用。VMware 提供两种克隆方式链接克隆和完整克隆。链接克隆会依赖父虚拟机的磁盘快、省空间但父虚拟机不能随便删完整克隆是独立的一整套文件跟原虚拟机没有依赖关系更稳。我建议不管是自己用还是给团队分发都用完整克隆看着多占点磁盘实际上省心很多。克隆出来的虚拟机要注意几个点主机名和 IP 一定要改要不然两台机器在网络里撞车。改主机名可以用 sudo hostnamectl set-hostname 新主机名IP 改法和前面讲的静态 IP 配置一样。还要注意如果原机器上配了 SSH 密钥或一些缓存克隆后最好也清理一下避免密钥冲突。6. 常见问题排查实录这些坑我都踩过6.1 VMware 起不来权限、服务和 Hyper-V 的锅我先说一个非常常见的错误打开虚拟机时提示“VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录、以及访问该程序使用的所有临时文件。”这个报错我第一次遇到还以为是软件坏了后来排查发现是 VMware 服务没启动。解决方法是按 WinR输入 services.msc找到“VMware Authorization Service”和“VMware NAT Service”等服务确认它们处于“正在运行”状态如果没开就右键启动然后把启动类型改成“自动”。我之前遇到过一次升级后服务被禁用的情况手动启动就恢复了。另外一个高频坑是“无法启用虚拟机平台”这个通常和 Windows 可选功能里的“虚拟机平台”或 Hyper-V 有关。如果你用不到 Hyper-V可以去“启用或关闭 Windows 功能”里取消勾选 Hyper-V 和“虚拟机监控程序平台”重启后再试。注意取消 Hyper-V 之前如果你在用 WSL2 或 Docker Desktop它们可能会受影响需要权衡。6.2 虚拟机一开机就蓝屏宿主机自身的问题“虚拟机安装 Linux 蓝屏”是一个很多人搜的场景。如果是宿主机直接蓝屏大概率不是 Linux 的问题而是 VMware 和 Windows 安全机制冲突。最常见的两大元凶一个是 Windows 内核隔离里的“内存完整性”它会和 VMware 的内存虚拟化技术冲突另一个就是前面说的 Hyper-V 同时开启。解决办法是在 Windows 安全中心—设备安全性—内核隔离里把“内存完整性”关掉如果开了 Hyper-V也关掉。改完重启宿主机再启动虚拟机一般就正常了。如果是虚拟机里面的系统蓝屏那更多是镜像文件本身的问题。ISO 文件下载不完整或者来源不可靠装一半就崩的情况我都见过。这种时候换一个官方源重新下载镜像基本能解决。别贪图快用一些来路不明的精简版镜像省下来的时间后面全得还回去。6.3 虚拟机 IP 不通、网站访问不了虚拟机里能上网但宿主机关不上它先别慌按顺序排查。先在虚拟机里执行 ip addr确认 IP 还在、网卡没掉。接着在宿主机 cmd 里执行 ping 虚拟机IP如果不通多半是 Windows 防火墙拦截了 ICMP 或入站端口。临时验证可以先把“Windows Defender 防火墙”里和 VMware 相关的规则全部允许或者先关防火墙测试一下注意测试完记得开回来。通了再逐个开放具体端口用“高级安全 Windows Defender 防火墙”加规则。如果虚拟机能 ping 通但浏览器访问不了某个服务那就是服务层面的事了确认服务进程在跑、监听地址是 0.0.0.0、端口没被占。虚拟机内可以用 curl 127.0.0.1:端口 测一下能通再去宿主机测。一步步缩小范围比瞎猜高效得多。6.4 虚拟机越来越慢、磁盘文件巨大虚拟机用久了变卡最常见的原因是磁盘被快照和日志堆满了。VMware 的动态分配磁盘在虚拟机内部删除了文件宿主机的 .vmdk 文件也不会自动变小这时候可以试试以下操作把所以快照合并或删除然后对虚拟机内部做一次磁盘清理最后可以考虑用 VMware 自带的“清理磁盘”功能整理 vmdk。如果运行本身卡顿优先看资源分配给虚拟机的内存和 CPU 是不是不够用或者有个虚拟机长期占满 CPU。我习惯在宿主机上开一个资源监视器能看到每个虚拟机进程的 CPU 和内存占用很快定位到是哪个机器在“偷”资源。另外别忘了虚拟机的磁盘空间也是一样用 df -h 看看经常有人写到 100% 之后服务直接崩。开发机上碰到这种问题第一反应应该是“我又打了几个快照”而不是“我要换 CPU”。写在最后的经验折腾虚拟机这些年我最直观的感受就是它把“环境”这件事真正变成了可复制的资产。以前配一套环境要小心翼翼现在随便玩坏了回滚需要新环境就克隆。如果你刚入门我的建议是先完整走一遍这篇教程遇到问题就按第 6 节的思路排查一次两次之后这些流程基本就成肌肉记忆了。最后再分享一个小技巧虚拟机里配置环境的时候养成“每一步一个命令就记录到笔记”的习惯以后重新搭环境或者克隆分发时照着笔记执行就行比临时翻文档高效得多。虚拟机装好只是起点真正让你效率暴涨的是后面日积月累的配置资产。
返回列表