2026年-家庭/工作室/小企业免费的云桌面VDI方案--VDI for PVE8/9
近年来,随着5G网络、云计算和虚拟化技术的快速发展,云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户,都可以通过云端提供的算力,在任意设备(如手机、平板、低配电脑)上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢?嘿嘿,还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境 
部署前准备
预期想法:在家里配置一台高性能工作站主机作为服务端,购买一些瘦客户机将瘦终端放在各个房间跟客厅。通过PROXMOX VE + NVIDIA vGPU方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统,实现在家庭各个房间无缝访问高性能计算资源。
资源预算情况
部署所需要的资源预算
| 使用场景 | 系统 | 线程数 | 内存 | GPU显卡 | 硬盘 | 数量 |
|---|---|---|---|---|---|---|
| 3D建模/设计/剪辑 | Window11 | 16线程 | 32G内存 | vGPU 分配4G显存 | 512GB | 2台 |
| 3A游戏/端游 | Window11 | 16线程 | 16G内存 | vGPU 分配8G显存 | 512GB | 2台 |
| 敲代码 | macOS15 | 16线程 | 32G内存 | 直通A卡 | 512GB | 1台 |
| 日常办公 | Window10 | 8线程 | 8G内存 | vGPU 分配1G显存 | 256GB | 1台 |
| 看电视(瘦终端直装) | AndroidTV | 4线程 | 4G内存 | 核显 | 120GB | 1台 |
总计 | 所需资源 | 88线程 | 136G内存 | vGPU显存25G+1张A卡 | 2.8TB | 6台 |
连接协议说明
1)游戏用串流协议,Sunshine+Moonlight串流方案;2)3D建模/设计/剪辑用Horizon协议,GPU表现优秀且支持USB重定向;3)日常办公用RDP或者SPICE协议,其中SPICE协议支持USB重定向和无网络连接可以很好的安全隔离;
| 模式 | RDP | SPICE | VMware Horizon | Sunshine串流 |
|---|---|---|---|---|
| 协议 | Rdp | SPICE | Blast/Pcoip | Rtp |
| 带宽消耗 | 中 | 高 | Blast高/Pcoip低 | 高 |
| USB重定向 | Rdp高级usb重定向 | usb完全重定向 | usb完全重定向 | 不支持 |
| 解码 | h.264 444/420 | h.264 420 | h.264 hevc AV1 | h.264 hevc AV1 |
| 打印机支持 | Rdp高级打印 | USB重定向 | VMware高级打印/USB重定向 | 不支持 |
| 瘦终端要求 | 高 | 低 | 高 | 高 |
| vGPU支持 | 良好 | 普通 | 优秀 | 优秀 |
连接协议说明视频版--点我展开 ↓↓↓
PVE 连接协议说明
视频内容:PVE 云桌面连接协议说明(RDP、SPICE、Horizon、Sunshine)
服务端硬件选配
准备一台高性能PC或者服务器(做服务端)
家用或小工作室就别整机架式服务器了,噪音受不了推荐塔式服务器或工作站。比如戴尔这款Precision 7920 工作站
| 服务端 | 产品参数 | 10人配置(3D建模/设计/游戏) | 价格(仅供参考) |
|---|---|---|---|
| 准系统 | Dell Precision 7920 | 3.5寸4盘位 主板 机箱 散热 1400w电源 | 3000元 |
| CPU | 支持2颗 铜牌、银牌、金牌、铂金处理器 | 金牌6248 20核40线程 主频2.5,睿频3.9 | 300元/颗 |
| 内存 | 24个内存插槽(DDR4 支持ECC自动纠错) | 192G内存,三星32G DDR4 ECC*6 | 410元/条 |
| 硬盘 | 标配4个3.5硬盘位(最多可以配置10个3.5硬盘位) | 2TB Nvme + 16TB机械 | 2000元 |
| 显卡 | 支持3个双宽显卡 | 2080 Ti 22G 2张 共44G显存 | 2000元/张 |
| 网卡 | 英特尔 i219 和 i210 双千兆网卡 | 强烈加个10G网卡,英特尔 X520-DA2 双万兆 | 100元 |
| PCIE | 7个PCIE3.0插槽 | 扩展nvme硬盘或者PCIE网卡 | 0元 |
| 电源 | 1400W电源 | 整机功耗800W左右 | 0元 |
| 总价 | 12160元 |
客户端硬件选配
准备一些x86_64架构的瘦客户机(做客户端)
小主机:可以找些小主机作为瘦终端,小巧又不占用地方;
移动式:也可以整些云笔记本或者老旧笔记本,外出携带都方便;
| 客户端 | 产品参数 | 价格(仅供参考) |
|---|---|---|
| 准系统 | HP 400G3迷你主机 | 160元 |
| CPU | G4560 2核4线程 3.50 GHz | 13元 |
| 内存 | 4G DDR4 | 25元 |
| 硬盘 | sata ssd 120G | 30元 |
| 总价 | 228元 |
技术支持
如果你是萌新或者是对PVE基础较弱的用户,频道提供专属的技术护航服务
| 服务目录 | 服务内容 | 价格表 | 渠道入口 |
|---|---|---|---|
| 资源包 | 提供PVE服务端+云桌面OS瘦终端的系统镜像;自行看教程部署无任何技术支持; | 29.9元 | 购买入口 |
| 技术支持 | 提供方案设计、硬件选购、疑难解答、远程支持;不足一小时按小时收取费用; | 50元/小时 | 购买入口 |
| 一条龙部署 | 提供本方案从0-1的远程部署服务;提供简单的远程培训;提供14天的售后和支持; | 500元 | 购买入口 |
定制版PVE镜像包(服务端)
安装方式跟常规的PVE安装方法一样。将ISO镜像写入U盘插到设备进行安装,安装好后登录PVE后台打开PVE Shell窗口进行一键部署,本镜像需要PVE联网下载依赖包来部署环境
PVE9镜像包说明:
1)基于PVE 9.1.1 内核Linux 6.17.2-1-pve版本完成构建;
2)集成一键初始化脚本:一键为PVE9合并local分区|换源|开启IOMMU|屏蔽NVIDIA显卡|去订阅弹窗等;
3)集成一键部署vGPU脚本:一键安装NVIDIA vGPU Host驱动(16|17|18|19)和vGPU Unlock-rs服务;
4)集成一键去虚拟化脚本:规避虚拟机检测,模拟真实硬件环境,让软件或者端游在虚拟机中运行;
5)集成一键随机硬件脚本:为每台虚拟机生成独立的硬件信息(主板|CPU|内存|硬盘|BIOS|机器码);
6)集成一键随机显卡脚本:给每台虚拟机生成独立Quadro专业卡,虚拟机需要NVIDIA vGPU支持;
7)集成一键虚拟机多开脚本:批量克隆虚拟机|同步母机数据盘|批量删除虚拟机;
8)提供fastapi-dls vGPU授权GRID驱动服务的LXC还原包,90天周期,到期自动续;
9)提供办公场景的 Win11 24h2 x64 虚拟机的还原包;
10)提供游戏场景的 Win10 22h2 x64 虚拟机的还原包;
Linux云桌面OS(客户端)
Lubuntu云桌面OS说明:
1)基于轻量级 Linux 发行版 Lubuntu24.04作为底层 x86_64架构;
2)该镜像大小3.58.GB,支持U盘启动、ISO镜像启动,硬盘启动,支持BIOS及UEFI双模式启动;
3)默认登录为vdi用户,密码:123456;
4)集成PVEVDI客户端2.0.2和PXVDI客户端3.0.4模块,支持 Spice、RDP、VNC 、Horizon等主流协议;
5)模块还加入了常用远程软件如向日葵、ToDesk、RustDesk、Sunshine串流,Parsec串流;
6)支持无桌面模式,开机自动运行云桌面客户端,登录后自动进入虚拟机;
7)支持Nvme/Emmc/Msata/Sata/Ide等等全系列协议硬盘。
8)瘦终端硬件最低要求:2核心 2G内存,16G硬盘空间;
Win云桌面OS(客户端)
Windows云桌面OS说明:
1)基于Windows 10 LTSC 21h2 X64位 企业版 作为瘦终端系统底层;
2)该镜像大小5.26.GB,支持BIOS及UEFI双模式需要安装到硬盘使用;
3)集成PVEVDI客户端2.0.2和VMware Horizon客户端2312支持 Spice、RDP、Horizon主流协议;
4)支持Nvme/Emmc/Msata/Sata/Ide等等全系列协议硬盘。
5)瘦终端硬件最低要求:2核心 4G内存,64G硬盘空间;
视频教程
请前往B站观看
图文部署 -(服务端)
服务端将采用Proxmox VE(PVE)免费且开源,无需支付高昂的授权费用。采用典型的C/S架构。在PVE中通过虚拟机权限管理,将虚拟机分配给指定用户。当这个用户通过瘦终端进行登录时,则会查询所拥有的虚拟机,随后通过RDP、Spice、 VMware Horizon等协议连接到虚拟机。对于家庭&工作室&小型企业的用户数量不多,PVE自身就能很好管理起来,既不需要搭建复杂的AD域配置和用户权限,也不需要第三方后台接入管理,所以搭建这套方案并不需要过多的专业知识和维护成本。
一、安装Proxmox VE
请在高性能的工作站或者服务器上部署PVE,以下将演示定制版PVE ISO镜像的安装过程。
BIOS设置
提前在BIOS开启以下设置
开启VT-d --必须开启,英特尔叫vt-d,AMD叫iommu- 开启SRIOV --如有
- 开启Above 4G --如有
- 关闭安全启动 --在security菜单 secure boot 改disabled
推荐使用UEFI引导启动
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 vGPU
3D游戏,3D建模、设计作图是需要用到GPU资源的,以下是部署NVIDIA vGPU的内容,如果你没有N卡或者不需要GPU可以跳过这部分安装。
官方支持vGPU的显卡查询:https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html
官方非支持vGPU的显卡,需要搭配vGPU_Unlock服务才支持的显卡如下:
点我展开
以下 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 | 支持的显卡列表 | 可能模拟的显卡型号 |
|---|---|---|
| 21c4 | TU116 GeForce GTX 1660 SUPER | Quadro RTX 6000 |
| 21d1 | TU116BM GeForce GTX 1660 Ti Mobile | Quadro RTX 6000 |
| 2182 | TU116 GeForce GTX 1660 Ti | Quadro RTX 6000 |
| 2184 | TU116 GeForce GTX 1660 | Quadro RTX 6000 |
| 2187 | TU116 GeForce GTX 1650 SUPER | Quadro RTX 6000 |
| 2188 | TU116 GeForce GTX 1650 | Quadro RTX 6000 |
| 2191 | TU116M GeForce GTX 1660 Ti Mobile | Quadro RTX 6000 |
| 2192 | TU116M GeForce GTX 1650 Ti Mobile | Quadro RTX 6000 |
| 2189 | TU116 CMP 30HX | Quadro RTX 6000 |
| 1fbb | TU117GLM Quadro T500 Mobile | Quadro RTX 6000 |
| 1fd9 | TU117BM GeForce GTX 1650 Mobile Refresh | Quadro RTX 6000 |
| 1ff9 | TU117GLM Quadro T1000 Mobile | Quadro RTX 6000 |
| 1fdd | TU117BM GeForce GTX 1650 Mobile Refresh | Quadro RTX 6000 |
| 1f96 | TU117M GeForce GTX 1650 Mobile / Max-Q | Quadro RTX 6000 |
| 1fb8 | TU117GLM Quadro T2000 Mobile / Max-Q | Quadro RTX 6000 |
| 1fb9 | TU117GLM Quadro T1000 Mobile | Quadro RTX 6000 |
| 1f97 | TU117M GeForce MX450 | Quadro RTX 6000 |
| 1f98 | TU117M GeForce MX450 | Quadro RTX 6000 |
| 1f9c | TU117M GeForce MX450 | Quadro RTX 6000 |
| 1f9d | TU117M GeForce GTX 1650 Mobile / Max-Q | Quadro RTX 6000 |
| 1fb0 | TU117GLM Quadro T1000 Mobile | Quadro RTX 6000 |
| 1fb1 | TU117GL T600 | Quadro RTX 6000 |
| 1fb2 | TU117GLM Quadro T400 Mobile | Quadro RTX 6000 |
| 1fba | TU117GLM T600 Mobile | Quadro RTX 6000 |
| 1f42 | TU106 GeForce RTX 2060 SUPER | Quadro RTX 6000 |
| 1f47 | TU106 GeForce RTX 2060 SUPER | Quadro RTX 6000 |
| 1f50 | TU106BM GeForce RTX 2070 Mobile / Max-Q | Quadro RTX 6000 |
| 1f51 | TU106BM GeForce RTX 2060 Mobile | Quadro RTX 6000 |
| 1f54 | TU106BM GeForce RTX 2070 Mobile | Quadro RTX 6000 |
| 1f55 | TU106BM GeForce RTX 2060 Mobile | Quadro RTX 6000 |
| 1f82 | TU117 GeForce GTX 1650 | Quadro RTX 6000 |
| 1f91 | TU117M GeForce GTX 1650 Mobile / Max-Q | Quadro RTX 6000 |
| 1f92 | TU117M GeForce GTX 1650 Mobile | Quadro RTX 6000 |
| 1f94 | TU117M GeForce GTX 1650 Mobile | Quadro RTX 6000 |
| 1f95 | TU117M GeForce GTX 1650 Ti Mobile | Quadro RTX 6000 |
| 1f76 | TU106GLM Quadro RTX 3000 Mobile Refresh | Quadro RTX 6000 |
| 1f07 | TU106 GeForce RTX 2070 Rev. A | Quadro RTX 6000 |
| 1f08 | TU106 GeForce RTX 2060 Rev. A | Quadro RTX 6000 |
| 1f09 | TU106 GeForce GTX 1660 SUPER | Quadro RTX 6000 |
| 1f0a | TU106 GeForce GTX 1650 | Quadro RTX 6000 |
| 1f10 | TU106M GeForce RTX 2070 Mobile | Quadro RTX 6000 |
| 1f11 | TU106M GeForce RTX 2060 Mobile | Quadro RTX 6000 |
| 1f12 | TU106M GeForce RTX 2060 Max-Q | Quadro RTX 6000 |
| 1f14 | TU106M GeForce RTX 2070 Mobile / Max-Q Refresh | Quadro RTX 6000 |
| 1f15 | TU106M GeForce RTX 2060 Mobile | Quadro RTX 6000 |
| 1f36 | TU106GLM Quadro RTX 3000 Mobile / Max-Q | Quadro RTX 6000 |
| 1f0b | TU106 CMP 40HX | Quadro RTX 6000 |
| 1eb5 | TU104GLM Quadro RTX 5000 Mobile / Max-Q | Quadro RTX 6000 |
| 1eb6 | TU104GLM Quadro RTX 4000 Mobile / Max-Q | Quadro RTX 6000 |
| 1eb8 | TU104GL Tesla T4 | Quadro RTX 6000 |
| 1ec2 | TU104 GeForce RTX 2070 SUPER | Quadro RTX 6000 |
| 1ec7 | TU104 GeForce RTX 2070 SUPER | Quadro RTX 6000 |
| 1ed0 | TU104BM GeForce RTX 2080 Mobile | Quadro RTX 6000 |
| 1ed1 | TU104BM GeForce RTX 2070 SUPER Mobile / Max-Q | Quadro RTX 6000 |
| 1ed3 | TU104BM GeForce RTX 2080 SUPER Mobile / Max-Q | Quadro RTX 6000 |
| 1f02 | TU106 GeForce RTX 2070 | Quadro RTX 6000 |
| 1f06 | TU106 GeForce RTX 2060 SUPER | Quadro RTX 6000 |
| 1ef5 | TU104GLM Quadro RTX 5000 Mobile Refresh | Quadro RTX 6000 |
| 1e81 | TU104 GeForce RTX 2080 SUPER | Quadro RTX 6000 |
| 1e82 | TU104 GeForce RTX 2080 | Quadro RTX 6000 |
| 1e84 | TU104 GeForce RTX 2070 SUPER | Quadro RTX 6000 |
| 1e87 | TU104 GeForce RTX 2080 Rev. A | Quadro RTX 6000 |
| 1e89 | TU104 GeForce RTX 2060 | Quadro RTX 6000 |
| 1e90 | TU104M GeForce RTX 2080 Mobile | Quadro RTX 6000 |
| 1e91 | TU104M GeForce RTX 2070 SUPER Mobile / Max-Q | Quadro RTX 6000 |
| 1e93 | TU104M GeForce RTX 2080 SUPER Mobile / Max-Q | Quadro RTX 6000 |
| 1eb0 | TU104GL Quadro RTX 5000 | Quadro RTX 6000 |
| 1eb1 | TU104GL Quadro RTX 4000 | Quadro RTX 6000 |
| 1e04 | TU102 GeForce RTX 2080 Ti | Quadro RTX 6000 |
| 1e07 | TU102 GeForce RTX 2080 Ti Rev. A | Quadro RTX 6000 |
| 1e2d | TU102 GeForce RTX 2080 Ti Engineering Sample | Quadro RTX 6000 |
| 1e2e | TU102 GeForce RTX 2080 Ti 12GB Engineering Sample | Quadro RTX 6000 |
| 1e30 | TU102GL Quadro RTX 6000/8000 | Quadro RTX 6000 |
| 1e36 | TU102GL Quadro RTX 6000 | Quadro RTX 6000 |
| 1e37 | TU102GL GRID RTX T10-4/T10-8/T10-16 | Quadro RTX 6000 |
| 1e78 | TU102GL Quadro RTX 6000/8000 | Quadro RTX 6000 |
| 1e09 | TU102 CMP 50HX | Quadro RTX 6000 |
| 1dba | GV100GL Quadro GV100 | Tesla V100 32GB PCIE |
| 1e02 | TU102 TITAN RTX | Quadro RTX 6000 |
| 1cfa | GP107GL Quadro P2000 | Tesla P40 |
| 1cfb | GP107GL Quadro P1000 | Tesla P40 |
| 1d01 | GP108 GeForce GT 1030 | Tesla P40 |
| 1d10 | GP108M GeForce MX150 | Tesla P40 |
| 1d11 | GP108M GeForce MX230 | Tesla P40 |
| 1d12 | GP108M GeForce MX150 | Tesla P40 |
| 1d13 | GP108M GeForce MX250 | Tesla P40 |
| 1d16 | GP108M GeForce MX330 | Tesla P40 |
| 1d33 | GP108GLM Quadro P500 Mobile | Tesla P40 |
| 1d34 | GP108GLM Quadro P520 | Tesla P40 |
| 1d52 | GP108BM GeForce MX250 | Tesla P40 |
| 1d56 | GP108BM GeForce MX330 | Tesla P40 |
| 1d81 | GV100 TITAN V | Tesla V100 32GB PCIE |
| 1cb6 | GP107GL Quadro P620 | Tesla P40 |
| 1cba | GP107GLM Quadro P2000 Mobile | Tesla P40 |
| 1cbb | GP107GLM Quadro P1000 Mobile | Tesla P40 |
| 1cbc | GP107GLM Quadro P600 Mobile | Tesla P40 |
| 1cbd | GP107GLM Quadro P620 | Tesla P40 |
| 1ccc | GP107BM GeForce GTX 1050 Ti Mobile | Tesla P40 |
| 1ccd | GP107BM GeForce GTX 1050 Mobile | Tesla P40 |
| 1cb1 | GP107GL Quadro P1000 | Tesla P40 |
| 1cb2 | GP107GL Quadro P600 | Tesla P40 |
| 1cb3 | GP107GL Quadro P400 | Tesla P40 |
| 1c81 | GP107 GeForce GTX 1050 | Tesla P40 |
| 1c82 | GP107 GeForce GTX 1050 Ti | Tesla P40 |
| 1c83 | GP107 GeForce GTX 1050 3GB | Tesla P40 |
| 1c8c | GP107M GeForce GTX 1050 Ti Mobile | Tesla P40 |
| 1c8d | GP107M GeForce GTX 1050 Mobile | Tesla P40 |
| 1c8f | GP107M GeForce GTX 1050 Ti Max-Q | Tesla P40 |
| 1c90 | GP107M GeForce MX150 | Tesla P40 |
| 1c91 | GP107M GeForce GTX 1050 3 GB Max-Q | Tesla P40 |
| 1c92 | GP107M GeForce GTX 1050 Mobile | Tesla P40 |
| 1c94 | GP107M GeForce MX350 | Tesla P40 |
| 1c96 | GP107M GeForce MX350 | Tesla P40 |
| 1c36 | GP106 P106M | Tesla P40 |
| 1c07 | GP106 P106-100 | Tesla P40 |
| 1c09 | GP106 P106-090 | Tesla P40 |
| 1c20 | GP106M GeForce GTX 1060 Mobile | Tesla P40 |
| 1c21 | GP106M GeForce GTX 1050 Ti Mobile | Tesla P40 |
| 1c22 | GP106M GeForce GTX 1050 Mobile | Tesla P40 |
| 1c23 | GP106M GeForce GTX 1060 Mobile Rev. 2 | Tesla P40 |
| 1c30 | GP106GL Quadro P2000 | Tesla P40 |
| 1c31 | GP106GL Quadro P2200 | Tesla P40 |
| 1c35 | GP106M Quadro P2000 Mobile | Tesla P40 |
| 1c60 | GP106BM GeForce GTX 1060 Mobile 6GB | Tesla P40 |
| 1c61 | GP106BM GeForce GTX 1050 Ti Mobile | Tesla P40 |
| 1c62 | GP106BM GeForce GTX 1050 Mobile | Tesla P40 |
| 1bb8 | GP104GLM Quadro P3000 Mobile | Tesla P40 |
| 1bb9 | GP104GLM Quadro P4200 Mobile | Tesla P40 |
| 1bbb | GP104GLM Quadro P3200 Mobile | Tesla P40 |
| 1bc7 | GP104 P104-101 | Tesla P40 |
| 1be0 | GP104BM GeForce GTX 1080 Mobile | Tesla P40 |
| 1be1 | GP104BM GeForce GTX 1070 Mobile | Tesla P40 |
| 1c02 | GP106 GeForce GTX 1060 3GB | Tesla P40 |
| 1c03 | GP106 GeForce GTX 1060 6GB | Tesla P40 |
| 1c04 | GP106 GeForce GTX 1060 5GB | Tesla P40 |
| 1c06 | GP106 GeForce GTX 1060 6GB Rev. 2 | Tesla P40 |
| 1b87 | GP104 P104-100 | Tesla P40 |
| 1ba0 | GP104M GeForce GTX 1080 Mobile | Tesla P40 |
| 1ba1 | GP104M GeForce GTX 1070 Mobile | Tesla P40 |
| 1ba2 | GP104M GeForce GTX 1070 Mobile | Tesla P40 |
| 1bad | GP104 GeForce GTX 1070 Engineering Sample | Tesla P40 |
| 1bb0 | GP104GL Quadro P5000 | Tesla P40 |
| 1bb1 | GP104GL Quadro P4000 | Tesla P40 |
| 1bb3 | GP104GL Tesla P4 | Tesla P40 |
| 1bb4 | GP104GL Tesla P6 | Tesla P40 |
| 1bb5 | GP104GLM Quadro P5200 Mobile | Tesla P40 |
| 1bb6 | GP104GLM Quadro P5000 Mobile | Tesla P40 |
| 1bb7 | GP104GLM Quadro P4000 Mobile | Tesla P40 |
| 1b06 | GP102 GeForce GTX 1080 Ti | Tesla P40 |
| 1b07 | GP102 P102-100 | Tesla P40 |
| 1b30 | GP102GL Quadro P6000 | Tesla P40 |
| 1b38 | GP102GL Tesla P40 | Tesla P40 |
| 1b80 | GP104 GeForce GTX 1080 | Tesla P40 |
| 1b81 | GP104 GeForce GTX 1070 | Tesla P40 |
| 1b82 | GP104 GeForce GTX 1070 Ti | Tesla P40 |
| 1b83 | GP104 GeForce GTX 1060 6GB | Tesla P40 |
| 1b84 | GP104 GeForce GTX 1060 3GB | Tesla P40 |
| 1b39 | GP102GL Tesla P10 | Tesla P40 |
| 1b00 | GP102 TITAN X | Tesla P40 |
| 1b01 | GP102 GeForce GTX 1080 Ti 10GB | Tesla P40 |
| 1b02 | GP102 TITAN Xp | Tesla P40 |
| 179c | GM107 GeForce 940MX | Tesla M10 |
| 17c2 | GM200 GeForce GTX TITAN X | Tesla M60 |
| 17c8 | GM200 GeForce GTX 980 Ti | Tesla M60 |
| 17f0 | GM200GL Quadro M6000 | Tesla M60 |
| 17f1 | GM200GL Quadro M6000 24GB | Tesla M60 |
| 17fd | GM200GL Tesla M40 | Tesla M60 |
| 1617 | GM204M GeForce GTX 980M | Tesla M60 |
| 1618 | GM204M GeForce GTX 970M | Tesla M60 |
| 1619 | GM204M GeForce GTX 965M | Tesla M60 |
| 161a | GM204M GeForce GTX 980 Mobile | Tesla M60 |
| 1667 | GM204M GeForce GTX 965M | Tesla M60 |
| 174d | GM108M GeForce MX130 | Tesla M10 |
| 174e | GM108M GeForce MX110 | Tesla M10 |
| 1789 | GM107GL GRID M3-3020 | Tesla M10 |
| 1402 | GM206 GeForce GTX 950 | Tesla M60 |
| 1406 | GM206 GeForce GTX 960 OEM | Tesla M60 |
| 1407 | GM206 GeForce GTX 750 v2 | Tesla M60 |
| 1427 | GM206M GeForce GTX 965M | Tesla M60 |
| 1430 | GM206GL Quadro M2000 | Tesla M60 |
| 1431 | GM206GL Tesla M4 | Tesla M60 |
| 1436 | GM206GLM Quadro M2200 Mobile | Tesla M60 |
| 15f0 | GP100GL Quadro GP100 | Tesla P40 |
| 1404 | GM206 GeForce GTX 960 FAKE | Tesla M60 |
| 13d8 | GM204M GeForce GTX 970M | Tesla M60 |
| 13d9 | GM204M GeForce GTX 965M | Tesla M60 |
| 13da | GM204M GeForce GTX 980 Mobile | Tesla M60 |
| 13e7 | GM204GL GeForce GTX 980 Engineering Sample | Tesla M60 |
| 13f0 | GM204GL Quadro M5000 | Tesla M60 |
| 13f1 | GM204GL Quadro M4000 | Tesla M60 |
| 13f2 | GM204GL Tesla M60 | Tesla M60 |
| 13f3 | GM204GL Tesla M6 | Tesla M60 |
| 13f8 | GM204GLM Quadro M5000M / M5000 SE | Tesla M60 |
| 13f9 | GM204GLM Quadro M4000M | Tesla M60 |
| 13fa | GM204GLM Quadro M3000M | Tesla M60 |
| 13fb | GM204GLM Quadro M5500 | Tesla M60 |
| 1401 | GM206 GeForce GTX 960 | Tesla M60 |
| 13b3 | GM107GLM Quadro K2200M | Tesla M10 |
| 13b4 | GM107GLM Quadro M620 Mobile | Tesla M10 |
| 13b6 | GM107GLM Quadro M1200 Mobile | Tesla M10 |
| 13b9 | GM107GL NVS 810 | Tesla M10 |
| 13ba | GM107GL Quadro K2200 | Tesla M10 |
| 13bb | GM107GL Quadro K620 | Tesla M10 |
| 13bc | GM107GL Quadro K1200 | Tesla M10 |
| 13bd | GM107GL Tesla M10 | Tesla M10 |
| 13c0 | GM204 GeForce GTX 980 | Tesla M60 |
| 13c2 | GM204 GeForce GTX 970 | Tesla M60 |
| 13d7 | GM204M GeForce GTX 980M | Tesla M60 |
| 1389 | GM107GL GRID M30 | Tesla M10 |
| 1390 | GM107M GeForce 845M | Tesla M10 |
| 1391 | GM107M GeForce GTX 850M | Tesla M10 |
| 1392 | GM107M GeForce GTX 860M | Tesla M10 |
| 1393 | GM107M GeForce 840M | Tesla M10 |
| 1398 | GM107M GeForce 845M | Tesla M10 |
| 1399 | GM107M GeForce 945M | Tesla M10 |
| 139a | GM107M GeForce GTX 950M | Tesla M10 |
| 139b | GM107M GeForce GTX 960M | Tesla M10 |
| 139c | GM107M GeForce 940M | Tesla M10 |
| 139d | GM107M GeForce GTX 750 Ti | Tesla M10 |
| 13b0 | GM107GLM Quadro M2000M | Tesla M10 |
| 13b1 | GM107GLM Quadro M1000M | Tesla M10 |
| 13b2 | GM107GLM Quadro M600M | Tesla M10 |
| 1347 | GM108M GeForce 940M | Tesla M10 |
| 1348 | GM108M GeForce 945M / 945A | Tesla M10 |
| 1349 | GM108M GeForce 930M | Tesla M10 |
| 134b | GM108M GeForce 940MX | Tesla M10 |
| 134d | GM108M GeForce 940MX | Tesla M10 |
| 134e | GM108M GeForce 930MX | Tesla M10 |
| 134f | GM108M GeForce 920MX | Tesla M10 |
| 137a | GM108GLM Quadro K620M / Quadro M500M | Tesla M10 |
| 137b | GM108GLM Quadro M520 Mobile | Tesla M10 |
| 137d | GM108M GeForce 940A | Tesla M10 |
| 1380 | GM107 GeForce GTX 750 Ti | Tesla M10 |
| 1381 | GM107 GeForce GTX 750 | Tesla M10 |
| 1382 | GM107 GeForce GTX 745 | Tesla M10 |
| 1340 | GM108M GeForce 830M | Tesla M10 |
| 1341 | GM108M GeForce 840M | Tesla M10 |
| 1344 | GM108M GeForce 845M | Tesla M10 |
| 1346 | GM108M GeForce 930M | Tesla M10 |
安装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自启动服务,开机自启动VF
cat > /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像RTX A5000/A6000这类带显示接口的显卡,还需要切换到无显示模式才能用vGPU,先切换好无显示模式再来安装驱动顺序不能乱。
# 先下载displaymodeselector工具上传到PVE根目录
https://share.feijipan.com/s/zOZHGpgP
# 授权可执行文件
chmod +x displaymodeselector
# 切换无显示模式,跟着提示步骤进行关闭
./displaymodeselector --gpumode
# 重启PVE后生效
reboot
创建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天的试用许可。我这里提供一个PVE的LXC容器,使用docker服务部署的fastapi-dls授权。
LXC容器信息:
NVIDIA vGPU 驱动授权服务器(90天授权期,客户端在每13天12点续订1次许可证,授权服务需要保持运行才能自动续期)
FASTAPI-DLS 版本:2.0.2
CT容器IP:10.10.10.99
登录LXC账号:root
登录LXC密码:123123
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 Agent
3)开启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/后端驱动器:无(不添加的话,串流玩游戏时是没有声音的)
其中 GRID T4-1Q (nvidia-230) 是 mdev 的名字,GRID T4--显卡名,1--1G 显存,Q 代表 vWS,nvidia-230 代表ID关于最后一位字母,如下:
Q:为需要Quadro技术的性能和功能的创意和技术专业人员提供的虚拟工作站 - CUDA OpenGL
C:计算密集型服务器工作负载,如人工智能、深度学习或高性能计算。- CUDA Only
B:为业务专业人员和知识工作者提供的虚拟桌面 - 45FPS MAX
A:为虚拟应用的用户,提供应用流或基于会话的解决方案 - Good for RDSH
3D渲染,游戏,AI运算,请选择Q系列型号即可。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)通过远程桌面工具连接虚拟机跑个鲁大师测试一下显卡是否正常工作
想解除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是否开启cuda
frl_enabled = 0 是否限制帧数,0为不限制
vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题
七、配置VDI角色
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
权限说明:将虚拟机回滚到其某个快照。
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
权限说明:将虚拟机回滚到其某个快照。
八、配置VDI用户
在PVE的用户菜单创建一个1000的用户。其中领域选择Proxmox VE authentication server。
添加好后就能看到用户了,同时在这个页面还支持修改、删除用户信息和密码。
九、给VDI用户分配虚拟机使用权
在PVE里选中要给VDI用户的虚拟机,点击权限,选择添加,把刚才添加的用户和角色选择进来即可。
到这服务端的设置全部完成了,可以退出root账户,使用VDI账户登录PVE管理后台,网页进行管理资源了,由于网页管理虚拟机只有vnc窗口,要想使用完整云桌面功能还是得配置个瘦客户端,接着我们来设置瘦客户端。
图文部署 -(客户端)
PVE的VDI客户端,个人觉得比较简单好用的一个是Github开源的 PVE-VDIClient另一个是梨儿方科技开发的 PXVDI。2款都支持SPICE协议,满足日常云桌面需求。以下客户端设置内容以Porteus5.0云桌面OS为例。该云桌面系统资源占用率低,即使在老旧的硬件上也能流畅运行,很适合放在瘦客户机上跑。系统集成了PVE VDIClient 和 PXVDI 2款PVE的VDI的客户端模块,以及一些常用的远程软件如向日葵、ToDesk、RustDesk、sunshine串流,Parsec串流。
一、配置PVE VDIClient客户端
PVE-VDIClient开源且免费,支持RDP和SPICE协议
1)打开终端,切换到root权限,去编辑VDIClient的配置文件将自己正确的PVE地址填入即可。
# 切换root权限
sudo -i
# 使用nano命令编辑vdiclient.ini文件
nano /etc/vdiclient/vdiclient.ini
在节点,主机这里能查看到自己PVE的主机名
2)配置sudo允许guest用户提权,做这步是为了在重定向USB设备防止权限不足。
# vi命令编辑sudoers文件
sudo visudo
# 在文件末尾添加以下参数,允许 guest 无密码运行所有命令
guest ALL=(ALL) NOPASSWD: ALL 最后就是给软件加上sudo权限右键软件快捷方式,点击属性,在命令前面加上sudo即可提权。
3)登录 PVE VDIClient客户端,输入服务端创建好的用户1000。进行登录
4)登录进来就可以使用RDP协议进行远程了。
5)如要切换成SPICE协议,需要调整一下虚拟机配置。将显示调整为SPICE,并添加USB和音频重定向。显示:调整为Spice单显示器,SPICE dual monitor表示为2个显示器,最多可添加4个显示器USB:添加USB,后端选择spice。添加几个USB就代表客户端支持多少个USB重定向音频:添加声卡,设备选择ich9-intel-hda 后端选择spice
6)同时在虚拟机的选项处,把SPICE增强启用。
返回客户端就可以使用SPICE协议进行远程了。
二、配置PXVDI客户端
PXVDI客户端由梨儿方科技开发,支持RDP、SPICE、VMware Horizon(blast/pcoip)3个协议,Linux端的客户端全部免费使用,最后一个支持直连模式是3.0.7版本,之后的版本仅维护总控模式。总控模式接入AD域,更合规和统一管理,有这方面需求可以访问官网了解报价
1)打开PXVDI客户端,在设置中配置好服务器信息并保存。
2)高级设置中,还可以对各个协议进行定制调整。
高级设置
全屏开关
控制软件是否全屏,以及以后的连接是否全屏。所有的协议均能控制Debug
启用DEBUG模式自动登录
用户登录客户端后,自动登录到虚拟机允许还原
允许用户使用快照回滚桌面连接方式
可选SPICE/Freerdp/Horizon协议。freerdp设置
freerdp版本:配置freerdp的版本,3是最新版本,修复了2存在的bug,2是稳定版本。
编解码:配置freerdp的解码方式,推荐使用420,如果不支持硬件解码,请使用软件解码
色深:配置freerdp的色彩深度,值越大,色彩越好。
缩放:配置freerdp的缩放比率,适合在高分辨率屏中使用
网络速率:wan外网,lan内网,auto自动VMware设置
连接协议:Blast和PCOIP,PCOIP适合性能差的瘦客户机。
状态栏开关:是否显示连接的状态栏,开启后,可以在云桌面中显示高级选项,如USB重定向,配置连接解码方式等网关设置:
AD模式:将用户的登录信息作为云桌面的登录账户,用户无需输入2次密码,如果配置自动登录,用户可以开机登录到桌面。需要云桌面和服务器端加域。
使用网关:配置使用rdp的网关。在ipv6启用的情况下,会忽略网关。
使用用户账号密码:将用户的账户密码作为rdp网关凭据
网关账号:rdp网关账号
网关密码:rdp网关密码。 该功能可以让外部客户端访问内网桌面。iP设置
是否开启IPV6资源设置:
多监视器:允许使用多个屏幕,勾选此项之后,无论是否全屏,云桌面都会全屏。
驱动器重定向:允许重定向瘦客户端的磁盘,如移动磁盘、内置磁盘等等。
声音重定向:允许云桌面播放声音,并从瘦客户端发出来。
打印重定向:允许云桌面使用本地打印机。
usb重定向:允许云桌面读取本地的USB设备。
麦克风重定向:允许云桌面使用麦克风。
剪切板重定向:运行云桌面进行剪切板同步。
3)登录PXVDI客户端,输入服务端创建好的
用户1000进行登录。格式:用户@pve
4)登录进来就能正常远程了。PXVDI客户端更多的使用教学建议到官方文档查阅:PXVDI文档

