近年来,随着5G网络、云计算和虚拟化技术的快速发展,云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户,都可以通过云端提供的算力,在任意设备(如手机、平板、低配电脑)上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢?嘿嘿,还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境
准备工作
预期想法:在家里配置一台高性能主机,购买一些瘦客户机将客户机放在各个房间跟客厅。通过PVE方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统,实现在家庭各个房间无缝访问高性能计算资源。
准备一台高性能PC或者服务器(做服务端)
家用级别整个工作站或者塔式服务器就行,机架式噪音受不了。准备一些x86_64架构的瘦客户机(做客户端)
洋垃圾:惠普HP400G2 mini 小主机 100元出头
移动式,可以整些云笔记本或者老旧笔记本懒人免部署篇
如果你是萌新或者是对pve基础较弱的用户,可以用我封装好的PVE镜像用balenaEtcher烧录工具写入硬盘启动即可。可以做到免部署开机即用。即节约时间又避免部署过程中产生的坑。
PVE镜像功能说明(服务端)
1)基于PVE 8.4.1
内核Linux 6.8.12-11-pve
版本进行封装;
2)该镜像大小8GB
,解压后用balenaEtcher烧录工具
写入硬盘。账号:root
,密码:123456
;
3)管理口默认为主机的第一个口,DHCP模式
;
4)预装 NVIDIA VGPU_Unlock
服务,解除消费卡VGPU限制;
5)预装 NVIDIA VGPU17.0_HOST
驱动,在PVE Shell 执行nvidia-smi
可以查看;
6)提供fastapi-dls 授权驱动服务的LXC还原包
,365天周期,长期用自动续期;
7)已对PVE做了模拟真实机器防检测的pve-qemu-kvm包安装,基于李晓流的9.2.0-5版本
;
PVE镜像使用方法--点我展开



PVE镜像使用方法:
1)可以使用U盘或者Ventoy引导
进入到PE系统,PE系统推荐:FirPE点我前往
2)进入PE后,打开DiskGenius分区工具
,将要安装PVE的硬盘清空一下分区
3)打开balenaEtcher
烧录工具,将PVE镜像烧录到硬盘
4)重启主机,进入PVE系统。通过显示器给出的IP地址访问PVE管理后台即可。PVE管理口默认为第一个网口,多网口的主机记得将网线插第一个口,不然无法获取IP,确保自己的局域网是开启了DHCP否则也是无法获取IP的
PS:如果实在不显示IP,可以手动登录控制台,查看网卡情况和获取到的IP信息。账号为:root 密码为:123456(linux特性在控制台输入密码是不会显示输出的,输入完密码回车就行)
5)浏览器登录PVE后台:https://你的IP:8006
。登录进来后将硬盘所剩的空间合并到root根目录下。
# 一键将系统盘空闲容量扩容到root根目录(LVM + ext4)
bash pve_extend_root.sh
6)最后就是将PVE管理地址由dhcp改为静态IP,防止PVE后台随意变更IP
。
云桌面OS镜像说明(客户端)
1)基于轻量级 Linux 发行版 Porteus5.0
作为底层 x86_64
架构;
2)该镜像大小890MB
,支持U盘启动
、ISO镜像启动
,硬盘启动
,支持BIOS及UEFI双模式启动
;
3)默认登录为Guest用户
提权需要root密码:toor
;
4)集成PVE VDIClient
和PXVDI客户端
模块,支持 Spice、RDP、VNC 、Horizon
等主流协议;
5)模块还加入了常用远程软件如向日葵、ToDesk、RustDesk、Sunshine串流,Parsec串流
;
云桌面OS镜像使用方法--点我展开



