v0.2.2
反代引入WebSocket为后续协议本体WebSocket传输做实验
reverse: 子路径反代彻底可用:修复资源 404、SVG/图片无法加载、WebSocket 无法建立等问题;增强Location/Set-Cookie Path重写,并支持在Content-Type缺失时按路径后缀推断是否可重写。reverse: 新增反代前缀 Cookie 回写与路由回退:当浏览器发起根路径请求(如/api/*、/ws)但无Referer时,仍能正确路由到最近访问的子路径应用,解决“资源 404 / WS 连不上”类问题。reverse: 避免 JS/HTML 重写误伤正则字面量导致页面卡死/报错:重写时自动跳过<script>内联脚本内容;并在Content-Type不准确时按.js/.mjs后缀识别为 JS,从而禁用文本重写以避免破坏 bundle。reverse: 新增 TCP-over-WebSocket:在每个路由的精确路径/<route>(无尾斜杠)上协商子协议sudoku-tcp-v1,转发任意 TCP 到客户端target(CDN/反代友好)。reverse: 反向代理支持纯 TCP 转发:当reverse.routes[].path为空时,reverse.listen上的非 HTTP 入站连接会被当作原始 TCP 流量转发到客户端目标(每个入口仅支持 1 条 TCP 路由)。cli: 新增内置本地端口转发器:-rev-dial/-rev-listen/-rev-insecure(用于把本地 TCP 通过 TCP-over-WebSocket 隧道转发)。tunnel: 修复双向 Pipe 在对端不支持 half-close 时的关闭行为,避免隧道连接卡住;并修复 mux 会话在对端异常断开(ECONNRESET)时的偶发失败,提升 CI 与压力测试稳定性。tests: 新增 BDD 场景测试,模拟 TLS Edge/CDN、内置转发器与 HTTPMask 隧道,验证 HTTP 子路径与 TCP-over-WS 可用性。deps: 替换弃用的nhooyr.io/websocket为github.com/coder/websocket。ci: release workflow 在构建发布产物前先跑严格测试,避免未验证版本被发布。docs: 补充反向代理与 TCP-over-WebSocket 的使用说明(含配置与命令示例)。
快速用法
- HTTP 子路径反代访问示例:
http(s)://<reverse.listen>/navi/app/#/... - TCP-over-WS 本地转发示例:
./sudoku -rev-dial wss://<reverse.listen>/ssh -rev-listen 127.0.0.1:2222