近年来,随着5G网络、云计算和虚拟化技术的快速发展,云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户,都可以通过云端提供的算力,在任意设备(如手机、平板、低配电脑)上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢?嘿嘿,还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境

准备工作

预期想法:在家里配置一台高性能主机,购买一些瘦客户机将客户机放在各个房间跟客厅。通过PVE方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统,实现在家庭各个房间无缝访问高性能计算资源。

  • 准备一台高性能PC或者服务器(做服务端)
    家用或小工作室就别整机架式服务器了,噪音受不了推荐塔式服务器或工作站。比如戴尔这款Precision 7920 工作站

    Precision 7920产品参数10个人配置(3D作图/剪辑/游戏)
    CPU支持2颗 铜牌、银牌、金牌、铂金处理器金牌6248 20核40线程 主频2.5,睿频3.9
    内存24个内存插槽(DDR4 支持ECC自动纠错)192G内存
    硬盘标配4个3.5硬盘位(最多可以配置10个3.5硬盘位)2TB Nvme + 16TB机械
    显卡支持3个双宽显卡2080 Ti 22G 2张 共44G显存
    网卡英特尔 i219 和 i210 双千兆网卡强烈增加个10G网卡
    PCIE7个PCIE3.0插槽扩展nvme硬盘或者PCIE网卡
    电源1400W电源整机功耗800W左右
  • 准备一些x86_64架构的瘦客户机(做客户端)
    小主机:可以找些小主机作为瘦终端,小巧又不占用地方;
    移动式:也可以整些云笔记本或者老旧笔记本,外出携带都方便;

懒人免部署篇

如果你是萌新或者是对pve基础较弱的用户,可以用我封装好的PVE镜像用balenaEtcher烧录工具写入硬盘启动即可。可以做到免部署开机即用。即节约时间又避免部署过程中产生的坑。

PVE镜像功能说明(服务端)

PVE镜像说明:

1)基于PVE 8.4.5 内核Linux 6.8.12-13-pve版本进行封装;
2)该镜像大小28GB,账号:root,密码:123456
3)管理口默认为主机的第一个口DHCP模式;
4)预装 NVIDIA vGPU Unlock服务,解除消费卡vGPU限制;
5)预装 NVIDIA vGPU17.5 HOST驱动,在PVE Shell 执行nvidia-smi可以查看;
6)提供fastapi-dls 授权驱动服务LXC容器,90天周期;
7)提供WIN11 24h2 LTSC X64 虚拟机还原包,可用于调试和测试;
8)增加PVE的模拟真实机器防检测PVE-QEMU-KVM包,基于Github上的lixiaoliu的9.2.0-5版本;
9)增加PVE的VNC显示窗口直接输出vGPU显卡画面,让PVE的Web VNC窗口也支持调用vGPU,只需要在虚拟机添加vgpu显卡时勾选主GPU即可;
10)默认创建了一个用户为1000VDI账号,可用于登录瘦客户机做测试,如不需要删除即可。账号:1000密码:12345678


PVE镜像使用方法--点我展开 ↓↓↓

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

7)镜像包放了2个还原包fastapi-dls 授权驱动服务LXC容器和Windows虚拟机可以用于测试


云桌面OS镜像说明(客户端)

1)基于轻量级 Linux 发行版 Porteus5.0作为底层 x86_64架构;
2)该镜像大小886.1MB,支持U盘启动ISO镜像启动硬盘启动支持BIOS及UEFI双模式启动
3)默认登录为Guest用户,密码:guest提权需要root密码:toor
4)集成PVE VDIClientPXVDI客户端模块,支持 Spice、RDP、VNC 、Horizon等主流协议;
5)模块还加入了常用远程软件如向日葵、ToDesk、RustDesk、Sunshine串流,Parsec串流
6)支持无桌面模式,开机自动运行云桌面客户端,登录后自动进入虚拟机;

云桌面OS镜像使用方法--点我展开 ↓↓↓

云桌面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)最后将剩余的所有空间创建一个名为porteusext4分区

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/porteus/ /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)硬盘启动云桌面后,可以将自己常用软件添加为桌面快捷方式。

三、无桌面模式启动:

对于只需要用到VDI客户端,登录就自动进入虚拟机,不需要花里胡哨的功能。可以修改porteus目录下的porteus-v5.0-x86_64.cfg文件,来启用无桌面模式。

