Files
chill_notes/wiki/Areas/AI编程工具/KasmVNC 研究.md
2026-04-29 13:58:35 +08:00

138 lines
3.8 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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*