Skip to content

v1.0.8 — 修复静默断开会话残留为「幽灵在线」

Choose a tag to compare

@EUForest EUForest released this 02 Sep 20:30
· 1 commit to main since this release

修复

面板在线数在客户端断开后一直不归零(幽灵在线)

  • 根因:服务端会话保活的探测计时被下行流量重置。此前每轮 select! 迭代都
    新建一次探测计时,任何一次出站(下行)都会把它清零。客户端静默断开(强杀
    App、断网,未发 RST)但仍有下行中继在推数据(安卓 FCM 推送、浏览器长连接)时,
    节点不停往已消失的载体写下行 → 计时永远被重置 → 保活永不触发 → 会话永不回收,
    在线登记表里留下幽灵,每个上报周期都被当成在线。
  • 修复:保活改用固定墙钟间隔触发,只有入站帧才算「对端还活着」,出站
    不再重置计时;连续两个探测周期无任何入站帧即判定静默失效并结束会话。
  • 会话结束后立即中止 relay,释放它占着的目标连接(FCM/浏览器长连接),不再堆积。

影响

  • 客户端无论正常还是异常(强杀/断网)断开,面板在线数会在
    空闲超时(120s) + 上报周期(60s) ≈ 3 分钟内归零。
  • 此前 v1.0.5/v1.0.6 修的是「注销被 relay.await 阻塞」,本次修的是更隐蔽的
    「保活被下行重置」——两者叠加才会让有下行中继的会话永久残留。

升级

bash install.sh

产物

文件 架构
dbk-node-x86_64-unknown-linux-gnu.tar.gz x86_64 / amd64
dbk-node-aarch64-unknown-linux-gnu.tar.gz aarch64 / arm64