Update from Sync Service

This commit is contained in:
FNS Service
2026-04-29 13:58:35 +08:00
parent d0eb02538e
commit 7118ebeb92

View File

@@ -0,0 +1,137 @@
---
created: 2026-04-29
type: knowledge
tags: [VNC, 远程桌面, KasmVNC, 容器化, Docker]
source: https://github.com/kasmtech/KasmVNC
---
# KasmVNC 研究
> 现代 VNC 服务器,基于浏览器访问,专为容器化设计
## 概述
KasmVNC 由 Kasm Technologies 开发,与传统 VNCTigerVNC/RealVNC/TurboVNC不同
- **不依赖传统 VNC 客户端**,只能通过**浏览器**访问
- 突破了传统 RFB 协议限制,支持现代技术
- **基于 YAML 配置**,支持服务端/用户级配置
- 是 Kasm Workspaces 容器化流媒体平台的核心组件
## 核心特性
| 特性 | 说明 |
|------|------|
| **Web 访问** | 任何现代浏览器即可远程桌面,无需安装客户端 |
| **多用户支持** | 可添加多个用户,通过 API 管理权限 |
| **GPU 加速** | DRI3 GPU 加速AMD/Intel/ATI/ARM 开源驱动) |
| **视频优化** | 自动检测全屏视频 → 切换到视频编码模式WebP/JPEG 混合压缩) |
| **安全特性** | SSL/TLS 加密、暴力破解防护、多用户权限控制 |
| **DLP 防泄漏** | 键盘/剪贴板日志、剪贴板大小限制、屏幕区域遮蔽 |
| **动态分辨率** | 浏览器端可调整分辨率支持多实例systemd |
| **剪贴板** | 无缝双向剪贴板Chromium 浏览器支持二进制数据) |
| **移动端** | 支持手机/平板访问 |
| **IME 支持** | 扩展字符语言输入 |
## 安装
```bash
# 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
```
## 配置
```yaml
# /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 | ⚠️ 可选 |
| 剪贴板 | ✅ 二进制 | ✅ 文本 |
## 适用场景
1. **Docker 容器化远程桌面**Kasm Workspaces 生态)
2. **浏览器即客户端**,跨平台零配置访问
3. **企业远程办公**DLP 防泄漏特性)
4. **多用户共享主机**
## 局限性
- **不支持传统 VNC 客户端**(只能浏览器访问)
- 官方主要支持 Debian/UbuntuRPM 包不够完善
- 未来计划支持 H264 编码(当前未实现)
- 依赖 Chromium 浏览器获得最佳剪贴板体验
## 总结
KasmVNC 是传统 VNC 的现代化替代品,特别适合容器化部署和浏览器远程访问场景。比 TigerVNC + noVNC 的组合更简洁、功能更强大。
---
*基于 GitHub 仓库研究整理 | 归档2026-04-29*