Update from Sync Service
This commit is contained in:
137
wiki/Areas/AI编程工具/KasmVNC 研究.md
Executable file
137
wiki/Areas/AI编程工具/KasmVNC 研究.md
Executable 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 开发,与传统 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 支持** | 扩展字符语言输入 |
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
```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/Ubuntu,RPM 包不够完善
|
||||||
|
- 未来计划支持 H264 编码(当前未实现)
|
||||||
|
- 依赖 Chromium 浏览器获得最佳剪贴板体验
|
||||||
|
|
||||||
|
## 总结
|
||||||
|
|
||||||
|
KasmVNC 是传统 VNC 的现代化替代品,特别适合容器化部署和浏览器远程访问场景。比 TigerVNC + noVNC 的组合更简洁、功能更强大。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*基于 GitHub 仓库研究整理 | 归档:2026-04-29*
|
||||||
Reference in New Issue
Block a user