云桌面之取代RDP的工具(PVE + Sunshine + Moonlight)
2 分钟阅读
What-is-this-Talking-About
这份配置单涵盖了硬件基础设施、虚拟化显示方案、性能优化及串流设置,适用于我的 AMD EPYC 7551 (Home) 和 Dual Xeon (Work) 环境。
硬件环境
Homelab配置
- CPU: AMD EPYC 7551 (Home)
- 主板:Supermicro H11SSL-i
- 显卡:NVIDIA GeForce GTX 1050 Ti (4GB)
Work Server配置
- CPU: Dual Xeon (Work)
- 主板:白牌X99芯片组
- 显卡:亮机卡只能给PVE使用,不希望维护时还要修改显卡直通配置,所以等同于无显卡
需求
家庭成员多,而且如果每个人使用一台笔记本或PC,首先
- 购买计算机的费用就很高;
- 其次软件维护的工作量将会很大(需要孤立的去设置每一台计算机上的软件/重装系统等);
- 而且家中有做PPT和轻度设计的需求,所以Mac和Win都是刚需;
- 作为一名工程师,很难接受家里的设备不好用的局面。例如:买一台游戏机或买一张很贵的显卡(打游戏用),总不能只能在一台PC上使用,要打游戏的人就都抢这台PC吧。
- NAS,把全家的资料都集中存储,极大减少资料丢失的风险,减轻资料备份的繁重工作,还有可怕的存储设备的费用(硬盘真贵啊)。
而上述这些点,就自然而然想到上云,家庭内建立一台强大的服务器Server, 硬件能够一次购买,最大化被所有人共享。
(同样的需求在公司内部也一样,因为都经我的手,所以处理方案都是用PVE,再此就不再提WorkServer的情况,默认与Homelab情况一致。)
困扰
搭建环境时,一直用RDP来连接HomeLab(安装了PVE)下的VM(有Ubuntu/Mac/Win10/Win11)。
但是发现鼠标肉眼可见的拖拽卡顿,虽然能用,但满足不了设计师的需求。更别说要远程打开设计软件和Microsoft PowerPoint了。
最终效果
下载
功能点1. 显卡策略 (GPU Strategy)
解决 Host latency 高、顿挫感重的核心硬件方案。
- 方案 A:通用虚拟化 (推荐 EPYC/Xeon 部署)
- 尚未部署,但是vGPU对我是有巨大的吸引力,而且功耗是50/75w,太适合家用了,只是P4的显存少,美中不足。
- 硬件:NVIDIA Tesla P4 (8GB) + 3D打印导风罩 & 暴力风扇。
- 配置:PVE 安装
vGPU_unlock驱动。 - 分配:切分为 4 个
P4-2Q(2GB显存) profile,分配给 4 个 VM。 - 用途:流畅运行 1080P/60FPS 桌面串流、轻量级任务。
- 方案 B:高性能直通 (现有设备)
- 已部署,且Host latency立刻从20ms~30ms降低到0ms~5ms
- 硬件:GTX 1050 Ti (4GB)。
- 配置:PVE 使用 PCIe Passthrough (直通) 模式给主力 Windows VM。
- 分配:独占。
- 用途:AI 入门学习 (CUDA)、4K 视频播放、轻度游戏。
功能点2. 虚拟显示解决方案 (Headless Display)
解决无物理显示器导致的黑边、分辨率锁定 (1280x800) 问题。
- 软件:IddSampleDriver (虚拟显示器驱动)。
- 安装步骤:
- 权限:使用管理员权限运行
installCert.bat。 - 添加硬件:设备管理器 -> 操作 -> 添加过时硬件 -> 手动列表 -> 显示适配器 -> 从磁盘安装 -> 选择
IddSampleDriver.inf。
- 权限:使用管理员权限运行
- 设置 (Windows Display Settings):
- 分辨率:手动设置为 1920 x 1080。
- 多屏策略:选中虚拟屏幕(通常是 Screen 2),设置 “Show only on 2” (仅在 2 上显示)。
- 清理:在设置中 “Disconnect” (断开) 多余的虚拟屏幕 (3, 4, 5, 6)。
功能点3. Windows VM 性能深度优化
针对 Xeon/EPYC 在无 GPU / 软解状态下的极限优化,降低 Host Latency。
- 视觉效果:
System Properties->Advanced->Performance-> Adjust for best performance (关闭所有动画特效)。
- 右键菜单回滚 (降 CPU 负载):
- 使用管理员终端运行注册表修改命令,恢复 Win10 风格菜单:
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve - 操作:运行后重启 VM 生效。
- 使用管理员终端运行注册表修改命令,恢复 Win10 风格菜单:
功能点4. 串流服务设置 (Sunshine & Moonlight)
目标:在 1ms 内网延迟下,压榨 CPU 软解性能,或适配 GPU 硬解。
服务端 (Sunshine WebUI)
- 位置:
Configuration->Advanced - 无 GPU (Xeon 当前状态):
- Encoder: Software / x264
- Software Preset: Ultrafast (极速模式,牺牲画质换取低延迟,关键!)
- Software Tune: Zerolatency
- Threads: 手动设置 8 或 16
- 有 GPU (P4/1050Ti):
- Encoder: NVENC
- Preset: P1 (Fastest) 或 P4 (Default)
客户端 (Moonlight - Ubuntu)
- Resolution/FPS:
- 无 GPU:1080p / 30 FPS (避免卡顿)
- 有 GPU:1080p / 60 FPS
- Bitrate: 10 Mbps - 15 Mbps (降低 CPU 编码压力)
- V-Sync: Off (关闭以降低输入延迟)
- Video Codec: H.264 (强制使用旧编码,降低编解码压力)
- Input Settings:
- Optimize mouse for remote desktop instead of games (开启鼠标直接映射,提升手感)。
功能点5. 键鼠无缝漫游与剪贴板 (KVM)
解决 Moonlight 鼠标锁定及剪贴板不同步问题。
其实,这一点可有可无,如果纯Thin Client做远程连接的方案,鼠标锁在Server里才是真正的用法。所以姑且将该功能点留做备份。
- 软件:Barrier (或 Input Leap)。
- 架构:
- Server (服务端):Ubuntu Client (有物理键鼠)。
- Client (客户端):Windows VM (被控端)。
- 配置步骤:
- Ubuntu 端勾选 Server,
Configure Server中拖入新屏幕,命名为win11-vm(需与 Windows 端 Screen Name 一致)。 - Windows 端勾选 Client,填入 Ubuntu IP。
- 效果:鼠标移出屏幕边缘自动切换控制权,剪贴板共享 (文本/Ctrl+C/V)。
- 配合:Moonlight 中解除鼠标锁定 (
Ctrl+Alt+Shift+Z) 或全屏使用。
- Ubuntu 端勾选 Server,

