1.5 KiB
1.5 KiB
2026-06-10 — 浏览器内 RDP(guacd)
摘要
将 RDP 从原生 .rdp 下载改为 浏览器内远程桌面:guacd 侧车 + Guacamole WebSocket 桥 + guacamole-common-js 画布。
动机
用户需要浏览器 RDP,而非本机 mstsc。
涉及文件
docs/design/specs/2026-06-10-rdp-browser-guacd-design.mddocker/docker-compose.prod.yml、docker-compose.yml—guacd服务server/config.py—GUACD_HOST/GUACD_PORTserver/infrastructure/guacamole/tunnel.pyserver/api/rdp.py—WS /ws/rdp/{id}server/api/servers.py—GET /rdp-connect,移除rdp-fileserver/utils/rdp_config.py— RDP 密码加密、build_guacamole_connect_stringfrontend/src/pages/RdpPage.vue、composables/rdp/useRdpSession.tsfrontend/package.json—guacamole-common-js
迁移 / 重启
- 生产需
docker compose拉起 guacd 并设置NEXUS_GUACD_HOST=guacd - Nexus 容器需重建/重启以加载新代码
- 服务器需配置 RDP 密码(浏览器连接必需)
验证
pytest tests/test_rdp_config.py -q
cd frontend && npm install && npm run type-check
浏览器:侧栏「3389远程」→ 选择服务器 → 画布连接;服务器列表「RDP」仍跳转同页。
安全说明
- 使用常规 access JWT 作为 WS
token(无专用 rdp-token) - 无 RDP 连接级审计(与 WebSSH 会话审计区分)
rdp-connect向已登录管理员返回解密密码(仅 HTTPS 环境使用)