2026年家庭/工作室/企业免费的云桌面VDI解决方案
近年来,随着5G网络、云计算和虚拟化技术的快速发展,云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户,都可以通过云端提供的算力,在任意设备(如手机、平板、低配电脑)上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢?嘿嘿,还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境
部署前准备
预期想法:在家里配置一台高性能工作站主机作为服务端,购买一些瘦客户机将瘦终端放在各个房间跟客厅。通过PROXMOX VE + NVIDIA vGPU方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统,实现在家庭各个房间无缝访问高性能计算资源。
资源预算情况
部署所需要的资源预算
总计所需资源88线程136G内存vGPU显存25G+1张A卡2.8TB6台连接协议说明
1)游戏用串流协议,Sunshine+Moonlight串流方案; 2)3D建模/设计/剪辑用Horizon协议,GPU表现优秀且支持USB重定向; 3)日常办公用RDP或者SPICE协议,其中SPICE协议支持USB重定向和无网络连接可以很好的安全隔离;
[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元视频教程
[collapse status="false" title="点击展开"]
请前往B站观看
[/collapse]
图文部署 -(服务端)
服务端将采用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服务才支持的显卡如下:
[collapse status="false" title="NVIDIA vGPU支持的显卡列表--点我展开"]
以下 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)
[/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自启动服务,开机自启动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天的试用许可。提供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容器部署
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 支持SPICE协议,满足日常云桌面需求。以下客户端设置内容以Porteus5.0云桌面OS为例。该云桌面系统资源占用率低,即使在老旧的硬件上也能流畅运行,很适合放在瘦客户机上跑。系统集成了PVE VDIClient以及一些常用的远程软件如向日葵、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协议进行远程了。
二、配置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串流教学可以看这视频
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客户端
PVE VDIClient客户端修改nano /etc/vdiclient/vdiclient.ini
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驱动是做了修补集成了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帧等等。
__RTSS显卡锁帧工具7.3.7-中文版
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.74
A10:游戏需要较新的驱动才能游戏,可以尝试直接在虚拟机安装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 Configuration
Q12:我用的是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二、虚拟机部分
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,然后重启系统。
__virtio驱动
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地址等信息
__cloudinit软件
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驱动即可
__Vmware鼠标驱动
三、瘦终端部分
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.vbs
Set objShell = CreateObject("WScript.Shell")
objShell.Run "C:\horizon_vm102.bat", 0, FalseQ3:我有公网IP,服务端PVE做好了端口映射,异地访问只能使用SPICE协议连接虚拟机,其他协议连不上是咋回事?
A3:是的,Spice协议是走PVE通信的所以可以连接,RDP,Horizon协议是直连模式需要独立映射虚拟机远程端口才能连接。最好的方案是搭建VPN组网而非端口映射,比如wireguard组网,这样就能使用任何协议连接虚拟机了且更安全。如果你需要做端口映射可参考以下列表:
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"文中资源包需要付费购买:https://faka.yangwenqing.com/item/4
尊重原作者劳动成果,请勿购买盗版
原文链接:https://yangwenqing.com/archives/2473/
原作者:July (yangwenqing.com)
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »