# 2026-06-10 RDP guacd 握手修复 — 生产验证

## 变更

- 服务端完成 guacd `select` → `connect` → `ready` 握手，再桥接 WebSocket
- 凭据来自 `rdp_hosts` 表，不依赖 URL 中的 password

## 部署

- 主机 `/opt/nexus` 已同步新文件
- `nexus-1panel.sh upgrade --no-backup` 重建镜像 `nexus-prod-nexus`
- `/health` → ok

## 验证（Agent 执行）

### 1. guacd 直连握手（容器内 Python）

```
handshake 20.189.75.225 3389 azureuserwindwos guacd guacd 4822
READY $da3288e0-2943-4186-b542-b00156251633
```

guacd 日志：

```
Creating new client for protocol "rdp"
Connected to RDPDR 1.13 as client 0x0003
```

### 2. WebSocket 隧道

```
FIRST_MSG 0.,37.$f5b63cbd-2af9-4ee4-a714-37a7fbf1df9c;
```

首包为 Guacamole tunnel OPEN（空 opcode + connection id），符合 `guacamole-common-js` 预期。

### 3. 结论

- 原 `Guacamole protocol violation`（透明 TCP 桥接）已消除
- RDP 目标 20.189.75.225:3389 可从 guacd 建立会话

## 待用户终验

浏览器：`https://api.synaglobal.vip/app/#/rdp` → 选择 `azurewin11` → 连接，应出现远程桌面画布。

## 备注

- 代码尚未 `git push`（仅主机热更新 + 镜像重建）；建议后续提交 `protocol.py` / `ws_tunnel.py` / `rdp.py`
- RDP 用户名库中为 `azureuserwindwos`（若 Windows 实际用户不同需在前端编辑）