1)将烧录好的U盘打开修改porteus目录下的porteus-v5.0-x86_64.cfg文件
2)启用root用户默认进行登录,将参数login=root前面的#注释给取消即可;
3)启用无桌面模式,将参数cliexec=run-nogui.sh前面的#注释给取消即可;
4)如要无桌面启动进PVE-VDIClient客户端,将参数guiexec=run-pvevdi.sh前面的#注释给取消即可(这步跟第5步,2选一 都启用会冲突);
5)如要无桌面启动进PXVDI客户端,将参数guiexec=run-pxvdi.sh前面的#注释给取消即可(这步跟第4步,2选一 都启用会冲突);
以启用PXVDI客户端为例:
编辑porteus-v5.0-x86_64.cfg文件

## 默认以root账号登录
login=root
## 无桌面模式启动
cliexec=run-nogui.sh
## 无桌面模式启动后运行PVE-VDIClient
# guiexec=run-pvevdi.sh
## 无桌面模式启动后运行PXVDI
guiexec=run-pxvdi.sh

修改好后,插到瘦客户机安装云桌面OS即可。


教程正式开始

服务端部分

服务端将采用Proxmox VE(PVE)免费且开源,无需支付高昂的授权费用。采用典型的C/S架构。在PVE中通过虚拟机权限管理,将虚拟机分配给指定用户。当这个用户通过瘦终端进行登录时,则会查询所拥有的虚拟机,随后通过RDP、Spice、 VMware Horizon等协议连接到虚拟机。对于家庭&中小型企业用户量也不多,也不需要搭建庞大的AD域和后端管理,所以搭建这台方案并不需要过多的专业知识和维护成本。

一、安装Proxmox VE

在高性能PC或者服务器上安装好PVE,以下是PVE安装过程,节省时间可以使用我封装好的PVE镜像免部署。

资源下载

小飞机网盘资源

说明下载地址
PVE安装镜像PVE8.2-2
写盘工具balenaEtcher

BIOS设置


提前在BIOS开启以下设置

  • 开启VT-d --必须开启
  • 开启SRIOV --如有
  • 开启Above 4G --如有
  • 关闭安全启动 --在security菜单 secure boot 改disabled

PVE烧录U盘

提前把balenaEtcher烧录工具PVE安装镜像下载好,这里我用的是proxmox-ve_8.2-2.iso版本,用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘,然后插到主机进行PVE的安装。

安装PVE

将U盘或者移动硬盘接入主机引导启动到PVE安装界面,采用第一种图形化界面进行安装。
PVE系统我这边给了28G,20G作为PVE系统盘用于存些ISO镜像啥的,不需要太大。按自己需要设置。另外8G作为SWAP虚拟内存用。
PVE图形界面手动分区安装示意图:

PVE优化设置

安装完成PVE后,在浏览器输入https://你的PVE管理IP:8006来访问你的PVE管理后台了

登录进来后需要对PVE进行硬盘挂载和一些优化设置,在PVE Shell 中执行。以下设置将会大量使用nano文本编辑命令,至于怎么使用自行百度,这里不重复造轮子了。 知道如何保存就行 Ctrl +X 输入“Y” 按下回车 保存

删除local-lvm将空间合并到local

前面只给PVE系统盘分配了20G空间,再分出个local-lvm分区那local系统分区就没多少空间了,所以我们需要进行合并,删除local-lvm。

# 使用命令删除local-lvm
lvremove /dev/pve/data
# 输入y,确认,输出以下信息即成功
Do you really want to remove active logical volume pve/data? [y/n]: y
  Logical volume "data" successfully removed.
# 再将local-lvm的空间转移到pve-root
lvextend -rl +100%FREE /dev/pve/root
# 输出以下信息即合并local分区成功
Size of logical volume pve/root changed from <9.75 GiB (2495 extents) to <19.50 GiB (4991 extents).
  Logical volume pve/root successfully resized.
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/pve-root is now 5110784 (4k) blocks long.

删除了lvm-thin之后,还需要在Web删除local-lvm才算完成。

把剩余的空间挂载为PVE数据存储池

