2026年-家庭/工作室/小企业免费的云桌面VDI方案--VDI for PVE8/9
2026年-家庭/工作室/小企业免费的云桌面VDI方案--VDI for PVE8/9近年来，随着5G网络、云计算和虚拟化技术的快速发展，云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户，都可以通过云端提供的算力，在任意设备（如手机、平板、低配电脑）上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢？嘿嘿，还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境 部署前准备预期想法：在家里配置一台高性能工作站主机作为服务端，购买一些瘦客户机将瘦终端放在各个房间跟客厅。通过PROXMOX VE + NVIDIA vGPU方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统，实现在家庭各个房间无缝访问高性能计算资源。资源预算情况部署所需要的资源预算使用场景系统线程数内存GPU显卡硬盘数量3D建模/设计/剪辑Window1116线程32G内存vGPU 分配4G显存512GB2台3A游戏/端游Window1116线程16G内存vGPU 分配8G显存512GB2台敲代码macOS1516线程32G内存直通A卡512GB1台日常办公Window108线程8G内存vGPU 分配1G显存256GB1台看电视(瘦终端直装)AndroidTV4线程4G内存核显120GB1台总计所需资源88线程136G内存vGPU显存25G+1张A卡2.8TB6台连接协议说明1）游戏用串流协议，Sunshine+Moonlight串流方案；2）3D建模/设计/剪辑用Horizon协议，GPU表现优秀且支持USB重定向；3）日常办公用RDP或者SPICE协议，其中SPICE协议支持USB重定向和无网络连接可以很好的安全隔离；模式RDPSPICEVMware HorizonSunshine串流协议RdpSPICEBlast/PcoipRtp带宽消耗中高Blast高/Pcoip低高USB重定向Rdp高级usb重定向usb完全重定向usb完全重定向不支持解码h.264 444/420h.264 420h.264 hevc AV1h.264 hevc AV1打印机支持Rdp高级打印USB重定向VMware高级打印/USB重定向不支持瘦终端要求高低高高vGPU支持良好普通优秀优秀[collapse status="false" title="连接协议说明视频版--点我展开 ↓↓↓ "]PVE 连接协议说明视频内容：PVE 云桌面连接协议说明（RDP、SPICE、Horizon、Sunshine）[/collapse]服务端硬件选配准备一台高性能PC或者服务器（做服务端）家用或小工作室就别整机架式服务器了，噪音受不了推荐塔式服务器或工作站。比如戴尔这款Precision 7920 工作站服务端产品参数10人配置(3D建模/设计/游戏)价格(仅供参考)准系统Dell Precision 79203.5寸4盘位 主板 机箱 散热 1400w电源3000元CPU支持2颗 铜牌、银牌、金牌、铂金处理器金牌6248 20核40线程 主频2.5，睿频3.9300元/颗内存24个内存插槽（DDR4 支持ECC自动纠错）192G内存,三星32G DDR4 ECC*6410元/条硬盘标配4个3.5硬盘位（最多可以配置10个3.5硬盘位）2TB Nvme + 16TB机械2000元显卡支持3个双宽显卡2080 Ti 22G 2张 共44G显存2000元/张网卡英特尔 i219 和 i210 双千兆网卡强烈加个10G网卡，英特尔 X520-DA2 双万兆100元PCIE7个PCIE3.0插槽扩展nvme硬盘或者PCIE网卡0元电源1400W电源整机功耗800W左右0元 总价 12160元客户端硬件选配准备一些x86_64架构的瘦客户机（做客户端）小主机：可以找些小主机作为瘦终端，小巧又不占用地方；移动式：也可以整些云笔记本或者老旧笔记本，外出携带都方便；客户端产品参数价格(仅供参考)准系统HP 400G3迷你主机160元CPUG4560 2核4线程 3.50 GHz13元内存4G DDR425元硬盘sata ssd 120G30元 总价228元技术支持如果你是萌新或者是对PVE基础较弱的用户，频道提供专属的技术护航服务服务目录服务内容价格表渠道入口资源包提供PVE服务端+云桌面OS瘦终端的系统镜像；自行看教程部署无任何技术支持；29.9元购买入口技术支持提供方案设计、硬件选购、疑难解答、远程支持；不足一小时按小时收取费用；50元/小时购买入口一条龙部署提供本方案从0-1的远程部署服务；提供简单的远程培训；提供7天的售后和支持；500元购买入口[scode type="share"]定制版PVE镜像包（服务端）安装方式跟常规的PVE安装方法一样。将ISO镜像写入U盘插到设备进行安装，安装好后登录PVE后台打开PVE Shell窗口进行一键部署，本镜像需要PVE联网下载依赖包来部署环境PVE9镜像包说明：1）基于PVE 9.2.1 内核Linux 7.0.2-6-pve版本完成构建；2）集成一键初始化脚本：一键为PVE9合并local分区|换源|开启IOMMU|屏蔽NVIDIA显卡|去订阅弹窗等；3）集成一键部署vGPU脚本：一键安装NVIDIA vGPU Host驱动（11|16|17|18|19|20）和vGPU Unlock-rs服务；4）集成一键去虚拟化脚本：规避虚拟机检测，模拟真实硬件环境，让软件或者端游在虚拟机中运行;5）集成一键随机硬件脚本：为每台虚拟机生成独立的硬件信息（主板|CPU|内存|硬盘|BIOS|机器码）;6）集成一键随机显卡脚本：给每台虚拟机生成独立Quadro专业卡,虚拟机需要NVIDIA vGPU支持;7）集成一键虚拟机多开脚本：批量克隆虚拟机|同步母机数据盘|批量删除虚拟机；8）提供Fastapi-dls GRID驱动授权服务的搭建和LXC还原包，激活vGPU 全功能（vApps/vPC/vWS）;9）提供办公场景、游戏场景的 Win11/Win10/Win7 虚拟机的还原包;[/scode][scode type="blue"]Linux云桌面OS（客户端）Lubuntu云桌面OS说明：1）基于轻量级 Linux 发行版 Lubuntu24.04作为底层 x86_64架构；2）该镜像大小2.94.GB，支持U盘启动、ISO镜像启动，硬盘启动，支持BIOS及UEFI双模式启动；3）默认登录为vdi用户，密码：123456；4）集成PVEVDI客户端3.0.0支持 Spice、RDP、Horizon主流协议；5）支持开机自动运行云桌面客户端，登录后自动进入虚拟机；6）支持Nvme/Emmc/Msata/Sata/Ide等等全系列协议硬盘。7）瘦终端硬件最低要求：2核心 2G内存，8G硬盘空间；Win云桌面OS（客户端）Windows云桌面OS说明：1）基于Windows 10 LTSC 21h2 X64位 企业版 作为瘦终端系统底层；2）该镜像大小4.2GB，支持BIOS及UEFI双模式需要安装到硬盘使用；3）集成PVEVDI客户端3.0.0支持 Spice、RDP、Horizon主流协议；4）支持开机自动运行云桌面客户端，登录后自动进入虚拟机；5）支持Nvme/Emmc/Msata/Sata/Ide等等全系列协议硬盘。6）瘦终端硬件最低要求：2核心 4G内存，16G硬盘空间；[/scode]视频教程请前往B站观看图文部署 -（服务端）服务端将采用Proxmox VE（PVE）免费且开源，无需支付高昂的授权费用。采用典型的C/S架构。在PVE中通过虚拟机权限管理，将虚拟机分配给指定用户。当这个用户通过瘦终端进行登录时，则会查询所拥有的虚拟机，随后通过RDP、Spice、 VMware Horizon等协议连接到虚拟机。对于家庭&工作室&小型企业的用户数量不多，PVE自身就能很好管理起来，既不需要搭建复杂的AD域配置和用户权限，也不需要第三方后台接入管理，所以搭建这套方案并不需要过多的专业知识和维护成本。一、安装Proxmox VE请在高性能的工作站或者服务器上部署PVE，以下将演示定制版PVE ISO镜像的安装过程。BIOS设置[scode type="green"]提前在BIOS开启以下设置开启VT-d --必须开启，英特尔叫vt-d，AMD叫iommu开启SRIOV --如有开启Above 4G --如有关闭安全启动 --在security菜单 secure boot 改disabled推荐使用UEFI引导启动[/scode]PVE烧录U盘提前把balenaEtcher烧录工具和定制版的PVE镜像下载好，用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘，然后插到主机进行PVE的安装。PVE图形安装将U盘或者移动硬盘接入主机引导启动到PVE安装界面，采用第一种图形化界面Install Proxmox VE (Graphical）进行安装。PVE图形界面手动分区安装示意图：如果遇到第一种图形界面安装不成功，出现白屏黑屏或者没法继续的时候，更推荐采用第二种终端化界面Install Proxmox VE (Terminal UI）进行安装。PVE终端化界面手动安装示意图：PVE初始化设置安装完成PVE后，在浏览器输入https://你的PVE管理IP:8006来访问你的PVE管理后台了登录进来后需要对PVE进行一些初始化设置，打开PVE Shell执行脚本①(PVE需要能访问外网，不然无法继续)脚本执行完会对PVE进行自动重启一次。二、部署NVIDIA vGPU3D游戏，3D建模、设计作图是需要用到GPU资源的，以下是部署NVIDIA vGPU的内容，如果你没有N卡或者不需要GPU可以跳过这部分安装。官方支持vGPU的显卡查询：https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html官方非支持vGPU的显卡，需要搭配vGPU_Unlock服务才支持的显卡如下：[collapse status="false" title="NVIDIA vGPU支持的显卡列表 点我展开"][scode type="blue"]以下 Maxwell\Pascal\Turing架构的显卡均支持vGPU，Ampere架构的30系及之后的消费卡暂不支持Maxwell 架构:（GTX 9xx、Quadro Mxxxx、Tesla Mxx）Pascal 架构:（GTX 10xx、Quadro Pxxxx、Tesla Pxx）Turing 架构:（GTX 16xx、RTX 20xx、Quadro RTXxx、Tesla Txx）设备ID支持的显卡列表可能模拟的显卡型号21c4TU116 GeForce GTX 1660 SUPERQuadro RTX 600021d1TU116BM GeForce GTX 1660 Ti MobileQuadro RTX 60002182TU116 GeForce GTX 1660 TiQuadro RTX 60002184TU116 GeForce GTX 1660Quadro RTX 60002187TU116 GeForce GTX 1650 SUPERQuadro RTX 60002188TU116 GeForce GTX 1650Quadro RTX 60002191TU116M GeForce GTX 1660 Ti MobileQuadro RTX 60002192TU116M GeForce GTX 1650 Ti MobileQuadro RTX 60002189TU116 CMP 30HXQuadro RTX 60001fbbTU117GLM Quadro T500 MobileQuadro RTX 60001fd9TU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 60001ff9TU117GLM Quadro T1000 MobileQuadro RTX 60001fddTU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 60001f96TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001fb8TU117GLM Quadro T2000 Mobile / Max-QQuadro RTX 60001fb9TU117GLM Quadro T1000 MobileQuadro RTX 60001f97TU117M GeForce MX450Quadro RTX 60001f98TU117M GeForce MX450Quadro RTX 60001f9cTU117M GeForce MX450Quadro RTX 60001f9dTU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001fb0TU117GLM Quadro T1000 MobileQuadro RTX 60001fb1TU117GL T600Quadro RTX 60001fb2TU117GLM Quadro T400 MobileQuadro RTX 60001fbaTU117GLM T600 MobileQuadro RTX 60001f42TU106 GeForce RTX 2060 SUPERQuadro RTX 60001f47TU106 GeForce RTX 2060 SUPERQuadro RTX 60001f50TU106BM GeForce RTX 2070 Mobile / Max-QQuadro RTX 60001f51TU106BM GeForce RTX 2060 MobileQuadro RTX 60001f54TU106BM GeForce RTX 2070 MobileQuadro RTX 60001f55TU106BM GeForce RTX 2060 MobileQuadro RTX 60001f82TU117 GeForce GTX 1650Quadro RTX 60001f91TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001f92TU117M GeForce GTX 1650 MobileQuadro RTX 60001f94TU117M GeForce GTX 1650 MobileQuadro RTX 60001f95TU117M GeForce GTX 1650 Ti MobileQuadro RTX 60001f76TU106GLM Quadro RTX 3000 Mobile RefreshQuadro RTX 60001f07TU106 GeForce RTX 2070 Rev. AQuadro RTX 60001f08TU106 GeForce RTX 2060 Rev. AQuadro RTX 60001f09TU106 GeForce GTX 1660 SUPERQuadro RTX 60001f0aTU106 GeForce GTX 1650Quadro RTX 60001f10TU106M GeForce RTX 2070 MobileQuadro RTX 60001f11TU106M GeForce RTX 2060 MobileQuadro RTX 60001f12TU106M GeForce RTX 2060 Max-QQuadro RTX 60001f14TU106M GeForce RTX 2070 Mobile / Max-Q RefreshQuadro RTX 60001f15TU106M GeForce RTX 2060 MobileQuadro RTX 60001f36TU106GLM Quadro RTX 3000 Mobile / Max-QQuadro RTX 60001f0bTU106 CMP 40HXQuadro RTX 60001eb5TU104GLM Quadro RTX 5000 Mobile / Max-QQuadro RTX 60001eb6TU104GLM Quadro RTX 4000 Mobile / Max-QQuadro RTX 60001eb8TU104GL Tesla T4Quadro RTX 60001ec2TU104 GeForce RTX 2070 SUPERQuadro RTX 60001ec7TU104 GeForce RTX 2070 SUPERQuadro RTX 60001ed0TU104BM GeForce RTX 2080 MobileQuadro RTX 60001ed1TU104BM GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 60001ed3TU104BM GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 60001f02TU106 GeForce RTX 2070Quadro RTX 60001f06TU106 GeForce RTX 2060 SUPERQuadro RTX 60001ef5TU104GLM Quadro RTX 5000 Mobile RefreshQuadro RTX 60001e81TU104 GeForce RTX 2080 SUPERQuadro RTX 60001e82TU104 GeForce RTX 2080Quadro RTX 60001e84TU104 GeForce RTX 2070 SUPERQuadro RTX 60001e87TU104 GeForce RTX 2080 Rev. AQuadro RTX 60001e89TU104 GeForce RTX 2060Quadro RTX 60001e90TU104M GeForce RTX 2080 MobileQuadro RTX 60001e91TU104M GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 60001e93TU104M GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 60001eb0TU104GL Quadro RTX 5000Quadro RTX 60001eb1TU104GL Quadro RTX 4000Quadro RTX 60001e04TU102 GeForce RTX 2080 TiQuadro RTX 60001e07TU102 GeForce RTX 2080 Ti Rev. AQuadro RTX 60001e2dTU102 GeForce RTX 2080 Ti Engineering SampleQuadro RTX 60001e2eTU102 GeForce RTX 2080 Ti 12GB Engineering SampleQuadro RTX 60001e30TU102GL Quadro RTX 6000/8000Quadro RTX 60001e36TU102GL Quadro RTX 6000Quadro RTX 60001e37TU102GL GRID RTX T10-4/T10-8/T10-16Quadro RTX 60001e78TU102GL Quadro RTX 6000/8000Quadro RTX 60001e09TU102 CMP 50HXQuadro RTX 60001dbaGV100GL Quadro GV100Tesla V100 32GB PCIE1e02TU102 TITAN RTXQuadro RTX 60001cfaGP107GL Quadro P2000Tesla P401cfbGP107GL Quadro P1000Tesla P401d01GP108 GeForce GT 1030Tesla P401d10GP108M GeForce MX150Tesla P401d11GP108M GeForce MX230Tesla P401d12GP108M GeForce MX150Tesla P401d13GP108M GeForce MX250Tesla P401d16GP108M GeForce MX330Tesla P401d33GP108GLM Quadro P500 MobileTesla P401d34GP108GLM Quadro P520Tesla P401d52GP108BM GeForce MX250Tesla P401d56GP108BM GeForce MX330Tesla P401d81GV100 TITAN VTesla V100 32GB PCIE1cb6GP107GL Quadro P620Tesla P401cbaGP107GLM Quadro P2000 MobileTesla P401cbbGP107GLM Quadro P1000 MobileTesla P401cbcGP107GLM Quadro P600 MobileTesla P401cbdGP107GLM Quadro P620Tesla P401cccGP107BM GeForce GTX 1050 Ti MobileTesla P401ccdGP107BM GeForce GTX 1050 MobileTesla P401cb1GP107GL Quadro P1000Tesla P401cb2GP107GL Quadro P600Tesla P401cb3GP107GL Quadro P400Tesla P401c81GP107 GeForce GTX 1050Tesla P401c82GP107 GeForce GTX 1050 TiTesla P401c83GP107 GeForce GTX 1050 3GBTesla P401c8cGP107M GeForce GTX 1050 Ti MobileTesla P401c8dGP107M GeForce GTX 1050 MobileTesla P401c8fGP107M GeForce GTX 1050 Ti Max-QTesla P401c90GP107M GeForce MX150Tesla P401c91GP107M GeForce GTX 1050 3 GB Max-QTesla P401c92GP107M GeForce GTX 1050 MobileTesla P401c94GP107M GeForce MX350Tesla P401c96GP107M GeForce MX350Tesla P401c36GP106 P106MTesla P401c07GP106 P106-100Tesla P401c09GP106 P106-090Tesla P401c20GP106M GeForce GTX 1060 MobileTesla P401c21GP106M GeForce GTX 1050 Ti MobileTesla P401c22GP106M GeForce GTX 1050 MobileTesla P401c23GP106M GeForce GTX 1060 Mobile Rev. 2Tesla P401c30GP106GL Quadro P2000Tesla P401c31GP106GL Quadro P2200Tesla P401c35GP106M Quadro P2000 MobileTesla P401c60GP106BM GeForce GTX 1060 Mobile 6GBTesla P401c61GP106BM GeForce GTX 1050 Ti MobileTesla P401c62GP106BM GeForce GTX 1050 MobileTesla P401bb8GP104GLM Quadro P3000 MobileTesla P401bb9GP104GLM Quadro P4200 MobileTesla P401bbbGP104GLM Quadro P3200 MobileTesla P401bc7GP104 P104-101Tesla P401be0GP104BM GeForce GTX 1080 MobileTesla P401be1GP104BM GeForce GTX 1070 MobileTesla P401c02GP106 GeForce GTX 1060 3GBTesla P401c03GP106 GeForce GTX 1060 6GBTesla P401c04GP106 GeForce GTX 1060 5GBTesla P401c06GP106 GeForce GTX 1060 6GB Rev. 2Tesla P401b87GP104 P104-100Tesla P401ba0GP104M GeForce GTX 1080 MobileTesla P401ba1GP104M GeForce GTX 1070 MobileTesla P401ba2GP104M GeForce GTX 1070 MobileTesla P401badGP104 GeForce GTX 1070 Engineering SampleTesla P401bb0GP104GL Quadro P5000Tesla P401bb1GP104GL Quadro P4000Tesla P401bb3GP104GL Tesla P4Tesla P401bb4GP104GL Tesla P6Tesla P401bb5GP104GLM Quadro P5200 MobileTesla P401bb6GP104GLM Quadro P5000 MobileTesla P401bb7GP104GLM Quadro P4000 MobileTesla P401b06GP102 GeForce GTX 1080 TiTesla P401b07GP102 P102-100Tesla P401b30GP102GL Quadro P6000Tesla P401b38GP102GL Tesla P40Tesla P401b80GP104 GeForce GTX 1080Tesla P401b81GP104 GeForce GTX 1070Tesla P401b82GP104 GeForce GTX 1070 TiTesla P401b83GP104 GeForce GTX 1060 6GBTesla P401b84GP104 GeForce GTX 1060 3GBTesla P401b39GP102GL Tesla P10Tesla P401b00GP102 TITAN XTesla P401b01GP102 GeForce GTX 1080 Ti 10GBTesla P401b02GP102 TITAN XpTesla P40179cGM107 GeForce 940MXTesla M1017c2GM200 GeForce GTX TITAN XTesla M6017c8GM200 GeForce GTX 980 TiTesla M6017f0GM200GL Quadro M6000Tesla M6017f1GM200GL Quadro M6000 24GBTesla M6017fdGM200GL Tesla M40Tesla M601617GM204M GeForce GTX 980MTesla M601618GM204M GeForce GTX 970MTesla M601619GM204M GeForce GTX 965MTesla M60161aGM204M GeForce GTX 980 MobileTesla M601667GM204M GeForce GTX 965MTesla M60174dGM108M GeForce MX130Tesla M10174eGM108M GeForce MX110Tesla M101789GM107GL GRID M3-3020Tesla M101402GM206 GeForce GTX 950Tesla M601406GM206 GeForce GTX 960 OEMTesla M601407GM206 GeForce GTX 750 v2Tesla M601427GM206M GeForce GTX 965MTesla M601430GM206GL Quadro M2000Tesla M601431GM206GL Tesla M4Tesla M601436GM206GLM Quadro M2200 MobileTesla M6015f0GP100GL Quadro GP100Tesla P401404GM206 GeForce GTX 960 FAKETesla M6013d8GM204M GeForce GTX 970MTesla M6013d9GM204M GeForce GTX 965MTesla M6013daGM204M GeForce GTX 980 MobileTesla M6013e7GM204GL GeForce GTX 980 Engineering SampleTesla M6013f0GM204GL Quadro M5000Tesla M6013f1GM204GL Quadro M4000Tesla M6013f2GM204GL Tesla M60Tesla M6013f3GM204GL Tesla M6Tesla M6013f8GM204GLM Quadro M5000M / M5000 SETesla M6013f9GM204GLM Quadro M4000MTesla M6013faGM204GLM Quadro M3000MTesla M6013fbGM204GLM Quadro M5500Tesla M601401GM206 GeForce GTX 960Tesla M6013b3GM107GLM Quadro K2200MTesla M1013b4GM107GLM Quadro M620 MobileTesla M1013b6GM107GLM Quadro M1200 MobileTesla M1013b9GM107GL NVS 810Tesla M1013baGM107GL Quadro K2200Tesla M1013bbGM107GL Quadro K620Tesla M1013bcGM107GL Quadro K1200Tesla M1013bdGM107GL Tesla M10Tesla M1013c0GM204 GeForce GTX 980Tesla M6013c2GM204 GeForce GTX 970Tesla M6013d7GM204M GeForce GTX 980MTesla M601389GM107GL GRID M30Tesla M101390GM107M GeForce 845MTesla M101391GM107M GeForce GTX 850MTesla M101392GM107M GeForce GTX 860MTesla M101393GM107M GeForce 840MTesla M101398GM107M GeForce 845MTesla M101399GM107M GeForce 945MTesla M10139aGM107M GeForce GTX 950MTesla M10139bGM107M GeForce GTX 960MTesla M10139cGM107M GeForce 940MTesla M10139dGM107M GeForce GTX 750 TiTesla M1013b0GM107GLM Quadro M2000MTesla M1013b1GM107GLM Quadro M1000MTesla M1013b2GM107GLM Quadro M600MTesla M101347GM108M GeForce 940MTesla M101348GM108M GeForce 945M / 945ATesla M101349GM108M GeForce 930MTesla M10134bGM108M GeForce 940MXTesla M10134dGM108M GeForce 940MXTesla M10134eGM108M GeForce 930MXTesla M10134fGM108M GeForce 920MXTesla M10137aGM108GLM Quadro K620M / Quadro M500MTesla M10137bGM108GLM Quadro M520 MobileTesla M10137dGM108M GeForce 940ATesla M101380GM107 GeForce GTX 750 TiTesla M101381GM107 GeForce GTX 750Tesla M101382GM107 GeForce GTX 745Tesla M101340GM108M GeForce 830MTesla M101341GM108M GeForce 840MTesla M101344GM108M GeForce 845MTesla M101346GM108M GeForce 930MTesla M10[/scode][/collapse]安装vGPU驱动1）打开PVE Shell执行脚本②一键安装NVIDIA vGPU Host驱动（16|17|18|19）和vGPU Unlock-rs服务2）选择自己要安装的版本，PVE9推荐安装vGPU19，PVE8推荐安装vGPU17。3）重启完成后查看相关服务状态是否正常# 查看相关服务状态 systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service} # 重新启动相关服务 systemctl restart {nvidia-vgpud.service,nvidia-vgpu-mgr.service} # 停止相关服务 systemctl stop {nvidia-vgpud.service,nvidia-vgpu-mgr.service}正常运转没有错误说明服务正常以下为输出日志：root@pve9:~# systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service} ○ nvidia-vgpud.service - NVIDIA vGPU Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpud.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/nvidia-vgpud.service.d └─vgpu_unlock.conf Active: inactive (dead) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago Invocation: a74e7620de244604b92a71531071bccb Process: 984 ExecStart=/usr/bin/nvidia-vgpud (code=exited, status=0/SUCCESS) Main PID: 984 (code=exited, status=0/SUCCESS) Mem peak: 7.6M CPU: 634ms Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Encoder Capacity: 0x64 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: BAR1 Length: 0x100 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Frame Rate Limiter enabled: 0x1 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Number of Displays: 4 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Max pixels: 16384000 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Display: width 5120, height 2880 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Multi-vGPU Exclusive supported: 0x1 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: License: GRID-Virtual-PC,2.0;Quadro-Virtual-DWS,5.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0 Aug 27 20:06:00 pve9 systemd[1]: nvidia-vgpud.service: Deactivated successfully. Aug 27 20:06:00 pve9 systemd[1]: Finished nvidia-vgpud.service - NVIDIA vGPU Daemon. ● nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/nvidia-vgpu-mgr.service.d └─vgpu_unlock.conf Active: active (running) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago Invocation: f323e4299db44e0e9077dbaa55110d14 Process: 1200 ExecStart=/usr/bin/nvidia-vgpu-mgr (code=exited, status=0/SUCCESS) Main PID: 1208 (nvidia-vgpu-mgr) Tasks: 6 (limit: 38267) Memory: 37.9M (peak: 78.3M) CPU: 7.743s CGroup: /system.slice/nvidia-vgpu-mgr.service ├─1208 /usr/bin/nvidia-vgpu-mgr └─1574 vgpu 随后使用nvidia-smi以下为输出日志：root@pve9:~# nvidia-smi Wed Aug 27 23:54:38 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 580.65.05 Driver Version: 580.65.05 CUDA Version: N/A | +-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA P106-100 On | 00000000:08:00.0 Off | N/A | | 23% 46C P8 7W / 120W | 1041MiB / 6144MiB | 1% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 1574 C+G vgpu 1012MiB | +-----------------------------------------------------------------------------------------+ root@pve9:~# nvidia-smi vgpu Wed Aug 27 23:54:44 2025 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 580.65.05 Driver Version: 580.65.05 | |---------------------------------+------------------------------+------------+ | GPU Name | Bus-Id | GPU-Util | | vGPU ID Name | VM ID VM Name | vGPU-Util | |=================================+==============================+============| | 0 NVIDIA P106-100 | 00000000:08:00.0 | 0% | | 3251634191 GRID T4-1Q | dd02... Windows10-22H2,d... | 0% | +---------------------------------+------------------------------+------------+以及mdevctl types查看以下为输出日志：root@pve9:~# mdevctl types 0000:08:00.0 nvidia-222 Available instances: 15 Device API: vfio-pci Name: GRID T4-1B Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=16 nvidia-223 Available instances: 0 Device API: vfio-pci Name: GRID T4-2B Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8 nvidia-224 Available instances: 0 Device API: vfio-pci Name: GRID T4-2B4 Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8 nvidia-225 Available instances: 15 Device API: vfio-pci Name: GRID T4-1A Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=16 nvidia-226 Available instances: 0 Device API: vfio-pci Name: GRID T4-2A Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=8 nvidia-227 Available instances: 0 Device API: vfio-pci Name: GRID T4-4A Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=4 nvidia-228 Available instances: 0 Device API: vfio-pci Name: GRID T4-8A Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=2 nvidia-229 Available instances: 0 Device API: vfio-pci Name: GRID T4-16A Description: num_heads=1, frl_config=60, framebuffer=16384M, max_resolution=1280x1024, max_instance=1 nvidia-230 Available instances: 15 Device API: vfio-pci Name: GRID T4-1Q Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=16Ampere架构显卡开启vGPU官方支持的Ampere架构及之后架构的显卡在PVE安装好vGPU HOST驱动后，还需要开启VF才能使用vGPU，开启VF前你需要在BIOS打开SR-IOV功能。（用的不是Ampere架构以上的显卡请跳过这部分@零帧起手）在PVE Shell 新建一个Systemd自启动服务，开机自启动VFcat > /etc/systemd/system/nvidia-sriov.service <<EOF [Unit] Description=Enable NVIDIA SR-IOV After=network.target nvidia-vgpud.service nvidia-vgpu-mgr.service Before=pve-guests.service [Service] Type=oneshot ExecStartPre=/bin/sleep 5 ExecStart=/usr/lib/nvidia/sriov-manage -e ALL [Install] WantedBy=multi-user.target EOF打开VF后，就可以选Mdev类型开启vGPU给虚拟机了。# 重新加载服务 systemctl daemon-reload # 设置nvidia-sriov.service，开机自启动 systemctl enable nvidia-sriov.service # 启动VF systemctl restart nvidia-sriov.service[scode type="yellow"]像RTX A5000/A6000这类带显示接口的显卡，还需要切换到无显示模式才能用vGPU,先切换好无显示模式再来安装驱动顺序不能乱。# 先下载displaymodeselector工具上传到PVE根目录 https://share.feijipan.com/s/zOZHGpgP # 授权可执行文件 chmod +x displaymodeselector # 切换无显示模式，跟着提示步骤进行关闭 ./displaymodeselector --gpumode # 重启PVE后生效 reboot[/scode]创建vGPU资源映射如果机器的PCI设备列表有很多，或者设备里存在多张显卡又或者在用Ampere架构及以上的显卡采用的是SR-IOV拆分，会多出很多个VF设备。直接从原始设备中添加vGPU的时候很难查找。这时就可以来创建PCI设备的资源映射，这样在添加vGPU设备时能更快的选择到我们vGPU设备。A5000采用SR-IOV拆分，会多出很多个VF设备，只需要全部勾选添加PCI设备时，在映射的设备列表就能找到我们需要的vGPU设备。搭建fastapi-dls授权服务NVIDIA vGPU并非免费产品，需要对vGPU驱动购买许可才能正常使用vGPU，这里我用的是技术社区fastapi-dls项目来取得90天的试用许可。提供2种方式部署fastapi-dls服务，一种是在PVE宿主机本地部署，另一种是使用LXC容器运行docker来部署fastapi-dls，选择其中1种方式进行部署就行。PVE本地部署在PVE shell执行脚本安装FASTAPI-DLS服务来部署服务（PVE需要联网下载依赖包）输入1执行一键部署FastAPI-DLS服务=============================================== FastAPI-DLS 管理脚本 一个部署在PVE宿主机的NVIDIA GRID 驱动授权服务； 支持给NVIDIA GRID vGPU 14-19驱动版本进行授权； =============================================== 1) 一键安装 FastAPI-DLS V2.0.3 2) 一键卸载 FastAPI-DLS 3) 查看服务状态 4) 查看服务日志 5) 重启服务 6) 退出 =============================================== 请选择操作 [1-6]: 这里会检测IP并使用你的PVE服务器IP作为授权地址，这里我们选择Y继续；（如果你PVE地址是内网IP，你又想将授权服务映射公网，则选N，手动填写公网IP地址）端口：默认443，自签证书：默认10年，授权天数周期：默认90天。[STEP] 开始部署 FastAPI-DLS... [INFO] 请配置以下参数（直接回车使用默认值） [INFO] 检测到服务器IP: 10.10.10.253 是否使用此IP? [Y/n]: y 请输入服务端口 [默认: 443]: 请输入证书有效期(天) [默认: 3650]: 请输入租约有效期(天) [默认: 90]: [INFO] 安装配置: 服务器IP: 10.10.10.253 服务端口: 443 证书有效期: 3650 天 租约有效期: 90 天 确认开始安装? [y/N]:安装好后就可以给虚拟机GRID驱动授权了========== FastAPI-DLS 部署完成 ========== 授权服务地址: https://10.10.10.253:443 配置文件位置: /etc/fastapi-dls/env ========================================== 管理命令: 启动: systemctl start fastapi-dls 停止: systemctl stop fastapi-dls 重启: systemctl restart fastapi-dls 状态: systemctl status fastapi-dls 日志: journalctl -u fastapi-dls -f 如果需要修改配置，请编辑 /etc/fastapi-dls/env 后重启服务 ========================================== 按回车键返回主菜单...LXC容器部署[scode type="blue"]LXC容器信息：NVIDIA vGPU 驱动授权服务器（90天授权期，客户端在每13天12点续订1次许可证，授权服务需要保持运行才能自动续期）FASTAPI-DLS 版本：2.0.2CT容器IP：10.10.10.99登录LXC账号：root登录LXC密码：123123[/scode]1）将下载下来的LXC容器还原包vzdump-lxc-100-2025_09_20-FASTAPI-DLS_Version_2.0.2_90day.tar.zst上传到PVE的/var/lib/vz/dump/路径下。然后进行还原2）并将原来的IP改为自己局域网的IP，这里我用10.10.10.251。3）开机并登录LXC容器（账号：root密码：123123）并创建fastapi-dls授权服务。注意下边的IP10.10.10.251改为自己的IP。docker run --restart always --name fastapi-dls -d -e DLS_URL=10.10.10.251 -e DLS_PORT=443 -p 443:443 makedie/fastapi-dls:2.0.2 # 检查fastapi-dls容器是否正在运行 docker ps三、创建虚拟机（Win11）在PVE上创建一个Win11虚拟机资源下载# WINDOWS镜像ISO https://next.itellyou.cn/ # virtio-win驱动 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/四、安装虚拟机（Win11）启动虚拟机，开始安装Win11五、配置虚拟机（Win11）1）安装virtio驱动安装好Win11后，把Virtio驱动给打上，进到CD光驱盘运行virtio-win-guest-tools直接下一步直至安装完成2）启用QEMU Guest Agent安装好后，PVE的虚拟机概要处上可以看到ip信息，如果看不到ip信息，请在关闭虚拟机，在虚拟机的选项中，启用QEMU Guest Agent3）开启RDP远程桌面在系统设置开启RDP远程桌面4）允许RDP显卡加速RDP 支持无显卡运行，在远程桌面的时候默认是不调用显卡，可以开启它，让它支持显卡加速。首先打开虚拟机上的组策略gpedit.msc，依次找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境在右边选择将硬件图形适配器应用于所有远程桌面服务会话 右键编辑，选择已启用，确定保存。5）解除RDP 30帧限制RDP 默认的帧率限制在30帧，可以设置为60帧传输。在注册表打开该路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations在空白处右键->新建->DWORD（32位）值，命名为DWMFRAMEINTERVAL，双击刚添加的这一项，基数选择为十进制，数值数据填写15，确定保存重启生效。6）关闭防火墙关闭Windows防火墙,或者放行3389远程桌面端口7）关闭睡眠/屏幕在系统设置中，把屏幕超时改为从不六、配置vGPU（Guest驱动）1）添加vGPU设备PCI设备：选nvidia显卡（勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备230）音频设备：ich9-intel-hda/后端驱动器：无(不添加的话，串流玩游戏时是没有声音的)[scode type="blue"]其中 GRID T4-1Q (nvidia-230) 是 mdev 的名字，GRID T4--显卡名，1--1G 显存，Q 代表 vWS，nvidia-230 代表ID关于最后一位字母，如下:Q：为需要Quadro技术的性能和功能的创意和技术专业人员提供的虚拟工作站 - CUDA OpenGLC：计算密集型服务器工作负载，如人工智能、深度学习或高性能计算。- CUDA OnlyB：为业务专业人员和知识工作者提供的虚拟桌面 - 45FPS MAXA：为虚拟应用的用户，提供应用流或基于会话的解决方案 - Good for RDSH3D渲染，游戏，AI运算，请选择Q系列型号即可。[/scode]2）安装Guest驱动从vGPU 18.x开始（17版本及之前的直接安装驱动即可），NVIDIA技术团队添加了 NLS ROOT CA 证书验证来保护vGPU授权数据，所以要想正常使用GRID显卡驱动还得想办法把驱动证书强校验给破解。以下是在网上找到的破解方法patched-nvidia-grid-drivers，通过FastAPI-DLS搭配patched-nvidia-grid-driver来跳过证书检查。将GRID驱动和nvxdapix.dll补丁复制到虚拟机# Windows GRID驱动程序 580.88_grid_win10_win11_server2022_dch_64bit_international.exe # vGPU19.0的nvxdapix.dll补丁用于修补WIN GRID驱动程序 https://github.com/rbqvq/patched-nvidia-grid-drivers/blob/master/patched/19.0/nvxdapix.dll双击打开GRID驱动程序，等待程序解压完成，并前往程序解压好的路径将下载下来的nvxdapix.dll补丁替换到Display.Driver文件夹下，然后开始安装GRID驱动程序安装GRID驱动选择精简安装，遇到Windows安全中心的弹窗选择始终安装此驱动程序软件即可。3）授权GRID驱动在浏览器访问fastapi-dls授权服务：https://10.10.10.251/-/client-token会自动下载好授权文件将文件放入C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\这个目录下3) 重启NVIDIA Display Container Ls服务，即可获得授权 授权失败怎么办？ ① 需要检查虚拟机的时间是否对得上授权服务器时间；② fastapi-dls授权服务是否为2.X版本，vGPU18.x后版本必须升级到2.X版本；4）通过远程桌面工具连接虚拟机跑个鲁大师测试一下显卡是否正常工作[scode type="yellow"]想解除60帧？编辑nano /etc/vgpu_unlock/profile_override.toml文件，加入以下信息关闭虚拟机重新开机生效。[profile.nvidia-230] cuda_enabled = 1 frl_enabled = 0 vgpu_type = "NVS"参数说明：[profile.nvidia-230]nvidia-230 为vgpu型号的参数。如选的不是230则改成自己选的那个型号。cuda_enabled = 1是否开启cudafrl_enabled = 0 是否限制帧数，0为不限制vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题[/scode]七、配置VDI角色[scode type="blue"]PVE8角色配置在PVE8的角色菜单创建一个VDIVMUsers的角色，并分配以下特权：VM.Audit VM.Console VM.PowerMgmt VM.Monitor VM.Snapshot.Rollback（可选）。 角色权限说明：VM.Audit权限说明：允许查看/审计虚拟机的配置和状态（只读权限）。VM.Console权限说明：允许通过控制台访问虚拟机（如NoVNC、SPICE或xterm.js）。VM.PowerMgmt权限说明：允许对虚拟机进行电源管理操作。VM.Monitor权限说明：允许查看虚拟机的实时监控数据（如CPU、内存、磁盘I/O等）。VM.Snapshot.Rollback权限说明：将虚拟机回滚到其某个快照。[/scode][scode type="green"]PVE9角色配置在PVE9的角色菜单创建一个VDIVMUsers的角色，并分配以下特权：VM.Audit VM.Console VM.PowerMgmt VM.GuestAgent.FileWrite VM.GuestAgent.FileRead VM.GuestAgent.FileSystemMgmt VM.GuestAgent.Audit VM.GuestAgent.Unrestricted VM.Snapshot.Rollback（可选） 角色权限说明：VM.Audit权限说明：允许查看/审计虚拟机的配置和状态（只读权限）。VM.Console权限说明：允许通过控制台访问虚拟机（如NoVNC、SPICE或xterm.js）。VM.PowerMgmt权限说明：允许对虚拟机进行电源管理操作。VM.GuestAgent.FileWrite权限说明：通过 QEMU 客户机代理向客户机写入文件。VM.GuestAgent.FileRead权限说明：通过 QEMU 客户机代理从客户机读取文件。VM.GuestAgent.FileSystemMgmt权限说明：通过 QEMU 客户机代理冻结/解冻/修剪文件系统。VM.GuestAgent.Audit权限说明：发出信息性 QEMU 客户机代理命令。VM.GuestAgent.Unrestricted权限说明：发出任意 QEMU 客户机代理命令。VM.Snapshot.Rollback权限说明：将虚拟机回滚到其某个快照。[/scode]八、配置VDI用户在PVE的用户菜单创建一个1000的用户。其中领域选择Proxmox VE authentication server。添加好后就能看到用户了，同时在这个页面还支持修改、删除用户信息和密码。九、给VDI用户分配虚拟机使用权在PVE里选中要给VDI用户的虚拟机，点击权限,选择添加，把刚才添加的用户和角色选择进来即可。到这服务端的设置全部完成了，可以退出root账户，使用VDI账户登录PVE管理后台，网页进行管理资源了，由于网页管理虚拟机只有vnc窗口，要想使用完整云桌面功能还是得配置个瘦客户端，接着我们来设置瘦客户端。图文部署 -（客户端）PVE的VDI客户端，是基于Github开源的 PVE-VDIClient项目二次开发的，原作者项目仅支持Spcie协议，目前由本人二次开发，现已支持Spcie、RDP、Horzion协议满足日常云桌面需求，还额外的加入了自动登录开机启动等功能。以下客户端设置内容以Lubuntu2404云桌面OS为例。该云桌面系统资源占用率低，即使在老旧的硬件上也能流畅运行，很适合放在瘦客户机上跑。一、配置PVE VDIClient客户端1）运行VDIClient客户端，点开设置将自己PVE服务端的地址（我的这里是10.10.10.253）填入即可。PVE 主机地址（格式：IP：端口）：10.10.10.253:8006SPICE 代理重写（格式：主机名：端口=IP：端口）：pve8.lan:3128 = 10.10.10.253:3128步骤：打开VDIClient → 设置 → 配置PVE主机IP → 配置Spcie代理 → 保存 → 重新打开软件如何查看主机名？步骤：节点 → 主机 2）登录VDIClient客户端，输入服务端创建好的用户1000进行登录。可以勾上自动登录、记住账号4）登录进来就可以使用Spcie协议、RDP协议、Horzion协议进行远程了。5）如要使用SPICE协议，需要调整一下虚拟机配置。可将显示调整为SPICE或VirtIO-GPU或NVIDIA vGPU，并添加USB和音频重定向。显示：调整为Spice单显示器，SPICE dual monitor表示为2个显示器，最多可添加4个显示器USB：添加USB，后端选择spice。添加几个USB就代表客户端支持多少个USB重定向音频：添加声卡，设备选择ich9-intel-hda 后端选择spice6）同时在虚拟机的选项处，把SPICE增强启用。返回客户端就可以使用SPICE协议进行远程了，Spcie协议支持usb重定向和虚拟机断网连接。7）如要使用RDP协议，需要确保qemu-ga插件已经安装了并正常运行（能显示IP即正常）。8）如要使用RDP协议，不想每次都输入虚拟机的账号和密码，可以在VDIClient的设置里提前填写好账号和密码。这样就能自动登录到虚拟机。RDP用户名：填Windows虚拟机里面的用户RDP密码：填Windows虚拟机里面的开机密码，没设置密码的话可以留空（建议设置个密码，不然还是需要手动点击登录）9）如要使用Horzion协议，同样也需要确保qemu-ga插件已经安装了并正常运行（能显示IP即正常）。10）如要使用Horzion协议，不想每次都输入虚拟机的账号和密码，同样在VDIClient的设置里提前填写好账号和密码以及主机名。这样就能自动登录到虚拟机。Horizon用户名：填Windows虚拟机里面的用户，如果是AD域用户，记得在前面加域前缀如：ZS\yangwenqingHorizon密码：填Windows虚拟机里面的开机密码，没设置密码的话可以留空（建议设置个密码，不然还是需要手动点击登录）Horizon主机名：填Windows虚拟机里面的计算机名称11）如要瘦客户机开机后自动进到某个虚拟机，可以把这个⭐️标点亮（绿色）。这样开机后就能自动登录到虚拟机。记得在登录页面勾选自动登录。二、配置Horizon客户端PVE本身不支持VMware Horizon（blast/pcoip）这类协议，但是可以通过在PVE虚拟机安装Horizon Agent插件直连的方式来实现使用VMware Horizon Client客户端连接我们的PVE虚拟机1）需要在Win11虚拟机上将Omnissa-Horizon-Agent和Omnissa-Horizon-Agent-Direct-Connection安装包放到虚拟机桌面。2）由于我们PVE是没有安装Horizo​​n Connection Server服务的，安装时得从命令行安装 Horizo​​n Agent，跳过Horizo​​n Connection Server 注册的参数。相关说明可见官方Horizo​​n Agent使用文档# 管理员运行CMD，安装 Horizo​​n Agent时加入安装/v VDM_SKIP_BROKER_REGISTRATION=1参数 Omnissa-Horizon-Agent-x86_64-2503-8.15.0-14304348675.exe /v VDM_SKIP_BROKER_REGISTRATION=1执行后会弹出安装窗口，按提示安装即可。3）接着安装Horizon-Agent-Direct-Connection这个双击运行安装就行，不需要命令行安装。4）安装好后重启虚拟机。通过虚拟机IP使用Horizon客户端连接即可。5）到这PVE虚拟机也可以使用VMware Horizon（blast/pcoip）这类协议了。三、游戏党配置Sunshine串流在云端玩游戏推荐采用串流的方式，使用RDP或者SPICE协议来玩游戏会出现丢帧体验不好，建议采用Sunshine串流或Parsec串流方式。客户端云桌面OS已经集成了moonlight，Parsec2款串流工具。只需要在虚拟机配置好串流设置就行，并在虚拟机添加个音频。不然游戏没有声音。Sunshine+Moonlight串流教学可以看这视频[collapse status="true" title="Sunshine+Moonlight串流【保姆级教学】"][/collapse]异地访问要让云桌面在异地也能正常使用，可以通过公网+端口映射或者VPN组网的方式。如果没有公网也可以在腾讯云或者阿里云买台大带宽VPS做端口转发。下边演示在本地爱快做端口映射实现异地访问。在此之前你需要将宽带改桥接在爱快上拨号，并且宽带运营商有提供公网ipv4或者ipv6就可以继续往下看了。IPV4[scode type="blue"]服务端信息OS：PVE8.4.5主机名：pve8.lanIPv4地址：10.10.10.252PVE管理端口：8006Spice API端口：3128[/scode]1）在爱快的端口映射分别将8006和3128端口映射。如果运营商给你分配的是动态ipv4那你还需要做ddns动态域名解析，通过域名访问→爱快动态域名解析教程看这里←。2）返回到瘦客户端OS将公网信息填写到`PVE VDIClient客户端PVE VDIClient客户端修改nano /etc/vdiclient/vdiclient.iniIPV61）在爱快开启ipv6，开启方法可以见官方教程→ipv6设置2）在服务端PVE启用ipv6地址，使用nano命令编辑网络配置文件nano /etc/network/interfaces# 在你的vmbr虚拟网桥底下加入以下参数，如虚拟网桥vmbr0 post-up echo "2" > /proc/sys/net/ipv6/conf/vmbr0/accept_ra修改后效果：auto lo iface lo inet loopback iface eno1 inet manual auto vmbr0 iface vmbr0 inet static address 10.10.10.250/24 gateway 10.10.10.10 bridge-ports eno1 bridge-stp off bridge-fd 0 post-up echo "2" > /proc/sys/net/ipv6/conf/vmbr0/accept_ra source /etc/network/interfaces.d/*3）重启服务端PVE，输入ip -c a就能查看获取的ipv6地址root@pve8:~# ip -c a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether e0:d5:5e:a8:2c:c4 brd ff:ff:ff:ff:ff:ff altname enp0s31f6 3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether e0:d5:5e:a8:2c:c4 brd ff:ff:ff:ff:ff:ff inet 10.10.10.250/24 scope global vmbr0 valid_lft forever preferred_lft forever inet6 2408:8256:f183:5cb:e1d5:8eff:fea8:2cc4/64 scope global dynamic mngtmpaddr valid_lft 255773sec preferred_lft 169373sec inet6 fe80::e2d5:5eff:fea8:2cc4/64 scope link 4）最后就是准备好自己的域名在爱快使用动态域名绑定服务端PVE的ipv6。通过解析的域名填到上面的PXVDI和PVEVDI客户端去（使用ipv6异地访问的话，瘦终端网络必须也要有ipv6环境才能成功访问）集群管理当服务端资源不足了，后面想再增加几台机器做服务端，那么可以在PVE创建集群，把各个服务端节点加入到集群集中管理。创建PVE集群在任意一个服务端创建集群作为主节点，创建集群直接在web创建。步骤：数据中心 ➡️ 集群 ➡️ 创建集群 ➡️ 设置集群名称 ➡️ 选择网络 ➡️ 创建集群加入PVE集群加入集群需要确保节点下没有虚拟机/LXC 容器才可以正常加入集群。在需要加入的节点点击步骤：数据中心 ➡️ 集群 ➡️ 加入集群 ➡️ 粘贴集群加入信息 ➡️ 输入集群 root 密码 ➡️ 选择网络确认加入集群如果要弄成高可用分布式的集群方案可以看这篇文章。[post cid="2606" /]FAQ问答[scode type="green"]一、NVIDIA vGPU部分Q1: 我的显卡是Tesla P4，安装好了vGPU驱动，在Windows虚拟机看到显卡变成了T4或者RTXA6000A1: 部分NVIDIA vGPU HOST驱动是做了修补集成了vGPU unlock服务，所以你看到p4变成T4或者RTXA6000都是正常的并不会影响其性能。当然p4本身就是支持的vGPU卡，在vGPU17版本前直接用原生NVIDIA vGPU HOST驱动就行,如果你要用vGPU17版本及以上就得模拟一个受支持的显卡型号才能使用Q2：我的显卡有6GB显存，选用GRID T4-1Q（nvidia-230）模型，那显示可用数16个，我是不是能开16个？A2：错的！nvidia-230模型每开一个vgpu会占用1024M显存，6G显存理论就是1G+1G+1G+1G+1G+1G=6个。16是这个230模型最大可用数Q3：为啥我给虚拟机使用nvidia-230模型后，其他虚拟机想再使用其他模型就不让选择了可用数为0。只能用nvidia-230模型。A3：对的，默认vGPU是置于相等大小模式，一旦选了这个模型后，所有虚拟机都将采用该模型，你不能一台虚拟机使用nvidia-230模型，另一台虚拟机使用nvidia-231模型。但是从vGPU18版本后NVIDIA开始对老显卡非SRIOV的虚拟化也支持了混合模式即支持不同显存大小。打脸的是我们用的消费卡/非支持的专业卡依旧不能使用官方方法开启混合模式，卡不支持还是得用vGPU Unlock解锁修改。官方开启GPU混合大小模式1）使用nvidia-smi -q命令列出所有物理 GPU 的状态，并检查异构时间分片 vGPU 大小是否受支持。当Heterogeneous Time-Slice Sizes项如果是Supported状态，说明你的显卡支持开启混合模式.... Attached GPUs : 1 GPU 00000000:41:00.0 ... Heterogeneous Time-Slice Sizes : Supported ...2）使用以下命令开启混合大小模式。将id值改自己显卡获取到的数字# 开启混合大小模式 nvidia-smi vgpu -i id -shm 1 # 例如： nvidia-smi vgpu -i 0 -shm 1 # 输出以下信息说明开启成功 Enabled vGPU heterogeneous mode for GPU 00000000:41:00.0使用nvidia-smi -q命令检查 vGPU 异构模式是否已启用，以确认 GPU 现在处于混合大小模式。 ... vGPU Heterogeneous Mode : Enabled ...如要切换回GPU置于相等大小模式，使用-shm 0选项运行此命令即可。Q4：我显卡不支持官方方法开启GPU混合大小模式，我要怎么给每台虚拟机分配不同大小的显存？A4：可以配合vGPU Unlock，通过修改framebuffer、framebuffer_reservation这2个值就能给每台虚拟机自定义显存大小。显存大小不建议低于1GB，低于1GB将无法启用NVENC视频编解码器，虽可改512M，384M，但你的显卡核心性能就在那，拆分的越多性能越弱，与其减小显存多开，不如多买几张卡。例如：我要使用nvidia-230模型给101虚拟机分配4G显存，102虚拟机分配2G显存，那么我就这样写即可nano命令编辑nano /etc/vgpu_unlock/profile_override.toml# 自定义nvidia-230模型 [profile.nvidia-230] # 启用cuda支持 cuda_enabled = 1 # 解除帧率限制 frl_enabled = 0 # 修复Q系列OpenGL异常问题 vgpu_type = "NVS" # 配置1GB显存的值 framebuffer = 939524096 framebuffer_reservation = 134217728 [vm.101] # 给101虚拟机设置4G显存 framebuffer = 3959422976 framebuffer_reservation = 335544320 [vm.102] # 给102虚拟机设置2G显存 framebuffer = 1946157056 framebuffer_reservation = 201326592Q5：我的显卡明明有6GB显存，用1GB显存的nvidia-230模型开了6台虚拟机，启动到第6台虚拟机发现无法启动是怎么回事？A5：总显存值剩余不足1GB，所以到第6台时就没法启动了，可以执行nvidia-smi查看剩余显存，通过改小第6台虚拟机显存大小再启动即可，或者把nvidia-230模型整体显存改小以下是些换算好的显存值，有需要可以替换到profile_override.toml文件# 设置384M显存 framebuffer = 318767104 framebuffer_reservation = 83886080 # 设置512M显存 framebuffer = 436207616 framebuffer_reservation = 100663296 # 设置896M显存 framebuffer = 822083584 framebuffer_reservation = 117440512 # 设置1GB显存 framebuffer = 939524096 framebuffer_reservation = 134217728 # 设置2GB显存 framebuffer = 1946157056 framebuffer_reservation = 201326592 # 设置3GB显存 framebuffer = 2952790016 framebuffer_reservation = 268435456 # 设置4GB显存 framebuffer = 3959422976 framebuffer_reservation = 335544320 # 设置5GB显存 framebuffer = 4966055936 framebuffer_reservation = 402653184 # 设置6GB显存 framebuffer = 5972688896 framebuffer_reservation = 469762048 # 设置8GB显存 framebuffer = 7985954816 framebuffer_reservation = 603979776 # 设置10GB显存 framebuffer = 9999220736 framebuffer_reservation = 738197504 # 设置12GB显存 framebuffer = 12012486656 framebuffer_reservation = 872415232 # 设置16GB显存 framebuffer = 16039018496 framebuffer_reservation = 1140850688 # 设置20GB显存 framebuffer = 20065550336 framebuffer_reservation = 1409286144 # 设置24GB显存 framebuffer = 24092082176 framebuffer_reservation = 1677721600 # 设置32GB显存 framebuffer = 32145145856 framebuffer_reservation = 2214592512 # 设置48GB显存 framebuffer = 48001712128 framebuffer_reservation = 3537895424Q6：为啥帧率限制在60帧，可以解除帧率限制？A6：可以的，vGPU调度器默认采用Best Effort（尽力而为）策略，A|Q系列会被限制在60帧，B系列会限制在45帧。如要解除帧率限制则改为Equal Share（均等份额）策略即可。只需要在PVE Shell中执行以下命令(这个是官方方法，如果你安装vGPU unlock直接修改配置文件frl_enabled = 0也是一样的效果)# 将 所有 vGPU 调度策略设置为均等份额调度器，并采用默认时间片长度 echo "options nvidia NVreg_RegistryDwords="RmPVMRL=0x01"" > /etc/modprobe.d/nvidia.conf # 更新initramfs update-initramfs -u -k all # 重启 reboot均等份额策略：物理 GPU 由其上所有运行的 vGPU 平均共享。当 vGPU 数量变化时，每个 vGPU 获得的份额会动态调整。如开1个VM则有100%性能，开2个VM则有50%性能，开3个VM则有33%性能，3个VM关掉一个又会变回50%性能。Q7：只能解除帧率限制或者限制在60帧，是否可以自定义帧率限制？A7：当然可以，在PVE里做完解除帧率限制后再给虚拟机安装个微星小飞机RTSS显卡锁帧工具，就可以自定义锁定帧率了。比如30帧，100帧等等。[button color="success" icon="glyphicon glyphicon-save" url="https://share.feijipan.com/s/oiWkb9rT" type=""]RTSS显卡锁帧工具7.3.7-中文版[/button]Q8：可以固定分辨率大小？或者说是固定默认分辨率。A8：可以的，需要配合vGPU unlock覆盖配置文件，去修改profile_override.toml文件。如要固定最大/默认分辨率大小，写法如下:如分配最大为1个1920x1080分辨率的显示器# 显示器数量 num_displays = 1 # 显示器长宽 display_width = 1920 display_height = 1080 #显示器分辨率，max_pixels值=长宽的乘积 max_pixels = 2073600Q9：我已经用FASTAPI-DLS生成的授权文件给虚拟机NVIDIA GRID驱动成功授权了，这个有数量限制吗？A9：没有明确的授权数量上限，而是控制有效期为默认90天。客户端将在每13天的12点续订一次许可证，所以授权服务需要一直开着才能自动续期；如遇到授权失败，需要检查虚拟机的时间是否与授权服务器一致，必须一致才能取得授权；如安装18 19的vGPU驱动还需要将FASTAPI-DLS版本升级到2.X，同时替换Guest驱动补丁才能正常授权Q10：你的显卡驱动程序已过期，不符合运行《暗黑破坏神IV》的最低要求。请更新驱动程序并重试。当前版本：551.61，最低要求版本：552.74A10：游戏需要较新的驱动才能游戏，可以尝试直接在虚拟机安装552.74的驱动，如果安装了新的Guest驱动报43代码错误，则你还需要升级PVE宿主机的vGPU Host驱动。升级宿主机vGPU驱动前记得先卸载驱动再安装Q11：为啥我在PVE网页虚拟机控制台里打完显卡驱动后，就不能操作了呢？A11：请配置好远程桌面或者安装第三方远程工具，确认能通过远程连上虚拟机再来安装显卡驱动，如果你没配置就安装了显卡驱动，则需要先删除显卡设备，配置好远程再添加上显卡设备。因为你一旦安装好显卡驱动后系统就会呈现双显示器状态，这样就会导致PVE网页虚拟机控制台黑屏，或者是副屏状态，使得无法操作虚拟机。这里推荐把PVE控制台窗口显示给关闭，即在【虚拟机→硬件→显示】改成“无”，只保留vGPU一个显示器,通过远程操作虚拟机。如果你要在PVE控制台操作虚拟机，不想借助外部的远程工具，可以用ToDesk远程到虚拟机，把显示屏设置改为仅控制台窗口显示，这样PVE的Web显示就能操作了。（注意：PVE控制台的窗口是独立的虚拟显卡并不调用VGPU；UEFI安装的虚拟机修改PVE的Web窗口分辨率需要在虚拟机BIOS修改，SeaBIOS安装的虚拟机在系统显示设置进行修改分辨率）UEFI虚拟机修改PVE Web窗口分辨率操作步骤：虚拟机开机按esc键进入BIOS → Device Manager → OVMF Platform ConfigurationQ12：我用的是CMP系列的30HX/40HX/50HX的挖矿卡，为啥一切都正常，虚拟机就是无法启动。A12：CMP系列的挖矿卡寄存器BAR1只有64MB，要启用vGPU实例默认需要256MB，需要将vGPU配置信息重写。将换算好的64M的bar1值，写入profile_override.toml文件1）使用命令lspci -v -s 硬件ID查看自己显卡bar1大小，如30hx：2）nano命令编辑nano /etc/vgpu_unlock/profile_override.toml# 配置nvidia-230重写文件 [profile.nvidia-230] # 将bar1_length参数调整为64MB bar1_length = 0x40[/scode][scode type="blue"]二、虚拟机部分Q1：我虚拟机分配的内存给多少pve就占用多少，且在pve控制台不能操作关机和不显示IP是怎么回事？A1：VMware平台有VMwareTools，KVM平台有qemu-guest-agent。PVE下给虚拟机安装qemu-guest-agent可解决虚拟机无法关机和内存不同步IP不显示等问题。在PVE先给虚拟机开启qemu-guest-agent再安装qemu-guest-agentWindows虚拟机为例下载 Virtio 驱动，例如 virtio-win-0.1.240.iso，上传到虚拟机。加载镜像文件后安装 virtio-win-gt-x64.msi和virtio-win-guest-tools.exe，然后重启系统。[button color="success" icon="glyphicon glyphicon-save" url="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/" type=""]virtio驱动[/button]Q2：我的虚拟机运行的多了，虚拟机变卡了怎么办？A2：既要马儿跑，又要马儿不吃草的道理，机器做了虚拟化，CPU，硬盘，网卡等硬件都得依靠处理器去协调，所以结合自己硬件合理分配资源；1）CPU：游戏场景请选用单核性能强的处理器；3D建模、做图请给多一点线程和GPU显存；2）硬盘：硬盘IO读写越快虚拟机越流畅，不要把所有虚拟机都跑在一个硬盘那样会卡成PPT，推荐4-5个虚拟机一个硬盘，可以使用固态+机械硬盘组合，系统盘跑在固态上，数据盘跑在机械。强烈推荐用nvme硬盘,10块机械硬盘组的raid0都不如一块nvme来的实际3) 网卡：5-10个虚拟机千兆物理网卡足矣，其他的建议升级万兆网卡甚至更高4) GPU：当把帧率限制解除后，GPU分配给1台虚拟机时那么这台虚拟机能获得GPU100%性能，分配2台则50%性能，3台则33.3%性能；要想稳定多开推荐将帧率锁在60帧。Q3：工作室有20个人，准备了20个瘦终端想在服务端机器上开20个虚拟机给员工日常办公需要怎样的配置？A3：单台服务端不建议直接跑20个虚拟机，可以用2台服务端分别跑10个虚拟机，毕竟一旦瘫痪就全体停工；以下是日常办公单台虚拟机配置（仅供参考）：操作系统：Windows 10/11（64位）处理器：8个线程内存：16GB显卡：分配1G显存，浏览网页，看看视频够用了存储空间：256GB那么20开硬件选配如下：处理器：AMD EPYC 7742 *2 (128核心256线程)内存：384G显卡：GeForce GTX 2080 Ti 22G / Tesla P40 24G硬盘：4张1TB Nvme高速盘；每张放4-5个虚拟机网卡：10g/40g网卡Q4：虚拟机能不能像LXC容器一样在外面配置IP，我不想登录到虚拟机里面手动修改。A4：支持的，可以在虚拟机安装一个cloudinit初始化软件，这样我们就可以在外面实现重置用户名，用户密码，IP地址等信息[button color="success" icon="glyphicon glyphicon-save" url="https://github.com/cloudbase/cloudbase-init" type=""]cloudinit软件[/button]1）将下载好的CloudbaseInitSetup_1_1_6_x64.msi文件进行安装（Win虚拟机为例）2）安装好后将路径下的C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf的文件内容全部删掉替换为以下的：该配置文件只做修改IP动作，其他的重置用户名，用户密码等不生效；[DEFAULT] config_drive_raw_hhd=true config_drive_cdrom=true config_drive_vfat=true bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\ mtu_use_dhcp_config=true ntp_use_dhcp_config=true plugins=cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin verbose=true debug=true log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ log_file=cloudbase-init.log local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ check_latest_version=false3）关机虚拟机，给虚拟机添加一个Cloudinit设备4）最后就是把虚拟机开机，然后把IP和DNS配置上去，点击重生成镜像，等待180秒。IP就能自动触发修改了。Q5：PVE控制台给虚拟机选了Spice qxl显示，鼠标偏移错位不能正常点击。A5：是的，在PVE控制台使用Spice + NoVNC使用的话，鼠标会错位。解决办法也很简单，把鼠标驱动换成vmware的鼠标驱动即可。使用该协议的话还需要安装Spice guest tool和qxl虚拟显卡驱动，这2项都已经集成到virtio驱动里了，直接安装virtio驱动即可[button color="success" icon="glyphicon glyphicon-save" url="https://share.feijipan.com/s/HgWBYhXU" type=""]Vmware鼠标驱动[/button][/scode][scode type="yellow"]三、瘦终端部分Q1：Lubuntu云桌面OS能否取消登录密钥环认证弹窗？免密码登录呢？A1：可以的，打开终端执行以下命令将vdi账户密码删除，并清理登录密钥环认证即可# 清除登录密钥环 rm ~/.local/share/keyrings/login.keyring # 删掉vdi账户密码 sudo passwd -d vdiQ2：我想让Horizon客户端开机后自动登录到虚拟机，要如何设置？A2：可以的，比如我现在想让102这台虚拟机在Lubuntu云桌面OS上使用Horizon客户端开机自启操作虚拟机ID：102 虚拟机IP：10.10.10.23 计算机名：Win10-Office-01 账号：administartor 密码：123456打开开始菜单 → 首选项 → LXQt设置 → 会话配置 → 自动启动 → 添加我们添加一个自启动程序，名称随意，命令用以下指令：# 把以下虚拟机信息替换成自己实际的虚拟机信息即可。 /usr/bin/vmware-view --serverURL=10.10.10.23 --desktopName=Win10-Office-01 --userName=administrator --password=123456 --nonInteractive再把Horzion客户端的证书检查给关闭，这样瘦客户机开机后就自动进入虚拟机了。同样，如果想让102这台虚拟机在Windows云桌面OS上使用Horizon客户端开机自启操作的话，可以建立一个bat脚本再配合个静默执行的vbs脚本，把vbs脚本放到开机自启文件夹即可。bat脚本，命名为horizon_vm102.bat@echo off REM 连接到 VMware Horizon 虚拟机 REM 请根据实际情况修改以下参数：--serverURL, --desktopName, --userName, --domainName, --password "C:\Program Files\VMware\VMware Horizon View Client\vmware-view.exe" ^ --serverURL=10.10.10.23 ^ --desktopName=Win10-Office-01 ^ --userName=administrator ^ --domainName=Win10-Office-01 ^ --password=123456 ^ --nonInteractive exitvbs脚本，命名为autorun.vbsSet objShell = CreateObject("WScript.Shell") objShell.Run "C:\horizon_vm102.bat", 0, FalseQ3：我有公网IP，服务端PVE做好了端口映射，异地访问只能使用SPICE协议连接虚拟机，其他协议连不上是咋回事？A3：是的，Spice协议是走PVE通信的所以可以连接，RDP，Horizon协议是直连模式需要独立映射虚拟机远程端口才能连接。最好的方案是搭建VPN组网而非端口映射，比如wireguard组网，这样就能使用任何协议连接虚拟机了且更安全。如果你需要做端口映射可参考以下列表：协议模式端口说明Spice代理模式TCP 8006 3128配合PVE VDI客户端使用RDP直连模式TCP 3389 UDP 3389使用RDP协议的客户端都可以连接Horzion直连模式TCP 80 443 4172 22443 UDP 4172 22443使用VMware Horzion客户端连接Sunshine直连模式TCP 47984-48010（端口范围） UDP 47984-48010（端口范围）使用Moonlight客户端连接Q4：瘦客户端使用Spice协议，鼠标没法显示咋办？A4：这是因为虚拟机里存在多个GPU图形显卡，导致Spcie协议的鼠标异常。如果要使用SPICE协议，其实用不到vGPU图形加速，SPICE协议只支持2D图形加速，没法正常调用vGPU的。所以可以直接删除虚拟机分配的vGPU，如果你想保留vGPU解决方法也很简单，去设备管理器里把其他的GPU禁用再启用，鼠标就能正常使用了。这里弄了个一键脚本可以放到开机自启文件夹自动运行就不需要每次去点击了修复Spice协议鼠标不显示问题.bat@echo off powershell -WindowStyle Minimized -Command "Get-PnpDevice | Where-Object {$_.FriendlyName -like '*NVIDIA GRID*'} | Disable-PnpDevice -Confirm:$false" powershell -WindowStyle Minimized -Command "Get-PnpDevice | Where-Object {$_.FriendlyName -like '*Horizon Indirect Display*'} | Disable-PnpDevice -Confirm:$false" ping -n 3 127.0.0.1 >nul powershell -WindowStyle Minimized -Command "Get-PnpDevice | Where-Object {$_.FriendlyName -like '*NVIDIA GRID*'} | Enable-PnpDevice -Confirm:$false" powershell -WindowStyle Minimized -Command "Get-PnpDevice | Where-Object {$_.FriendlyName -like '*Horizon Indirect Display*'} | Enable-PnpDevice -Confirm:$false"[/scode]