云桌面OS镜像使用方法:
云桌面镜像支持BIOS及UEFI双模式启动,下边将介绍这2种方式分别如何安装。安装前请进瘦客户机的BIOS设置好相应的启动方式。
一、BIOS启动安装方式:
1)找个U盘使用rufus工具
将镜像烧录到U盘,BIOS启动
烧录U盘的时候记得选MBR分区
。
2)将U盘插到瘦客户机启动云桌面OS。
3)打开GParted分区工具
,对硬盘进行分区并将镜像安装到硬盘。
3)我这里使用一块1GB
的硬盘来安装,首先给它创建MBR分区表
以支持BIOS启动。
3)接着来创建分区,使用整个硬盘空间,创建一个ext4格式的主分区
。并应用等待创建完成。
4)挂载分区到/mnt/sda1
5)打开Porteus Installer
工具,将系统写入硬盘,就可以拔掉U盘,以硬盘启动云桌面OS了。
二、UEFI启动安装方式:
1)找个U盘使用rufus工具
将镜像烧录到U盘,然后用U盘启动到云桌面OS。
2)启动到云桌面OS后,打开GParted分区工具
,对硬盘进行分区并将镜像安装到硬盘。
3)我这里使用一块8GB
的硬盘来安装,首先给它创建GPT分区表
以支持UEFI启动。
4)接着来创建一个EFI分区
,分配300M
采用fat32格式
。
5)最后将剩余的所有空间创建一个名为porteus
的ext4分区
。
6)将创建的这2个分区分别挂载到/mnt/sda1
和/mnt/sda2
我这里系统识别硬盘为sda,按系统给的挂载就行。
7)打开文件
窗口,查看一下U盘被系统挂载到哪个路径,我这边是挂载到/mnt/sdc1
需要将里面的文件复制到硬盘
8)打开终端软件,以root权限运行,并执行以下命令将U盘的文件复制到硬盘。
# 获取root权限
sudo -i
# 将U盘的EFI文件夹复制到硬盘ESP分区下
cp -r /mnt/sdc1/EFI/ /mnt/sda1/
# 将U盘的boot文件夹复制到硬盘ESP分区下
cp -r /mnt/sdc1/boot/ /mnt/sda1/
# 将U盘的porteus文件夹复制到硬盘porteus分区下
cp -r /mnt/sdc1/boot/ /mnt/sda2/
9)编辑硬盘portues分区
下的portues文件夹下
的porteus-v5.0-x86_64.cfg
文件将里面这句from=/mnt/sda2/porteus
的注释#删除掉。到这系统就安装到硬盘了。可以拔掉U盘,以硬盘启动云桌面OS了。
# 使用nano命令编辑porteus-v5.0-x86_64.cfg文件,nano保存按Ctrl +x按y,回车即可保存。
nano /mnt/sda2/porteus/porteus-v5.0-x86_64.cfg
10)硬盘启动云桌面后,可以将自己常用软件添加为桌面快捷方式。
教程正式开始
服务端部分
服务端将采用Proxmox VE(PVE)免费且开源,无需支付高昂的授权费用,适合个人和家庭用户。
一、安装Proxmox VE
自行在高性能PC或者服务器上安装好PVE或者使用我封装好的PVE镜像,相关安装过程略过。
二、部署NVIDIA vGPU
有需要用到NVIDIA显卡做云桌面的,可以看往期这篇文章。显卡支不支持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)
设备ID | 显卡型号 | VGPU模拟型号 |
---|---|---|
21c4 | TU116 GeForce GTX 1660 SUPER | Quadro RTX 6000 |
21d1 | TU116BM GeForce GTX 1660 Ti Mobile | Quadro RTX 6000 |
21c2 | TU116 | Quadro RTX 6000 |
2182 | TU116 GeForce GTX 1660 Ti | Quadro RTX 6000 |
2183 | TU116 | 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 |
21ae | TU116GL | Quadro RTX 6000 |
21bf | TU116GL | Quadro RTX 6000 |
2189 | TU116 CMP 30HX | Quadro RTX 6000 |
1fbf | TU117GL | 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 |
1f99 | TU117M | Quadro RTX 6000 |
1fae | TU117GL | 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 |
1f81 | TU117 | 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 |
1f2e | TU106M | 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 |
1eb9 | TU104GL | Quadro RTX 6000 |
1ebe | TU104GL | 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 |
1f04 | TU106 | 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 |
1eab | TU104M | Quadro RTX 6000 |
1eae | TU104M | Quadro RTX 6000 |
1eb0 | TU104GL Quadro RTX 5000 | Quadro RTX 6000 |
1eb1 | TU104GL Quadro RTX 4000 | Quadro RTX 6000 |
1eb4 | TU104GL T4G | 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 |
1e38 | TU102GL | Quadro RTX 6000 |
1e3c | TU102GL | Quadro RTX 6000 |
1e3d | TU102GL | Quadro RTX 6000 |
1e3e | TU102GL | 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 |
1ca8 | GP107GL | Tesla P40 |
1caa | GP107GL | Tesla P40 |
1cb1 | GP107GL Quadro P1000 | Tesla P40 |
1cb2 | GP107GL Quadro P600 | Tesla P40 |
1cb3 | GP107GL Quadro P400 | Tesla P40 |
1c70 | GP106GL | 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 |
1c8e | GP107M | 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 |
1ca7 | GP107GL | 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 |
1c2d | GP106M | 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 |
1c00 | GP106 | Tesla P40 |
1c01 | GP106 | 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 |
1ba9 | GP104M | Tesla P40 |
1baa | GP104M | 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 |
1b70 | GP102GL | Tesla P40 |
1b78 | GP102GL | 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 |
1b04 | GP102 | 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 |
1725 | GP100 | Tesla P40 |
172e | GP100 | Tesla P40 |
172f | GP100 | Tesla P40 |
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 |
15f1 | GP100GL | 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 |
13c1 | GM204 | Tesla M60 |
13c2 | GM204 GeForce GTX 970 | Tesla M60 |
13c3 | GM204 | 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 |
三、创建虚拟机(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)关闭睡眠/屏幕
在系统设置中,把屏幕超时改为从不
六、配置VDI角色
在PVE的角色菜单创建一个VDIVMUsers
的角色,并分配以下特权:VM.Audit
VM.Console
VM.PowerMgmt
VM.Monitor
。
角色权限说明:
VM.Audit
权限说明:允许查看/审计虚拟机的配置和状态(只读权限)。
典型操作:查看虚拟机列表、检查虚拟机设置、监控资源使用情况。
VM.Console
权限说明:允许通过控制台访问虚拟机(如NoVNC、SPICE或xterm.js)。
典型操作:通过Web界面打开虚拟机的图形控制台或串行终端。
VM.PowerMgmt
权限说明:允许对虚拟机进行电源管理操作。
典型操作:启动、停止、重启、暂停虚拟机。
VM.Monitor
权限说明:允许查看虚拟机的实时监控数据(如CPU、内存、磁盘I/O等)。
典型操作:在PVE界面中查看性能图表或使用qm monitor命令。
七、配置VDI用户
在PVE的用户菜单创建一个1000
的用户。其中领域选择Proxmox VE authentication server
。
添加好后就能看到用户了,同时在这个页面还支持修改、删除用户信息和密码。
八、给VDI用户分配虚拟机使用权
在PVE里选中要给VDI用户的虚拟机,点击权限
,选择添加
,把刚才添加的用户和角色选择进来即可。
到这服务端的设置全部完成了,接着我们来设置瘦客户端。
客户端部分
PVE的VDI客户端,个人觉得比较简单好用的一个是Github开源的 PVE-VDIClient另一个是梨儿方科技开发的 PXVDI。2款都支持主流的SPICE和RDP协议,满足日常云桌面需求。该云桌面OS是基于轻量级 Linux 发行版 Porteus作为底层 x86_64架构。系统资源占用率低,即使在老旧的硬件上也能流畅运行,很适合放在瘦客户机上跑。系统集成了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个协议
1)打开PXVDI客户端,在设置中配置好服务器信息并保存。
2)高级设置中,还可以对各个协议进行定制调整。
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
安装包下载到虚拟机。资源下载
# Horizon-Agent
https://yun.yangwenqing.com/Vmware/Omnissa_Horizon/Horizon_8_2503/Omnissa-Horizon-Agent-x86_64-2503-8.15.0-14304348675.exe
# Horizon-Agent-Direct-Connection
https://yun.yangwenqing.com/Vmware/Omnissa_Horizon/Horizon_8_2503/Omnissa-Horizon-Agent-Direct-Connection-x86_64-8.15.0-14304348675.exe
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款串流工具。只需要在虚拟机配置好串流设置就行。值得注意的是虚拟机配置的显示记得改无,并添加个音频。不然游戏没有声音。显示:调整为无,不显示。这样串流工具才能正常识别vGPU显卡;改无后PVE web就不能管理虚拟机了,需要远程方式进行管理。
音频:添加声卡,设备选择ich9-intel-hda 后端选择 无
Sunshine+Moonlight串流教学可以看这视频
总结
当然,说是私有云桌面,但你如果有公网IP或者IPv6的话,做好端口映射后直接在外面就能访问。我目前用IPv6串流方式在小米su7整了个移动办公点,左边串流打黑猴,右边看K线。