桌面连不上,终于能查了(issue #124)
有用户反馈「一直卡在桌面正在启动 / 重连中…」,但导出诊断里什么线索都没有。查下来发现是我们自己的锅:面板处理 WebSocket 连接时有三道校验(Host 白名单 / URL 解析 / 会话权限),任何一道不通过都是静默断开,不留任何日志。于是用户只看到「重连中」,我们也无从下手。
- 三条拒绝路径全部留痕,写入对应实例日志 + 面板日志,导出诊断即可看到:
- Host 被拒时回显实际收到的
Host/X-Forwarded-Host,并提示加PANEL_ALLOWED_HOSTS - 会话失败细分为「没带 cookie / 会话过期 / 用户不存在 / 被禁用 / 无权限」——反代吞 Cookie 头是常见成因
- Host 被拒时回显实际收到的
- 同一实例同一原因 60 秒只记一条,避免 2 秒一次的重连把日志刷爆
Tailscale / 内网 IPv6 现在能直接访问了
这两种此前会被直接 400 拒绝(实测确认):
- Tailscale / Headscale 的 CGNAT 段
100.64.0.0/10 - 内网 IPv6:
fc00::/7(ULA,含 Tailscale 的fd7a::/48)与fe80::/10(链路本地)—— 此前只放行::1,纯 IPv6 内网用户完全进不来
安全性与原有的 RFC1918 放行同理:校验的是 Host 头字面量,DNS-rebinding 攻击者的 Host 是自己的域名,匹配不上。
微信装不上时不再误导你去查网络
盘写满时 curl 以退出码 23(本地写失败)反复卡在同一字节,连进度文件都写不进去(面板显示无下载进度),此前的报错却提示「请检查网络」—— 真实案例里用户为此查了半天代理。现在下载前先 df 预检、失败后按退出码复查,直接报「磁盘空间不足」并给出清理指引。
输入体验(issue #125)
- 自动回车开关:转发输入条右侧新增
↵开关。关掉后只把文字填进应用输入框、不代发,方便先编辑再自己发(按钮文案随之变「填入」)。默认保持原有行为。 - 功能键排:左侧
Fn展开EscTab退格Del↵←↑↓→,这些键在 VNC 里常被浏览器吞掉,手机端更是没有。 - 齿轮图标:旧图标路径混进了绝对指令,有两颗齿走形(右下最明显),已换成对称版本。
- 子用户文案:「重启实例」按钮本就按权限隐藏,但提示文字没跟着改,子用户会照着找一个不存在的按钮,现改为提示联系管理员。
镜像:ghcr.io/gloridust/{woc-panel,wechat-on-cloud}:1.4.9、gloridust/{woc-panel,wechat-on-cloud}:1.4.9(amd64 + arm64)。升级方式不变:面板「检查更新」一键升级,再「一键升级全部实例」。
如果你之前遇到过「桌面一直重连中」,升级后请重新复现一次并重新导出诊断包 —— 这次日志里会直接写明卡在哪一段。