最后就是把剩余的硬盘空间用作PVE数据存储池。需要做下硬盘分区,这里要根据自己实际硬盘ID操作,我这里的是sda,用M.2硬盘的可能是nvme0n1不要盲目照抄。

硬盘分区好后,可以到PVE控制台看到硬盘分区情况

接着就是将该分区挂载为PVE数据存储池,把虚拟机安装到该存储池下就行。

更换系统源

国内清华源
在PVE Shell中编辑sources.list,将原有的源链接在句首加 # 注释掉,更换以下清华源信息
nano /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

更换企业源

国内清华源
在PVE Shell中编辑pve-enterprise.list,将原有的源链接在句首加 # 注释掉,更换以下清华源信息
nano /etc/apt/sources.list.d/pve-enterprise.list

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription

更换Ceph源

在PVE Shell中编辑ceph.list,将原有的源链接在句首加 # 注释掉,添加中科大ceph源
nano /etc/apt/sources.list.d/ceph.list

deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

执行更新源

# 更新系统程序
apt update 

LXC容器更源

国内清华源

# 备份APLInfo.pm
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
# 替换为清华源:
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
# 重启服务后生效
systemctl restart pvedaemon.service

二、部署NVIDIA vGPU

如果你机器有显卡且需要用到NVIDIA显卡做云桌面的,可以看往期这篇文章写的很详细。
官方支持vGPU的显卡查询:https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html
官方非支持vGPU的显卡,需要搭配VGPU_Unlock服务才支持的显卡如下:

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模拟型号
21c4TU116 GeForce GTX 1660 SUPERQuadro RTX 6000
21d1TU116BM GeForce GTX 1660 Ti MobileQuadro RTX 6000
21c2TU116Quadro RTX 6000
2182TU116 GeForce GTX 1660 TiQuadro RTX 6000
2183TU116Quadro RTX 6000
2184TU116 GeForce GTX 1660Quadro RTX 6000
2187TU116 GeForce GTX 1650 SUPERQuadro RTX 6000
2188TU116 GeForce GTX 1650Quadro RTX 6000
2191TU116M GeForce GTX 1660 Ti MobileQuadro RTX 6000
2192TU116M GeForce GTX 1650 Ti MobileQuadro RTX 6000
21aeTU116GLQuadro RTX 6000
21bfTU116GLQuadro RTX 6000
2189TU116 CMP 30HXQuadro RTX 6000
1fbfTU117GLQuadro RTX 6000
1fbbTU117GLM Quadro T500 MobileQuadro RTX 6000
1fd9TU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1ff9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fddTU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1f96TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f99TU117MQuadro RTX 6000
1faeTU117GLQuadro RTX 6000
1fb8TU117GLM Quadro T2000 Mobile / Max-QQuadro RTX 6000
1fb9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1f97TU117M GeForce MX450Quadro RTX 6000
1f98TU117M GeForce MX450Quadro RTX 6000
1f9cTU117M GeForce MX450Quadro RTX 6000
1f9dTU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1fb0TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fb1TU117GL T600Quadro RTX 6000
1fb2TU117GLM Quadro T400 MobileQuadro RTX 6000
1fbaTU117GLM T600 MobileQuadro RTX 6000
1f42TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f47TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f50TU106BM GeForce RTX 2070 Mobile / Max-QQuadro RTX 6000
1f51TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f54TU106BM GeForce RTX 2070 MobileQuadro RTX 6000
1f55TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f81TU117Quadro RTX 6000
1f82TU117 GeForce GTX 1650Quadro RTX 6000
1f91TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f92TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f94TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f95TU117M GeForce GTX 1650 Ti MobileQuadro RTX 6000
1f76TU106GLM Quadro RTX 3000 Mobile RefreshQuadro RTX 6000
1f07TU106 GeForce RTX 2070 Rev. AQuadro RTX 6000
1f08TU106 GeForce RTX 2060 Rev. AQuadro RTX 6000
1f09TU106 GeForce GTX 1660 SUPERQuadro RTX 6000
1f0aTU106 GeForce GTX 1650Quadro RTX 6000
1f10TU106M GeForce RTX 2070 MobileQuadro RTX 6000
1f11TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f12TU106M GeForce RTX 2060 Max-QQuadro RTX 6000
1f14TU106M GeForce RTX 2070 Mobile / Max-Q RefreshQuadro RTX 6000
1f15TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f2eTU106MQuadro RTX 6000
1f36TU106GLM Quadro RTX 3000 Mobile / Max-QQuadro RTX 6000
1f0bTU106 CMP 40HXQuadro RTX 6000
1eb5TU104GLM Quadro RTX 5000 Mobile / Max-QQuadro RTX 6000
1eb6TU104GLM Quadro RTX 4000 Mobile / Max-QQuadro RTX 6000
1eb8TU104GL Tesla T4Quadro RTX 6000
1eb9TU104GLQuadro RTX 6000
1ebeTU104GLQuadro RTX 6000
1ec2TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ec7TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ed0TU104BM GeForce RTX 2080 MobileQuadro RTX 6000
1ed1TU104BM GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1ed3TU104BM GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1f02TU106 GeForce RTX 2070Quadro RTX 6000
1f04TU106Quadro RTX 6000
1f06TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1ef5TU104GLM Quadro RTX 5000 Mobile RefreshQuadro RTX 6000
1e81TU104 GeForce RTX 2080 SUPERQuadro RTX 6000
1e82TU104 GeForce RTX 2080Quadro RTX 6000
1e84TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1e87TU104 GeForce RTX 2080 Rev. AQuadro RTX 6000
1e89TU104 GeForce RTX 2060Quadro RTX 6000
1e90TU104M GeForce RTX 2080 MobileQuadro RTX 6000
1e91TU104M GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1e93TU104M GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1eabTU104MQuadro RTX 6000
1eaeTU104MQuadro RTX 6000
1eb0TU104GL Quadro RTX 5000Quadro RTX 6000
1eb1TU104GL Quadro RTX 4000Quadro RTX 6000
1eb4TU104GL T4GQuadro RTX 6000
1e04TU102 GeForce RTX 2080 TiQuadro RTX 6000
1e07TU102 GeForce RTX 2080 Ti Rev. AQuadro RTX 6000
1e2dTU102 GeForce RTX 2080 Ti Engineering SampleQuadro RTX 6000
1e2eTU102 GeForce RTX 2080 Ti 12GB Engineering SampleQuadro RTX 6000
1e30TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e36TU102GL Quadro RTX 6000Quadro RTX 6000
1e37TU102GL GRID RTX T10-4/T10-8/T10-16Quadro RTX 6000
1e38TU102GLQuadro RTX 6000
1e3cTU102GLQuadro RTX 6000
1e3dTU102GLQuadro RTX 6000
1e3eTU102GLQuadro RTX 6000
1e78TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e09TU102 CMP 50HXQuadro RTX 6000
1dbaGV100GL Quadro GV100Tesla V100 32GB PCIE
1e02TU102 TITAN RTXQuadro RTX 6000
1cfaGP107GL Quadro P2000Tesla P40
1cfbGP107GL Quadro P1000Tesla P40
1d01GP108 GeForce GT 1030Tesla P40
1d10GP108M GeForce MX150Tesla P40
1d11GP108M GeForce MX230Tesla P40
1d12GP108M GeForce MX150Tesla P40
1d13GP108M GeForce MX250Tesla P40
1d16GP108M GeForce MX330Tesla P40
1d33GP108GLM Quadro P500 MobileTesla P40
1d34GP108GLM Quadro P520Tesla P40
1d52GP108BM GeForce MX250Tesla P40
1d56GP108BM GeForce MX330Tesla P40
1d81GV100 TITAN VTesla V100 32GB PCIE
1cb6GP107GL Quadro P620Tesla P40
1cbaGP107GLM Quadro P2000 MobileTesla P40
1cbbGP107GLM Quadro P1000 MobileTesla P40
1cbcGP107GLM Quadro P600 MobileTesla P40
1cbdGP107GLM Quadro P620Tesla P40
1cccGP107BM GeForce GTX 1050 Ti MobileTesla P40
1ccdGP107BM GeForce GTX 1050 MobileTesla P40
1ca8GP107GLTesla P40
1caaGP107GLTesla P40
1cb1GP107GL Quadro P1000Tesla P40
1cb2GP107GL Quadro P600Tesla P40
1cb3GP107GL Quadro P400Tesla P40
1c70GP106GLTesla P40
1c81GP107 GeForce GTX 1050Tesla P40
1c82GP107 GeForce GTX 1050 TiTesla P40
1c83GP107 GeForce GTX 1050 3GBTesla P40
1c8cGP107M GeForce GTX 1050 Ti MobileTesla P40
1c8dGP107M GeForce GTX 1050 MobileTesla P40
1c8eGP107MTesla P40
1c8fGP107M GeForce GTX 1050 Ti Max-QTesla P40
1c90GP107M GeForce MX150Tesla P40
1c91GP107M GeForce GTX 1050 3 GB Max-QTesla P40
1c92GP107M GeForce GTX 1050 MobileTesla P40
1c94GP107M GeForce MX350Tesla P40
1c96GP107M GeForce MX350Tesla P40
1ca7GP107GLTesla P40
1c36GP106 P106MTesla P40
1c07GP106 P106-100Tesla P40
1c09GP106 P106-090Tesla P40
1c20GP106M GeForce GTX 1060 MobileTesla P40
1c21GP106M GeForce GTX 1050 Ti MobileTesla P40
1c22GP106M GeForce GTX 1050 MobileTesla P40
1c23GP106M GeForce GTX 1060 Mobile Rev. 2Tesla P40
1c2dGP106MTesla P40
1c30GP106GL Quadro P2000Tesla P40
1c31GP106GL Quadro P2200Tesla P40
1c35GP106M Quadro P2000 MobileTesla P40
1c60GP106BM GeForce GTX 1060 Mobile 6GBTesla P40
1c61GP106BM GeForce GTX 1050 Ti MobileTesla P40
1c62GP106BM GeForce GTX 1050 MobileTesla P40
1bb8GP104GLM Quadro P3000 MobileTesla P40
1bb9GP104GLM Quadro P4200 MobileTesla P40
1bbbGP104GLM Quadro P3200 MobileTesla P40
1bc7GP104 P104-101Tesla P40
1be0GP104BM GeForce GTX 1080 MobileTesla P40
1be1GP104BM GeForce GTX 1070 MobileTesla P40
1c00GP106Tesla P40
1c01GP106Tesla P40
1c02GP106 GeForce GTX 1060 3GBTesla P40
1c03GP106 GeForce GTX 1060 6GBTesla P40
1c04GP106 GeForce GTX 1060 5GBTesla P40
1c06GP106 GeForce GTX 1060 6GB Rev. 2Tesla P40
1b87GP104 P104-100Tesla P40
1ba0GP104M GeForce GTX 1080 MobileTesla P40
1ba1GP104M GeForce GTX 1070 MobileTesla P40
1ba2GP104M GeForce GTX 1070 MobileTesla P40
1ba9GP104MTesla P40
1baaGP104MTesla P40
1badGP104 GeForce GTX 1070 Engineering SampleTesla P40
1bb0GP104GL Quadro P5000Tesla P40
1bb1GP104GL Quadro P4000Tesla P40
1bb3GP104GL Tesla P4Tesla P40
1bb4GP104GL Tesla P6Tesla P40
1bb5GP104GLM Quadro P5200 MobileTesla P40
1bb6GP104GLM Quadro P5000 MobileTesla P40
1bb7GP104GLM Quadro P4000 MobileTesla P40
1b06GP102 GeForce GTX 1080 TiTesla P40
1b07GP102 P102-100Tesla P40
1b30GP102GL Quadro P6000Tesla P40
1b38GP102GL Tesla P40Tesla P40
1b70GP102GLTesla P40
1b78GP102GLTesla P40
1b80GP104 GeForce GTX 1080Tesla P40
1b81GP104 GeForce GTX 1070Tesla P40
1b82GP104 GeForce GTX 1070 TiTesla P40
1b83GP104 GeForce GTX 1060 6GBTesla P40
1b84GP104 GeForce GTX 1060 3GBTesla P40
1b39GP102GL Tesla P10Tesla P40
1b00GP102 TITAN XTesla P40
1b01GP102 GeForce GTX 1080 Ti 10GBTesla P40
1b02GP102 TITAN XpTesla P40
1b04GP102Tesla P40
179cGM107 GeForce 940MXTesla M10
17c2GM200 GeForce GTX TITAN XTesla M60
17c8GM200 GeForce GTX 980 TiTesla M60
17f0GM200GL Quadro M6000Tesla M60
17f1GM200GL Quadro M6000 24GBTesla M60
17fdGM200GL Tesla M40Tesla M60
1617GM204M GeForce GTX 980MTesla M60
1618GM204M GeForce GTX 970MTesla M60
1619GM204M GeForce GTX 965MTesla M60
161aGM204M GeForce GTX 980 MobileTesla M60
1667GM204M GeForce GTX 965MTesla M60
1725GP100Tesla P40
172eGP100Tesla P40
172fGP100Tesla P40
174dGM108M GeForce MX130Tesla M10
174eGM108M GeForce MX110Tesla M10
1789GM107GL GRID M3-3020Tesla M10
1402GM206 GeForce GTX 950Tesla M60
1406GM206 GeForce GTX 960 OEMTesla M60
1407GM206 GeForce GTX 750 v2Tesla M60
1427GM206M GeForce GTX 965MTesla M60
1430GM206GL Quadro M2000Tesla M60
1431GM206GL Tesla M4Tesla M60
1436GM206GLM Quadro M2200 MobileTesla M60
15f0GP100GL Quadro GP100Tesla P40
15f1GP100GLTesla P40
1404GM206 GeForce GTX 960 FAKETesla M60
13d8GM204M GeForce GTX 970MTesla M60
13d9GM204M GeForce GTX 965MTesla M60
13daGM204M GeForce GTX 980 MobileTesla M60
13e7GM204GL GeForce GTX 980 Engineering SampleTesla M60
13f0GM204GL Quadro M5000Tesla M60
13f1GM204GL Quadro M4000Tesla M60
13f2GM204GL Tesla M60Tesla M60
13f3GM204GL Tesla M6Tesla M60
13f8GM204GLM Quadro M5000M / M5000 SETesla M60
13f9GM204GLM Quadro M4000MTesla M60
13faGM204GLM Quadro M3000MTesla M60
13fbGM204GLM Quadro M5500Tesla M60
1401GM206 GeForce GTX 960Tesla M60
13b3GM107GLM Quadro K2200MTesla M10
13b4GM107GLM Quadro M620 MobileTesla M10
13b6GM107GLM Quadro M1200 MobileTesla M10
13b9GM107GL NVS 810Tesla M10
13baGM107GL Quadro K2200Tesla M10
13bbGM107GL Quadro K620Tesla M10
13bcGM107GL Quadro K1200Tesla M10
13bdGM107GL Tesla M10Tesla M10
13c0GM204 GeForce GTX 980Tesla M60
13c1GM204Tesla M60
13c2GM204 GeForce GTX 970Tesla M60
13c3GM204Tesla M60
13d7GM204M GeForce GTX 980MTesla M60
1389GM107GL GRID M30Tesla M10
1390GM107M GeForce 845MTesla M10
1391GM107M GeForce GTX 850MTesla M10
1392GM107M GeForce GTX 860MTesla M10
1393GM107M GeForce 840MTesla M10
1398GM107M GeForce 845MTesla M10
1399GM107M GeForce 945MTesla M10
139aGM107M GeForce GTX 950MTesla M10
139bGM107M GeForce GTX 960MTesla M10
139cGM107M GeForce 940MTesla M10
139dGM107M GeForce GTX 750 TiTesla M10
13b0GM107GLM Quadro M2000MTesla M10
13b1GM107GLM Quadro M1000MTesla M10
13b2GM107GLM Quadro M600MTesla M10
1347GM108M GeForce 940MTesla M10
1348GM108M GeForce 945M / 945ATesla M10
1349GM108M GeForce 930MTesla M10
134bGM108M GeForce 940MXTesla M10
134dGM108M GeForce 940MXTesla M10
134eGM108M GeForce 930MXTesla M10
134fGM108M GeForce 920MXTesla M10
137aGM108GLM Quadro K620M / Quadro M500MTesla M10
137bGM108GLM Quadro M520 MobileTesla M10
137dGM108M GeForce 940ATesla M10
1380GM107 GeForce GTX 750 TiTesla M10
1381GM107 GeForce GTX 750Tesla M10
1382GM107 GeForce GTX 745Tesla M10
1340GM108M GeForce 830MTesla M10
1341GM108M GeForce 840MTesla M10
1344GM108M GeForce 845MTesla M10
1346GM108M GeForce 930MTesla 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

