1.4 KiB
1.4 KiB
浏览器内 RDP(guacd)— 设计说明
取代 2026-06-09-rdp-native-launch-design.md(原生
.rdp下载)。
背景与目标
运维需在 Nexus 浏览器内连接 Windows 子机远程桌面,不依赖本机 mstsc。
方案
| 组件 | 职责 |
|---|---|
| guacd | Docker 侧车,RDP 协议代理(Apache Guacamole) |
| Nexus WS | /ws/rdp/{server_id} — 鉴权后 WebSocket ↔ guacd TCP 透明桥接 |
| guacamole-common-js | 前端画布渲染、键鼠 |
| REST | GET /api/servers/{id}/rdp-connect — 管理员 JWT 返回连接参数(含解密密码) |
刻意不做(与 WebSSH 区分):
- 无
POST /auth/rdp-token专用短票(使用常规 access JWT 作为 WStoken) - 无
SshSession/CommandLog/rdp_connect连接审计 - Nexus 不解析 Guacamole 画面流,仅桥接
数据
extra_attrs:rdp_enabled、rdp_port、rdp_username、rdp_password(Fernet 加密)。
部署
docker-compose.prod.yml增加guacd服务,nexus环境变量GUACD_HOST=guacd、GUACD_PORT=4822。- 无 guacd 时 WS 返回明确错误。
验收
- 服务器表单可配置 RDP 与密码
- 列表「RDP」进入
/rdp?server_id=,画布显示桌面 - 未启用 / 无 guacd 时有可读错误
- 无连接级审计表项