Files
WechatOnCloud/panel/server
Gloridust 01a00f3e0e fix(vnc): ws 连接被拒不再静默 + 放行 Tailscale/内网 IPv6(issue #124)
「桌面一直重连中」此前完全无法定位:ws upgrade 的三道闸门(Host 白名单 /
URL 解析 / 会话权限)全部静默 socket.destroy(),面板与实例日志一个字都没有。
issue #124 的诊断包即如此——iframe 反复加载、容器里 KasmVNC 一次 websocket
都没收到,却查不出被谁拦下。

- 三条拒绝路径各自留痕,写入「对应实例日志 + 面板日志」,诊断包直接可见:
  · Host 被拒时回显 host / x-forwarded-host,并提示加 PANEL_ALLOWED_HOSTS
  · 会话失败细分为「没带 cookie / 会话过期 / 用户不存在 / 被禁用 / 无权限」
    —— 反代吞 Cookie 头是这类故障的常见成因,值得单独点名
- 限流:同实例同原因 60s 一条,防 2s 一次的重连把日志刷爆

同时补白名单两个真空档(实测均曾被 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 是自己
的域名,匹配不上,不因此获益。
2026-07-28 22:20:53 +08:00
..
2026-05-29 22:00:23 +08:00
2026-05-29 22:00:23 +08:00