七、配置VDI用户

在PVE的用户菜单创建一个1000的用户。其中领域选择Proxmox VE authentication server

添加好后就能看到用户了,同时在这个页面还支持修改、删除用户信息和密码。

八、给VDI用户分配虚拟机使用权

在PVE里选中要给VDI用户的虚拟机,点击权限,选择添加,把刚才添加的用户和角色选择进来即可。

到这服务端的设置全部完成了,可以退出root账户,使用VDI账户登录PVE管理后台,网页进行管理资源了,由于网页管理虚拟机只有vnc窗口,要想使用完整云桌面功能还是得配置个瘦客户端,接着我们来设置瘦客户端。

客户端部分

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)高级设置中,还可以对各个协议进行定制调整。

高级设置

全屏开关
控制软件是否全屏,以及以后的连接是否全屏。所有的协议均能控制
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-AgentOmnissa-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是没有安装Horizo​​n Connection Server服务的,安装时得从命令行安装 Horizo​​n Agent,跳过Horizo​​n Connection Server 注册的参数。相关说明可见官方Horizo​​n Agent使用文档

# 管理员运行CMD,安装 Horizo​​n Agent时加入安装/v VDM_SKIP_BROKER_REGISTRATION=1参数
Omnissa-Horizon-Agent-x86_64-2503-8.15.0-14304348675.exe /v VDM_SKIP_BROKER_REGISTRATION=1


