v1.0.8 — 修复静默断开会话残留为「幽灵在线」
修复
面板在线数在客户端断开后一直不归零(幽灵在线)
- 根因:服务端会话保活的探测计时被下行流量重置。此前每轮
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 |