# 浏览器内 RDP(guacd)— 设计说明 > 取代 [2026-06-09-rdp-native-launch-design.md](./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_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 时有可读错误 - [ ] 无连接级审计表项