执行后会弹出安装窗口,按提示安装即可。

3)接着安装Horizon-Agent-Direct-Connection这个双击运行安装就行,不需要命令行安装。

4)安装好后重启虚拟机。通过虚拟机IP使用Horizon客户端连接即可。

5)到这PVE虚拟机也可以使用VMware Horizon(blast/pcoip)这类协议了。

四、游戏党配置Sunshine串流

在云端玩游戏推荐采用串流的方式,使用RDP或者SPICE协议来玩游戏会出现丢帧体验不好,建议采用Sunshine串流或Parsec串流方式。客户端云桌面OS已经集成了moonlight,Parsec2款串流工具。只需要在虚拟机配置好串流设置就行,并在虚拟机添加个音频。不然游戏没有声音。

Sunshine+Moonlight串流教学可以看这视频

Sunshine+Moonlight串流【保姆级教学】

异地访问

要让云桌面在异地也能正常使用,可以通过公网+端口映射或者VPN组网的方式。如果没有公网也可以在腾讯云或者阿里云买台vps做端口转发。下边演示在本地爱快做端口映射实现异地访问。在此之前你需要将宽带改桥接在爱快上拨号,并且宽带运营商有提供公网ipv4或者ipv6就可以继续往下看了。

IPV4


服务端信息
OS:PVE8.4.5
主机名:pve8.lan
IPv4地址:10.10.10.252
PVE管理端口:8006
Spice API端口:3128

