3.8 KiB
Executable File
3.8 KiB
Executable File
created, type, tags, source
| created | type | tags | source | |||||
|---|---|---|---|---|---|---|---|---|
| 2026-04-29 | knowledge |
|
https://github.com/kasmtech/KasmVNC |
KasmVNC 研究
现代 VNC 服务器,基于浏览器访问,专为容器化设计
概述
KasmVNC 由 Kasm Technologies 开发,与传统 VNC(TigerVNC/RealVNC/TurboVNC)不同:
- 不依赖传统 VNC 客户端,只能通过浏览器访问
- 突破了传统 RFB 协议限制,支持现代技术
- 基于 YAML 配置,支持服务端/用户级配置
- 是 Kasm Workspaces 容器化流媒体平台的核心组件
核心特性
| 特性 | 说明 |
|---|---|
| Web 访问 | 任何现代浏览器即可远程桌面,无需安装客户端 |
| 多用户支持 | 可添加多个用户,通过 API 管理权限 |
| GPU 加速 | DRI3 GPU 加速(AMD/Intel/ATI/ARM 开源驱动) |
| 视频优化 | 自动检测全屏视频 → 切换到视频编码模式(WebP/JPEG 混合压缩) |
| 安全特性 | SSL/TLS 加密、暴力破解防护、多用户权限控制 |
| DLP 防泄漏 | 键盘/剪贴板日志、剪贴板大小限制、屏幕区域遮蔽 |
| 动态分辨率 | 浏览器端可调整分辨率,支持多实例(systemd) |
| 剪贴板 | 无缝双向剪贴板(Chromium 浏览器支持二进制数据) |
| 移动端 | 支持手机/平板访问 |
| IME 支持 | 扩展字符语言输入 |
安装
# Ubuntu/Debian
sudo apt-get install ./kasmvncserver_*.deb
sudo adduser $USER ssl-cert
# 首次启动(引导设置用户和桌面环境)
vncserver
# 开机自启
systemctl --user enable kasmvncserver@:1
systemctl --user start kasmvncserver@:1
# 多实例
systemctl --user enable kasmvncserver@:2
配置
# /etc/kasmvnc/kasmvnc.yaml (全局) 或 ~/.vnc/kasmvnc.yaml (用户)
desktop:
resolution:
width: 1920
height: 1080
allow_resize: true
gpu:
hw3d: true
drinode: /dev/dri/renderD128
network:
protocol: http
interface: 0.0.0.0
websocket_port: auto
ssl:
require_ssl: true
encoding:
max_frame_rate: 60
video_encoding_mode:
max_resolution:
width: 1920
height: 1080
data_loss_prevention:
clipboard:
server_to_client:
enabled: true
size: unlimited
client_to_server:
enabled: true
keyboard:
enabled: true
rate_limit: unlimited
常用命令
| 命令 | 说明 |
|---|---|
vncserver |
启动会话(首次引导设置) |
vncserver -select-de mate |
指定桌面环境 |
vncpasswd -u username -w -r |
添加用户(读写权限) |
vncserver -list |
列出当前会话 |
vncserver -kill :2 |
关闭指定会话 |
tail -f ~/.vnc/*.log |
查看日志 |
与传统 VNC 对比
| KasmVNC | TigerVNC | |
|---|---|---|
| 客户端 | 浏览器 | VNC Viewer |
| 配置 | YAML | xstartup + 命令行 |
| 多用户 | ✅ 内置 | ❌ 需手动配置 |
| 视频优化 | ✅ 自动检测 | ❌ 无 |
| GPU 加速 | ✅ DRI3 | ✅ 部分 |
| DLP 防泄漏 | ✅ 内置 | ❌ 无 |
| 加密 | ✅ SSL/TLS | ⚠️ 可选 |
| 剪贴板 | ✅ 二进制 | ✅ 文本 |
适用场景
- Docker 容器化远程桌面(Kasm Workspaces 生态)
- 浏览器即客户端,跨平台零配置访问
- 企业远程办公(DLP 防泄漏特性)
- 多用户共享主机
局限性
- 不支持传统 VNC 客户端(只能浏览器访问)
- 官方主要支持 Debian/Ubuntu,RPM 包不够完善
- 未来计划支持 H264 编码(当前未实现)
- 依赖 Chromium 浏览器获得最佳剪贴板体验
总结
KasmVNC 是传统 VNC 的现代化替代品,特别适合容器化部署和浏览器远程访问场景。比 TigerVNC + noVNC 的组合更简洁、功能更强大。
基于 GitHub 仓库研究整理 | 归档:2026-04-29