三、配置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是没有安装Horizon Connection Server服务的,安装时得从命令行安装 Horizon Agent,跳过Horizon Connection Server 注册的参数。相关说明可见官方Horizon Agent使用文档
# 管理员运行CMD,安装 Horizon 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串流教学可以看这视频
异地访问
要让云桌面在异地也能正常使用,可以通过公网+端口映射或者VPN组网的方式。如果没有公网也可以在腾讯云或者阿里云买台大带宽VPS做端口转发。下边演示在本地爱快做端口映射实现异地访问。在此之前你需要将宽带改桥接在爱快上拨号,并且宽带运营商有提供公网ipv4或者ipv6就可以继续往下看了。
IPV4
服务端信息
OS:PVE8.4.5
主机名:pve8.lan
IPv4地址:10.10.10.252
PVE管理端口:8006
Spice API端口:3128
1)在爱快的端口映射分别将
8006和3128端口映射。如果运营商给你分配的是动态ipv4那你还需要做ddns动态域名解析,通过域名访问→爱快动态域名解析教程看这里←。

2)返回到瘦客户端OS将公网信息填写到
PVE VDIClient客户端或PXVDI客户端PVE VDIClient客户端修改
nano /etc/vdiclient/vdiclient.ini
PXVDI客户端直接在服务器配置填写公网IP或者域名即可