1)在爱快的端口映射分别将80063128端口映射。如果运营商给你分配的是动态ipv4那你还需要做ddns。


2)返回到瘦客户端OS将公网信息填写到PVE VDIClient客户端PXVDI客户端
PVE VDIClient客户端修改nano /etc/vdiclient/vdiclient.ini

PXVDI客户端直接在服务器配置填写公网IP或者域名即可

IPV6

待更新...

集群管理

当服务端资源不足了,后面想再增加几台机器做服务端,那么可以在PVE创建集群,把各个服务端节点加入到集群集中管理。

创建PVE集群

在任意一个服务端创建集群作为主节点,创建集群直接在web创建。
步骤:数据中心 ➡️ 集群 ➡️ 创建集群 ➡️ 设置集群名称 ➡️ 选择网络 ➡️ 创建集群

加入PVE集群

加入集群需要确保节点下没有虚拟机/LXC 容器才可以正常加入集群。在需要加入的节点点击
步骤:数据中心 ➡️ 集群 ➡️ 加入集群 ➡️ 粘贴集群加入信息 ➡️ 输入集群 root 密码 ➡️ 选择网络确认加入集群

如果用弄成高可用分布式的集群方案可以看这篇文章。

广告位招租3
最后修改:2025 年 08 月 19 日
如果觉得我的文章对你有用,请随意赞赏