
我最早认真研究虚拟机是因为工作需要在Windows上同时跑一套Linux环境做服务端测试又不想为了这事儿来回重启切双系统。试了几轮VirtualBox总觉得网络和快照这块差点意思后来换成VMware Workstation Pro一个问题一个问题地解决再到后来折腾远程桌面连接坑踩了不少但也把整条链路彻底弄明白了。这篇文章我不想只甩给你一个“下载、安装、下一步”式的教程那没用。我尽量把这几年实际用下来的经验讲清楚为什么需要虚拟机、VMware各版本怎么选、建Ubuntu虚拟机时哪些选项值得认真对待、以及远程桌面连接RDP和VNC在不同场景下怎么选、怎么配、翻了车怎么定位问题。适合刚接触虚拟机的初学者也适合已经装了VMware但远程桌面一直连不顺的朋友。1. 先弄清楚VMware到底帮你解决了什么问题1.1 虚拟机是怎么一回事很多人第一次听说虚拟机第一反应是“在我电脑里再装一台电脑”这个说法其实挺准确。VMware Workstation Pro这类软件本质上是一个宿主机上运行的应用程序它向客户机操作系统提供虚拟化的CPU、内存、硬盘、网卡等硬件资源。你在虚拟机里装的Linux或者Windows并不知道自己其实是跑在物理硬件上还是虚拟硬件上它以为自己独占了一台完整的主机。这个机制的底层原理是CPU虚拟化技术也就是VT-xIntel和AMD-VAMD宿主机把物理CPU指令交给虚拟机监视器hypervisor来调度虚拟机的系统调用和内存访问经过一层翻译性能会有一定损耗但现代CPU配合硬件辅助虚拟化损耗已经压得很低了。我实测装Ubuntu Server日常跑Nginx、MySQL、Redis这种级别的服务和直接物理安装相比体感差别不明显。1.2 哪些场景下值得装VMware我把实际踩过的、看别人踩过的场景总结了一下大概这几类是最典型的学习Linux运维但不想放弃Windows主系统也不想搞双引导、来回重启。需要隔离测试环境比如下载来路不明的软件包、测试系统镜像、调试内网服务坏了直接回滚快照。要在同一台机器上同时跑多个系统比如Windows宿主里挂一个Ubuntu做开发服务器再挂一个Windows测试版做兼容性验证。构建“最小实验网络”用多台虚拟机模拟客户端-服务器架构在物理机上用远程桌面分别管理它们。做网络安全、系统加固方向的练习用快照随时恢复干净的初始状态。尤其是“随时回滚”这个能力是物理机完全给不了的。我在生产经验里吃过亏某次在虚拟机里跑一个半成品的部署脚本中途改坏了系统库如果是在物理机上差不多就得从头配置环境了。但因为我提前打了快照一句“恢复到快照”就回到几分钟之前的状态那种痛感和解脱感用过的人都会懂。1.3 都叫VMwarePlayer、Workstation Pro、ESXi别搞混我见过很多新手在这一步被绕晕。VMware的产品线里有三个容易混的东西产品运行环境定位典型用户VMware Workstation Pro安装在Windows/Linux桌面系统上桌面虚拟化、个人开发测试个人开发者、运维学习者VMware Workstation Player安装在Windows/Linux桌面系统上Workstation的精简版只能“运行”虚拟机只需要打开别人给的虚拟机文件VMware ESXi裸机安装不依赖宿主系统服务器虚拟化平台机房、服务器、企业虚拟化如果你只是想在自己电脑上装个虚拟机跑Linux那就选Workstation Pro别碰ESXi那个是装在整个物理服务器上的底层系统笔记本上虽然也能折腾但没必要。Player现在基本被Workstation Pro吸收合并了新版本里更推荐直接上Pro理由后面讲。2. VMware Workstation Pro从下载到激活的完整细节2.1 下载入口和版本选择的坑VMware被博通收购之后官网下载入口变化很大。以前直接去vmware.com就能找到Workstation Pro的下载页现在你进到官方页面会发现产品下载入口被整合到博通的下载中心了。操作路径是注册Broadcom账号并登录进入“Software Downloads”和“VMware Cloud Foundation”再选“My Downloads”产品列表里找到VMware Workstation Pro选择对应版本下载。这个流程很多第一次找的人会卡在那里以为要额外付费其实只是门户变了个人使用的下载还是开放的。版本选择上如果电脑是近五年买的优先选最新版当前主线是17.x。Workstation Pro 17对Windows 11宿主的支持、3D加速、以及高分辨率显示器的适配都更完善。如果电脑比较老或者CPU不支持较新的指令集可以退一步用16.x没必要硬上最新版。2.2 硬件虚拟化检查安装之前先开VT-x这一步非常非常关键我把它放在安装之前讲是因为很多人虚拟机装完启动时才发现“此主机支持Intel VT-x但Intel VT-x处于禁用状态”。先检查CPU虚拟化是否已经开启直接打开Windows任务管理器切到“性能”标签点“CPU”看右下角“虚拟化”一项。如果显示“已启用”那就直接进入安装环节如果显示“已禁用”就需要进BIOS/UEFI设置。不同品牌进BIOS的方式不一样常见是开机按Del或F2联想部分机器是F1ThinkPad是按Enter再按F1。进入后找“Intel Virtualization Technology”或“SVM Mode”把它改成Enabled保存退出。改完开机再回任务管理器确认一次确认状态变了再装VMware。另外注意Win11强制要求的“基于虚拟化的安全”VBS和“内核隔离-内存完整性”会自动开启Hyper-V虚拟机监控程序这会和VMware抢底层虚拟化资源导致“虚拟机监控程序功能对该用户不可用”的报错。这个问题我放到后面专门讲但安装前你心里得有数如果你电脑开了WSL2、Docker Desktop、Windows沙盒、内核隔离这类功能VMware启动可能会被顶掉。2.3 安装过程和许可证个人使用真的不花钱VMware Workstation Pro的安装包大概600MB左右安装过程本身没什么难点一路Next就行。但有两个小细节值得注意。第一安装路径别放C盘默认位置其实也行但如果你计划创建的虚拟机文件很多后续磁盘占用轻松上几十上百GB建议把VMware本体放在C盘虚拟机文件目录放在其他数据盘。这个后面创建虚拟机的时候还要单独设置。第二安装过程中会提示输入许可证密钥。博通接管之后Workstation Pro的许可策略变成了个人用户免费许可商业用户才需要付费订阅。所以你可以在官网直接申请一个“Personal Use”版本的免费许可证也可以用30天试用评估版。我个人的建议是个人学习用途去官网正规渠道申请个人免费许可证这是现在最稳妥、没有法律风险的路子。去网上找那些乱七八糟的密钥文件一方面大概率失效另一方面没必要给自己找麻烦。2.4 装完别急着建虚拟机先确认默认服务正常新版VMware Workstation安装后会自动注册几个Windows服务其中最关键的两个是“VMware NAT Service”和“VMware DHCP Service”。VMware默认的NAT模式网络就是靠这两个服务工作的。我遇到过一种情况装完VMware之后创建虚拟机、装系统都正常但虚拟机里的系统死活拿不到IP。排查一圈才发现之前用某款优化软件把VMware NAT Service给禁用了。所以装完可以先打开服务管理器WinR输入services.msc确认名称里带VMware的几个服务都处于“正在运行”状态启动类型是“自动”这能帮你省掉后续网络相关的很多麻烦。一个更稳的验证办法是直接打开VMware在菜单栏“编辑-虚拟网络编辑器”里看看是否有VMnet8NAT模式网卡和VMnet1仅主机模式网卡。如果虚拟网络编辑器里一片空白或者提示需要重置先把VMware关掉用管理员权限重新打开再点“更改设置”让软件重新生成默认网络。3. 创建Ubuntu虚拟机向导选项怎么选理由是什么3.1 新建向导里最容易让新手懵的几个选项打开VMware点“创建新的虚拟机”会弹出一个向导。这里我先说一个反直觉的经验如果第一次装选“典型推荐”就够不要一上来就选“自定义”。因为典型模式帮你预设了大部分合理的默认值你只需要关注少数关键项而自定义模式暴露的选项太多了新手往往会在“固件类型选BIOS还是UEFI”“磁盘类型选NVMe还是SCSI”这种地方卡住。等你装过一遍理解每个选项的含义之后再回头用自定义模式也不迟。典型向导里需要注意的选项安装程序光盘映像文件选择已经下载好的Linux发行版ISO文件比如ubuntu-24.04-desktop-amd64.iso。客户机操作系统类型选“Linux”版本选“Ubuntu 64位”。这个必须和实际ISO位数匹配如果你下了ARM版ISO非要选x86_64那是装不上的。虚拟机名称和位置名称随意但位置一定要放在剩余空间充足的盘符。我见过一个典型事故虚拟机文件放在C盘装系统到一半C盘爆满直接悲剧。磁盘容量Ubuntu桌面版建议至少给40GB默认的20GB装完系统再加上一些软件包、依赖缓存很容易捉襟见肘。至于“立即分配所有磁盘空间”和“将虚拟磁盘拆分成多个文件”这两个选项推荐后者拆分文件方便迁移和备份也不至于一次性掏空物理磁盘空间。3.2 自定义硬件里哪些配置值得认真调向导最后一步会进入“自定义硬件”页面这里有几个配置项值得认真对待不是随便点下一步就完事的。处理器配置里面“每个处理器的内核数量”和“处理器数量”的乘积建议不要超过物理机逻辑处理器的一半。查看逻辑处理器数量的方式任务管理器-性能-CPU看“逻辑处理器”那一栏。比如你是8核16线程给虚拟机分配4核心比较合理。分配太满会导致宿主机卡顿分配太少虚拟机跑编译任务会慢到怀疑人生。内存分配遵循同样的原则给虚拟机分配的内存别超过物理内存的一半。Ubuntu桌面版建议至少2GB如果要在里面跑Web服务、数据库、多个容器建议4GB起步。设置太小的后果是系统频繁使用交换分区卡成幻灯片。网络连接类型这里非常重要VMware默认给的是NAT模式。我解释一下NAT和桥接的区别NAT模式虚拟机通过宿主机共享网络上网虚拟机有自己独立的私有IP如192.168.x.x宿主机可以访问虚拟机虚拟机也可以访问宿主机和互联网。外部设备比如你手机、另一台电脑默认访问不到虚拟机。桥接模式虚拟机直接接入宿主机所在的局域网有自己的局域网IP其他设备可以直接访问这台虚拟机就像虚拟机和你的物理机处于同一个局域网。日常学习、装系统、上网用NAT就够了。但如果你后面想用手机远程连接虚拟机或者想让同事直接访问虚拟机里的服务那就需要桥接模式或者在NAT模式下做端口映射。这个我后面展开讲。其他几个硬件的配置习惯我也顺手分享一下USB控制器默认就行不影响使用声卡建议勾上不然虚拟机里没有声音很容易让人误以为安装失败显示器“加速3D图形”这项如果只是命令行界面用不上但桌面版建议勾上图形界面流畅度差别明显。3.3 系统安装过程中容易被忽略的细节配置好虚拟机后点击“开启此虚拟机”系统会从ISO文件引导启动。Ubuntu的安装界面出来之后有几个细节值得注意第一安装类型那里如果整个虚拟磁盘都是空的选“清除整个磁盘并安装Ubuntu”就可以了。千万别选“与Windows共存”之类的高级选项那是给双系统场景准备的在虚拟机里选它纯粹是给自己找麻烦。第二语言选择、键盘布局这些按自己习惯来就行但要特别注意“您叫什么名字”这一栏你的名字会作为默认用户名。我建议用全小写字母别用中文也不要加空格不然很多命令行场景下路径带空格会很头疼。第三安装Ubuntu的过程中系统可能会提示“您确定要卸载磁盘设备吗”这是正常的因为VMware默认给虚拟机添加了虚拟光驱安装结束后它会卸载ISO。直接确认就行不要以为是自己操作失误。3.4 装完进入桌面的第一件事装增强工具、拍快照Ubuntu桌面版装完重启进入系统第一件事不是急着配环境而是安装增强工具。VMware Workstation Pro自带了两条路手动安装VMware Tools或者在客户机里安装open-vm-tools这个开源版本。对现代Ubuntu发行版我更推荐直接用open-vm-tools不需要挂载虚拟光驱一条命令就能完成sudo apt update sudo apt install -y open-vm-tools open-vm-tools-desktop装完后重启虚拟机你就会发现三个明显变化宿主机和虚拟机之间的剪贴板可以共享了文件拖动拖放能用了窗口分辨率也能跟随VMware窗口大小自适应了。第二件事更重要——拍快照。点击VMware工具栏上的“虚拟机-快照-拍摄快照”或者在界面上方的相机图标。这个快照会记录当前虚拟机的完整状态包括磁盘内容、内存状态和所有配置。之后不管你在虚拟机里装软件弄坏了多少依赖库、改坏了多少系统配置都可以一键恢复到“干净系统”的初始状态。我个人的习惯是在这三个时间点各拍一个快照刚装完系统未做任何改动时、安装完自己常用工具链后、配置好某个重要服务并验证无误后。这三层快照就像是存档点出了问题可以逐层回退而不是直接重装系统。4. 远程桌面连接的三种姿势和各自翻车点4.1 Windows自带远程桌面连Ubuntuxrdp方案实战很多人一上来就理所当然地以为Windows的“远程桌面连接”mstsc只能连Windows其实不然只要Ubuntu那边装了xrdp服务Windows就能用自带客户端直接远程控制Ubuntu桌面。这个方案的优势是Windows不需要额外装任何软件体验上除了字体渲染略有差异和远程控制一台Windows机器几乎没区别。装xrdp之前先确保Ubuntu系统已经更新完毕sudo apt update sudo apt upgrade -y sudo apt install -y xrdp装好后默认xrdp服务就会自动启动。先确认它真的在跑sudo systemctl status xrdp然后查看端口是否在监听sudo ss -tlnp | grep 3389有个大坑在这里Ubuntu 22.04及之后的桌面版默认桌面环境是GNOME而xrdp和GNOME的兼容性并不算好经常出现“连上了但黑屏”或者“桌面卡死”的情况。一个常见的临时解决方案是给xrdp用户指定比较轻量的桌面会话比如安装xfce4然后在~/.xsession里指定启动xfce4sudo apt install -y xfce4 echo xfce4-session ~/.xsession但这么做的代价是你用远程桌面连进来看到的会是XFCE桌面而不是原来那个GNOME桌面。如果你不介意那这个方案就是当前最稳定、最不容易翻车的选择。如果一定要保留GNOME那需要改polkit权限文件允许xrdp用户建立会话。具体做法是新建一个配置文件sudo nano /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla写入以下内容[Allow Colord all Users] Identityunix-user:* Actionorg.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile ResultAnyno ResultInactiveno ResultActiveyes再重启xrdpsudo systemctl restart xrdp这套操作我能行主要是因为GNOME的会话启动过程中要访问色彩管理相关权限而xrdp建立会话时没有对应的认证上下文才会黑屏。改这个文件是个经典解法但不保证所有GNOME版本都灵验。所以我还是建议你如果只是需要稳定的远程桌面直接装xfce4配xrdp最省心如果需要原汁原味的GNOME那就优先考虑VNC方案。4.2 VNC方案配置和“自动退出”问题的排查链路VNC是另一种很常见的远程桌面协议而且它在跨平台、跨桌面环境方面更通用。热词里提到的“VNC连接服务器实现远程桌面”和“Windows远程连接Ubuntu VNC远程桌面”指的基本就是这条路。我实测比较稳的组合是TigerVNC Xfce桌面。安装sudo apt install -y tigervnc-standalone-server tigervnc-common xfce4 xfce4-goodies初始化VNC密码vncpasswd这个命令会在当前用户目录下生成~/.vnc/passwd文件。如果后续VNC连接提示密码错误先看看这个文件的属主是不是你当前用户属主不对就会出现诡异的认证失败。启动一个VNC会话vncserver :1 -geometry 1920x1080 -depth 24这里的“:1”是display编号对应的端口是590159001。要关掉这个会话用vncserver -kill :1。如果同时开多个会话每个会话占一个display编号和对应端口。默认的VNC会话不会加载你的桌面环境它只会执行~/.vnc/xstartup这个脚本。如果这个文件不存在或者内容不对你连上去看到的就是一片灰色背景带个终端窗口——很多人以为这是连接失败其实只是没配桌面。一个可用的xstartup内容#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4写完记得加执行权限chmod x ~/.vnc/xstartupWindows这边用VNC Viewer之类的客户端地址填Ubuntu虚拟机的IP加端口比如192.168.237.128:5901输入密码就能看到远程桌面。如果你遇到“VNC远程桌面连接后过一段时间自动退出”这个问题我仔细排查过主要原因集中在几处xstartup脚本的桌面进程异常退出。最常见的坑是startxfce4后面的命令用对了但脚本没有以exec开头导致桌面启动后父进程退出、会话跟着死掉。多个VNC会话争抢同一display编号。如果你之前启动过vncserver :1但没有正常kill再执行一次vncserver :1新旧会话会起冲突。处理方式是先vncserver -kill :1确认没有残留进程再重新启动。VNC连接超时被服务端主动断开。这个通常出现在公网或跨网络环境下建议使用ssh隧道方式先建立安全通道再连VNC或者干脆换RDP。资源不足导致桌面死锁。虚拟机内存分配只有2GB还开着浏览器、IDE、多个终端桌面很容易OOM症状就是操作没多久就断开。排查链路我建议不要漫无目的地猜先看服务端、再看客户端、再看网络。服务端先确认进程还活着ps aux | grep Xvnc接着看日志~/.vnc/*.log日志里如果有“Session startup failed”或者“failed to exec启动命令”的报错基本就是xstartup配置问题。如果日志显示连接被正常关闭再看VNC客户端所在机器到服务器3389/5901端口的连通性以及期间是否有网络波动。4.3 局域网其他设备访问虚拟机NAT端口映射和桥接模式还有一种非常常见的需求你人在家里想用手机连接虚拟机里的系统或者你办公桌上两台电脑想从另一台电脑访问虚拟机里的某个服务。这里有两个完全不同的网络思路。默认的NAT模式下虚拟机的IP是192.168.x.x这种内网地址这个地址只有宿主机和虚拟机自己能看到局域网其他设备是访问不到的。想让其他设备访问有两个办法第一个办法是切换桥接模式。在“虚拟机设置-网络适配器”里把网络连接改成“桥接模式”确认后重启虚拟机再查一次IPip addr如果虚拟机IP已经变成和宿主机同一网段比如宿主机是192.168.1.100虚拟机变成192.168.1.101那么局域网内的任何设备都可以直接通过这个IP访问虚拟机了。第二个办法是保持NAT模式在VMware的虚拟网络编辑器里做端口映射。菜单“编辑-虚拟网络编辑器”选中VMnet8NAT模式点“NAT设置”在端口转发区域加一条规则把宿主机的某个端口比如6001转发到虚拟机的IP加端口比如192.168.237.128:5901。之后局域网其他设备访问宿主机的IP:6001就相当于访问虚拟机的VNC服务了。这两个方案各有适用场景桥接模式对网络环境要求高办公室或家庭路由器如果开了AP隔离桥接的虚拟机可能上不了网端口映射则比较灵活但每个服务都要手动配一条转发规则服务一多就不好管理。我个人是主力用NAT加端口映射因为宿主机网络变动时虚拟机的IP不会频繁变化。说到“主机访问虚拟机网站”这个高频搜索词其实和远程桌面是同一个网络模型的问题。只要确认三件事就能通虚拟机里的Web服务在监听0.0.0.0或0.0.0.0:80而不是只监听127.0.0.1、虚拟机防火墙允许对应端口入站、宿主机到虚拟机IP的链路没问题。排查步骤通常是# 在虚拟机里先确认服务监听地址 ss -tlnp | grep 80 # 查看防火墙状态 sudo ufw status如果是ufw拦截了执行sudo ufw allow 80/tcp或者干脆sudo ufw disable做测试。然后宿主机浏览器访问http://虚拟机IP能出页面就说明通了。如果宿主机访问不了先ping虚拟机的IPping不通就检查VMware NAT服务。5. 高频报错排查从提示信息反推根因5.1 “虚拟机监控程序功能对该用户不可用”与Hyper-V冲突这个报错我遇到不止一次而且每次都是用户装了VMware第一次启动虚拟机时报出来的。英文提示大概是VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation。问题根源很清晰Windows的Hyper-V虚拟化平台占用了CPU虚拟化指令VMware Workstation作为第二层hypervisor无法正常调度硬件虚拟化功能。而Hyper-V不一定是你手动开的Win11默认开启的基于虚拟化的安全VBS和内核隔离功能底层就是Hyper-V。解决思路有两种第一种如果你确实不需要WSL2、Docker Desktop、Windows沙盒这些依赖Hyper-V的功能直接关掉Hyper-V相关组件。在Windows功能里取消勾选“Hyper-V”“虚拟机平台”“适用于Linux的Windows子系统”“Windows 沙盒”然后以管理员身份打开CMD执行bcdedit /set hypervisorlaunchtype off重启电脑即可。第二种如果你需要WSL2或Docker不想关Hyper-V那么就要接受VMware Workstation跑不起来的现实改用其支持的兼容模式或者干脆换VirtualBox配合Hyper-V使用但兼容性也不是完全顺滑。这里没有两全其美的方案只能根据自己实际需求取舍。5.2 安装Linux时蓝屏、卡死怎么办Windows宿主蓝屏和虚拟机里的系统“蓝屏”要分开看。如果是宿主机蓝屏大概率是BIOS里CPU虚拟化没开或者驱动冲突。如果是虚拟机里的系统启动出现内核panic后黑屏/花屏则优先考虑ISO镜像不完整或虚拟硬件配置不合理。我推荐一个很有效的排查顺序确认任务管理器里“虚拟化”是否显示“已启用”没开就进BIOS开VT。如果开了检查ISO文件的SHA256校验值是否和官方一致下载中断的ISO会出现各种莫名其妙的问题。尝试修改VMware固件类型新建虚拟机时的“固件类型”如果默认是UEFI而ISO太老不支持换成BIOS试试。把虚拟机内存降到4GB以下CPU核心数降到2如果不再崩说明你配置给的太高导致资源供应不稳。5.3 VMware Tools/快照/删除目录相关的其他小坑“使虚拟机处于静默状态时出错。有关详细信息请参见虚拟机的事件日志。生成快照时……”这个报错的常见原因有两个一是快照路径所在磁盘空间不足二是快照链太深已经有多个嵌套快照再拍快照时合并操作需要较大的IO开销。针对磁盘空间不足清理虚拟机目录下扩展名为.vmem的临时文件或者把快照保存路径改到剩余空间更大的盘符。快照链方面我建议定期把不需要的旧快照删除把当前状态做一次“整合”以便回到最干净的状态不要无限制地保留几十个快照节点快照是把双刃剑太多快照不仅占空间还会影响虚拟机磁盘性能。还有个小坑是尝试通过VMware界面删除虚拟机目录时提示文件被占用。这通常是因为虚拟机的进程还在后台运行。打开任务管理器找到vmware-vmx.exe进程结束掉再删除。如果还删不掉用“VMware Cleanup Tool”清理VMware的残留服务这个工具在处理卸载不干净、服务残留、文件引用失败时特别好用。再补充一条教训如果你要给虚拟机做“复制粘贴”操作确认宿主机到虚拟机之间已经装了open-vm-tools或VMware Tools。没有装的时候剪贴板不互通是正常的但你可能会误以为连不上了。这个工具对VMware Workstation的体验至关重要。最后分享一个我从实际安装里摸索出来的习惯在没特殊需求时虚拟机硬盘格式选择“拆分成多个文件”这样每个文件体积可控备份和迁移更灵活。远程访问方面能用RDP就不用VNC能走SSH隧道就不暴露公网端口。镜像装好系统后第一时间打快照、装增强工具、固定虚拟机IP这三步做完后面所有折腾都会顺畅很多。希望这篇东西能让你少走一点弯路。