IPV6
1)在爱快开启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 密码 ➡️ 选择网络确认加入集群
如果要弄成高可用分布式的集群方案可以看这篇文章。
FAQ问答
一、NVIDIA vGPU部分
Q1: 我的显卡是Tesla P4,安装好了vGPU驱动,在Windows虚拟机看到显卡变成了T4或者RTXA6000
A1: NVIDIA vGPU HOST驱动是做了修补的,所以你看到p4变成P40或者RTXA6000都是正常的并不会影响其性能。当然p4本身就是支持的vGPU卡,在17版本前直接用原生NVIDIA vGPU HOST驱动就行
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:我已经用FASTAPI-DLS生成的授权文件给虚拟机NVIDIA GRID驱动成功授权了,这个有数量限制吗?
A6:目前暂未遇到数量上限,FASTAPI-DLS 授权服务器只要一直开着,GRID驱动就能长期正常使用。如遇到授权失败,需要检查虚拟机的时间是否与授权服务器一致,必须一致才能取得授权。
Q7:你的显卡驱动程序已过期,不符合运行《暗黑破坏神IV》的最低要求。请更新驱动程序并重试。当前版本:551.61,最低要求版本:552.74
A7:游戏需要较新的驱动才能游戏,可以尝试直接在虚拟机安装552.74的驱动,如果安装了新的Guest驱动报43代码错误,则你还需要升级PVE宿主机的vGPU Host驱动。升级宿主机vGPU驱动前记得先卸载驱动再安装
Q8:为啥我在PVE网页虚拟机控制台里打完显卡驱动后,就不能操作了呢?
A8:请配置好远程桌面或者安装第三方远程工具,确认能通过远程连上虚拟机再来安装显卡驱动,如果你没配置就安装了显卡驱动,则需要先删除显卡设备,配置好远程再添加上显卡设备。因为你一旦安装好显卡驱动后系统就会呈现双显示器状态,这样就会导致PVE网页虚拟机控制台黑屏,或者是副屏状态,使得无法操作虚拟机。这里推荐把PVE控制台窗口显示给关闭,即在【虚拟机→硬件→显示】改成“无”,只保留vGPU一个显示器,通过远程操作虚拟机。
如果你要在PVE控制台操作虚拟机,不想借助外部的远程工具,可以用ToDesk远程到虚拟机,把显示屏设置改为仅控制台窗口显示,这样PVE的Web显示就能操作了。(注意:PVE控制台的窗口是独立的虚拟显卡并不调用VGPU;UEFI安装的虚拟机修改PVE的Web窗口分辨率需要在虚拟机BIOS修改,SeaBIOS安装的虚拟机在系统显示设置进行修改分辨率)
UEFI虚拟机修改PVE Web窗口分辨率操作步骤:虚拟机开机按esc键进入BIOS → Device Manager → OVMF Platform Configuration
Q9:我用的是CMP系列的30HX/40HX/50HX的挖矿卡,为啥一切都正常,虚拟机就是无法启动。
A9: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
二、虚拟机部分
Q1:我虚拟机分配的内存给多少pve就占用多少,且在pve控制台不能操作关机和不显示IP是怎么回事?

