Files
Nexus/docs/design/specs/2026-06-10-rdp-browser-guacd-design.md
T
2026-07-08 22:31:31 +08:00

1.4 KiB
Raw Blame History

浏览器内 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 作为 WS token
  • SshSession / CommandLog / rdp_connect 连接审计
  • Nexus 不解析 Guacamole 画面流,仅桥接

数据

extra_attrsrdp_enabledrdp_portrdp_usernamerdp_passwordFernet 加密)。

部署

  • docker-compose.prod.yml 增加 guacd 服务,nexus 环境变量 GUACD_HOST=guacdGUACD_PORT=4822
  • 无 guacd 时 WS 返回明确错误。

验收

  • 服务器表单可配置 RDP 与密码
  • 列表「RDP」进入 /rdp?server_id=,画布显示桌面
  • 未启用 / 无 guacd 时有可读错误
  • 无连接级审计表项