近年来,随着5G网络、云计算和虚拟化技术的快速发展,云手机和云电脑逐渐进入大众视野。无论是企业还是个人用户,都可以通过云端提供的算力,在任意设备(如手机、平板、低配电脑)上流畅运行高性能应用和操作系统。那么如何像云厂商一样在本地构建一套私有化云桌面呢?嘿嘿,还真有。本教程将指导你使用 Proxmox VE (PVE) 来构建一个简单的家庭私有云桌面环境
准备工作
预期想法:在家里配置一台高性能主机,购买一些瘦客户机将客户机放在各个房间跟客厅。通过PVE方案构建一个基于家庭环境的高性能虚拟桌面基础设施(VDI)系统,实现在家庭各个房间无缝访问高性能计算资源。
- 准备一台高性能PC或者服务器(做服务端)
- 准备一些x86_64架构的瘦客户机(做客户端)
懒人免部署篇
如果你是萌新或者是对pve基础较弱的用户,可以用我封装好的PVE镜像用balenaEtcher烧录工具写入硬盘启动即可。可以做到免部署开机即用。即节约时间又避免部署过程中产生的坑。
PVE镜像说明(服务端)
1)基于PVE 8.4.1
内核Linux 6.8.12-11-pve
版本进行封装;
2)该镜像大小28GB
,解压后用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版本
;
云桌面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串流
;
教程正式开始
服务端部分
服务端将采用Proxmox VE(PVE)免费且开源,无需支付高昂的授权费用,适合个人和家庭用户。
一、安装Proxmox VE
自行在高性能PC或者服务器上安装好PVE,安装过程略过
二、部署NVIDIA vGPU
PVE上部署NVIDIA vGPU可以看往期这篇文章
三、创建虚拟机(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串流。
一、为瘦客户端安装云桌面OS
1)用Ventoy引导进云桌面OS,然后安装到硬盘。
2)云桌面OS大概有800多兆,确保瘦客户机的硬盘不少于1GB、内存不少于2GB。打开GParted分区工具
3)我这里是一块全新未分配的1G硬盘,首先给它创建mbr分区表。【BIOS引导为例】
3)接着来创建分区,使用整个硬盘空间,创建一个ext4格式的主分区。并应用等待创建完成。
4)挂载分区到/mnt/sda1
5)打开Porteus Installer
工具,将系统写入硬盘即可。
二、配置PVE VDIClient客户端
1)打开终端,切换到root权限,去编辑VDIClient的配置文件
将自己正确的PVE地址填入即可。
# 切换root权限
sudo -i
# 使用nano命令编辑vdiclient.ini文件
nano /etc/vdiclient/vdiclient.ini
2)登录 PVE VDIClient客户端,输入服务端创建好的用户1000
。进行登录
3)登录进来就可以使用RDP协议
进行远程了。
4)如要切换成SPICE协议,需要调整一下虚拟机配置。将显示调整为SPICE,并添加个USB和音频。
5)同时在虚拟机的选项
处,把SPICE增强
启用。返回客户端就可以使用SPICE协议进行远程了。
三、配置PXVDI客户端
当然如果你觉得PVE VDIClient
客户端不好用,可以试试PXVDI客户端
1)打开PXVDI客户端,在设置中配置好服务器信息并保存。
2)高级设置中,还可以对各个协议进行定制调整。
3)登录PXVDI客户端,输入服务端创建好的用户1000
。进行登录
4)登录进来就能正常远程了。PXVDI客户端更多的使用教学建议到官方文档查阅:PXVDI文档
四、游戏党配置串流
玩游戏使用RDP或者SPICE协议丢帧严重,建议采用sunshine串流,Parsec串流方式。云桌面OS已经集成了moonlight,Parsec客户端。只需要在虚拟机配置好串流设置就行。值得注意的是虚拟机配置的显示记得改无,并添加个音频。不然游戏没有声音。
Sunshine+Moonlight串流教学可以看这视频
总结
当然,说是私有云桌面,但你如果有公网IP或者IPv6的话,直接在外面就能访问。我目前用IPv6串流方式在小米su7整了个移动办公点哈哈哈,左边串流打黑猴,右边看K线。