A1:VMware平台有VMwareTools,KVM平台有qemu-guest-agent。PVE下给虚拟机安装qemu-guest-agent可解决虚拟机无法关机和内存不同步IP不显示等问题。在PVE先给虚拟机开启qemu-guest-agent再安装qemu-guest-agent
Windows虚拟机为例
下载 Virtio 驱动,例如 virtio-win-0.1.240.iso,上传到虚拟机。加载镜像文件后安装 virtio-win-gt-x64.msi和virtio-win-guest-tools.exe,然后重启系统。
Q2:我的虚拟机运行的多了,虚拟机变卡了怎么办?
A2:既要马儿跑,又要马儿不吃草的道理,机器做了虚拟化,CPU,硬盘,网卡等硬件都得依靠处理器去协调,所以结合自己硬件合理分配资源;1)CPU:游戏场景请选用单核性能强的处理器;3D建模、做图请给多一点线程和GPU显存;2)硬盘:硬盘IO读写越快虚拟机越流畅,不要把所有虚拟机都跑在一个硬盘那样会卡成PPT,推荐2-3个虚拟机一个硬盘,可以使用固态+机械硬盘组合,系统盘跑在固态上,数据盘跑在机械。强烈推荐用nvme硬盘,10块机械硬盘组的raid0都不如一块nvme来的实际3) 网卡:3-5个虚拟机千兆物理网卡足矣,其他的建议升级万兆网卡甚至更高4) GPU:当把帧率限制解除后,GPU分配给1台虚拟机时那么这台虚拟机能获得GPU100%性能,分配2台则50%性能,3台则33.3%性能;要想稳定多开推荐将帧率锁在60帧,这样虚拟机之间都限制在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
硬盘:5张1TB Nvme高速盘;每张放3-4个虚拟机
网卡:10g/40g网卡
Q4:虚拟机能不能像LXC容器一样在外面配置IP,我不想登录到虚拟机里面手动修改。
A4:支持的,可以在虚拟机安装一个cloudinit初始化软件,这样我们就可以在外面实现重置用户名,用户密码,IP地址等信息
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驱动即可
三、瘦终端部分
Q1:Lubuntu云桌面OS能否取消登录密钥环认证弹窗?免密码登录呢?

