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

1.5 KiB
Raw Permalink Blame History

2026-06-10 — 浏览器内 RDPguacd

摘要

将 RDP 从原生 .rdp 下载改为 浏览器内远程桌面guacd 侧车 + Guacamole WebSocket 桥 + guacamole-common-js 画布。

动机

用户需要浏览器 RDP,而非本机 mstsc。

涉及文件

  • docs/design/specs/2026-06-10-rdp-browser-guacd-design.md
  • docker/docker-compose.prod.ymldocker-compose.ymlguacd 服务
  • server/config.pyGUACD_HOST / GUACD_PORT
  • server/infrastructure/guacamole/tunnel.py
  • server/api/rdp.pyWS /ws/rdp/{id}
  • server/api/servers.pyGET /rdp-connect,移除 rdp-file
  • server/utils/rdp_config.py — RDP 密码加密、build_guacamole_connect_string
  • frontend/src/pages/RdpPage.vuecomposables/rdp/useRdpSession.ts
  • frontend/package.jsonguacamole-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 环境使用)