我们刚刚上线。网站和服务仍在完善中,如有不准确或不完善之处,敬请谅解。发现了错误或有功能不正常? 请告诉我们,我们会尽快修复。

← 全部项目
ZH
TAKT 之外

qsm-rd

QSM Direct 用 WebRTC 视频流取代 Proxmox VE 网页控制台中的 noVNC 画面,仍在同一个浏览器标签页中,使用同一个 PVE 登录和同一个 VM.Console 权限。客户端无需安装任何东西,pveproxy 和 pvedaemon 也不做修改。

  • Proxmox VE
  • WebRTC
  • LXC
状态
版本 0.4.0。HEVC 为实验性功能,启用 QSM Display1 的虚拟机的在线迁移尚未经过验证。已向 Proxmox 提交功能请求(bug #8106);仓库中已准备好面向 qemu-server 和 pve-manager 的 RFC 与补丁系列。
许可证
GPL-3.0-or-later;PVE 控制台脚本、信令服务、LXC 控制台和查看器页面采用 AGPL-3.0-or-later。
平台
Proxmox VE 9 节点;客户端为支持 WebRTC H.264 和 Opus 的浏览器。

解决什么问题

原生的 noVNC 控制台传输的是发生变化的屏幕矩形区域。在运行中的桌面里工作时,例如播放视频、滚动页面或使用动画界面,这意味着每秒能看到的不同画面很少、带宽占用却很高,而且客户机无法使用 3D。QSM Direct 在节点上把客户机画面编码为视频,再推流到浏览器。README 公布了与原生 noVNC 的实测对比,其中也列出了 noVNC 仍然更合适的情形:首个画面、单个孤立的指针事件,以及操作系统运行之前的一切。

主要功能

  • 默认使用 H.264,通过 NVENC、QSV、VA-API 或 CPU 上的 libx264 编码;HEVC 是可按虚拟机单独显式选择的实验性选项。
  • 支持带 OpenGL 和 3D 的 VirGL 客户机,也支持无需 GPU 的 Standard VGA、VirtIO 和 VMware 显示适配器。
  • 声音(Opus)、把浏览器麦克风接入客户机,以及双向文本剪贴板;在虚拟机中,剪贴板需要一个可选的客户机代理。
  • 指针移动走一条独立的无序通道,只保留最新状态,因此不会排在繁忙的帧后面。
  • 带 KDE Plasma 桌面的 LXC 容器:每个 tty 一个控制台,各自有登录界面。

工作原理

浏览器将其 WebRTC offer 发送到节点本地的信令服务(TLS 端口 8007)。该服务通过 PVE 自身的 /access/ticket 校验浏览器的 PVE 票据和 VM.Console 权限,再把 offer 交给终端服务,后者为每台虚拟机启动一个媒体工作进程。工作进程读取 QEMU 的 D-Bus 显示,编码画面和声音,并直接发送到浏览器;输入沿同一路径返回。同一台虚拟机的所有观看者共享一路编码流。

apt install ./qsm-pve-direct_*.deb
systemctl enable --now qsm-pve-direct-terminal.service qsm-pve-direct-signal.service

要求

  • Proxmox VE 9(pve-manager 9.x);软件包在 Debian 13 上构建,并安装在每个可能运行该虚拟机的节点上。
  • 浏览器:Chrome、Edge、带专有编解码器的 Chromium、Safari,或启用 OpenH264 插件的 Firefox。
  • 网络:TCP 8006 和 8007,以及来自运维网络的入站 UDP;使用节点证书有效的主机名访问。
  • 编码器:NVENC、QSV、VA-API 或 CPU(使用 libx264 时每个打开的控制台约占半个核心);VirGL 配置需要 DRM 渲染设备。每个节点最多 16 个控制台会话。

本页概述了截至 2026 年 10 月该仓库的 README 和文档内容。以仓库本身为准。