A1:可以的,打开终端执行以下命令将vdi账户密码删除,并清理登录密钥环认证即可
# 清除登录密钥环
rm ~/.local/share/keyrings/login.keyring
# 删掉vdi账户密码
sudo passwd -d vdiQ2:我有公网IP,服务端PVE做好了端口映射,异地访问只能使用SPICE协议连接虚拟机,其他协议连不上是咋回事?
A2:是的,Spice协议是走PVE通信的所以可以连接,RDP,Horizon协议是直连模式需要独立映射虚拟机远程端口才能连接。最好的方案是搭建VPN组网而非端口映射,比如wireguard组网,这样就能使用任何协议连接虚拟机了且更安全。
Q3:我的瘦客户端配置比较低,需要怎么优化或者提升连接虚拟机的流畅度?
A3:低性能的瘦客户端主机,在使用PXVDI客户端可以进行以下参数优化:
1)在高级设置将编解码改成h264 420或者软件编码 色深 16 网络速率:modem
2)在资源设置中关闭不需要的重定向功能,此时瘦客户端将会有一个流畅的体验。
Q4:瘦客户端使用Spice协议,鼠标没法显示咋办?
A4:这是因为虚拟机存在多个GPU屏幕,导致Spcie协议的鼠标异常。解决方法也很简单,去设备管理器里把其他的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"
5 条评论
win11的办公懒人包还原失败,win10的可以,是不是包的问题
/var/lib/vz/dump/vzdump-qemu-999-2026_01_16-Win11_24h2_LTSC_vGPU580_Office_UEFI.vma.zst : Decoding error (36) : Data corruption detected
vma: restore failed - short vma extent (2608640 < 3801600)
/bin/bash: line 1: 452255 Exit 1 zstd -q -d -c /var/lib/vz/dump/vzdump-qemu-999-2026_01_16-Win11_24h2_LTSC_vGPU580_Office_UEFI.vma.zst
temporary volume 'local:104/vm-104-disk-1.qcow2' successfully removed
temporary volume 'local:104/vm-104-disk-0.qcow2' successfully removed
temporary volume 'local:104/vm-104-cloudinit.raw' successfully removed
temporary volume 'local:104/vm-104-disk-2.qcow2' successfully removed
no lock found trying to remove 'create' lock
error before or during data restore, some or all disks were not completely restored. VM 104 state is NOT cleaned up.
TASK ERROR: command 'set -o pipefail && zstd -q -d -c /var/lib/vz/dump/vzdump-qemu-999-2026_01_16-Win11_24h2_LTSC_vGPU580_Office_UEFI.vma.zst | vma extract -v -r /var/tmp/vzdumptmp452245.fifo - /var/tmp/vzdumptmp452245' failed: exit code 133
资源包怎么没有vGPU Unlock-rs解锁文件?
查看vGPU Unlock-rs服务状态
输入systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service}显示信息如下:
Unit nvidia-vgpud.service could not be found.
Unit nvidia-vgpu-mgr.service could not be found.
非常有用,感谢博主分享。∠( ᐛ 」∠)_