Repository navigation
升级须知
不需要改配置:库自动迁移到 schema 13(只加一列),之后回退到 1.4.0 也能打开。升级走 install-hub.sh,Docker 拉新镜像即可。下面几条按你的部署看是否要动手:
- 前面有按路径放行的 WAF 或反代规则(例如 Cloudflare 自定义规则里的路由白名单):新增了
GET /api/agent/echo,要放行它。不放行不影响节点在线,只是网卡上只有内网 IPv6(NAT66、ULA)的节点显示不出 v6 出口,agent 日志会写 hub 回了 403。 - 设置页新增「我确认源站只对 Cloudflare 或隧道开放」,默认关:前面是 Cloudflare 隧道、或回源带密钥头且反代校验的,可以打开,登录通知和限流就按访客真实地址算;不满足前提别开,否则别人直连源站自己写请求头,就能每次换一个地址猜密码。别家 CDN 用不上这个开关,在反代上配 realip。恢复备份后开关回到关,要重新确认。
- 登录与注册的限流按 IPv6 /64 计,所有部署生效。
- 浏览器发来的非 same-origin 写请求现在返回 403:同一注册域名下兄弟子域上的脚本不能再借你的会话 cookie 发写请求;非浏览器的客户端(curl、脚本)不带该头,不受影响。明文 http 的非回环地址上浏览器不带这个头,保护不生效,建议走 HTTPS。
- 匿名推送同时最多 1000 条,超出回 503,页面退回轮询
/api/nodes;登录会话不计入。 - 文件描述符软上限启动时自动提到 65536。systemd 与 Docker 的默认软上限是 1024,约一千条连接时 hub 会静默停止响应,这一版不用再手动调
LimitNOFILE;硬上限不够时启动日志会有警告。 - 节点名与 agent 上报的
os、kernel、arch、virt、cpu_name、agent_version会去掉< > " ',只作用于新输入,库里已有的值不改。 - 想看 NAT66 节点的 v6 出口,节点要升级到 agent 1.2.1,且 hub 域名同时有 A 和 AAAA 记录。
第三方主题请适配
/api/nodes/{id}/metrics每行新增swap_used、tcp、udp、procs(桶内均值,计数四舍五入取整),旧版 hub 没有这几个字段,要用就先判空。- 匿名
/api/ws满 1000 条时握手回 503:主题必须有轮询/api/nodes的兜底并隔一段时间再试,只做断线重连的主题会一直停在旧数据上。 - agent 上报的字符串仍要当纯文本渲染,不要交给
innerHTML;hub 现在去掉了几个标记字符,但那不是渲染安全的保证。 - 读写
localStorage要包 try/catch:浏览器对站点禁用数据时访问它会抛SecurityError,不处理整页空白。官方两个主题已在本次随附的新版里修好。 /api/nodes对带Accept-Encoding: gzip的匿名请求直接回已压缩的帧,对主题透明,不用改。
内嵌默认主题
随包的默认主题升到 1.4.1(公开页在浏览器禁用站点数据时不再白屏)。已安装主题的用户在「主题」页点更新即可。
合并的 PR
- docs: 注明浏览器推送为何保持 2 秒 by @stqfdyr in #108
- perf: 公开节点列表复用推送已压缩的帧,不再逐请求 gzip by @stqfdyr in #106
- fix: 文件描述符软上限提到 65536,匿名推送限 1000 条同时在线 by @stqfdyr in #109
- fix: 拒绝其他网站发来的写请求 by @stqfdyr in #110
- fix: agent 上报的字符串去掉标记字符 by @stqfdyr in #111
- fix: 浏览器禁用站点数据时面板不再白屏,坏帧不再重置看门狗 by @stqfdyr in #112
- ci: release 的构建 job 只持有只读 token by @stqfdyr in #113
- feat: 「我确认源站只有 CDN 或隧道能连上」开关;节点地址在 CDN 后面不要求配置 by @stqfdyr in #114
- feat: agent 经 hub 的回显连接补报另一地址族的出口,NAT66 的节点也显示 v6 by @stqfdyr in #115
- feat: 历史指标接口返回 swap_used、tcp、udp、procs by @stqfdyr in #116
Full Changelog: v1.4.0...v1.4.1