fobe 0.1.2
fobe 0.1.2 — sing-box 入口规则平等 + 每入口独立凭据;凭据丢了也能救回探针。
升级方式不变:
docker compose pull && docker compose up -d(或改image:钉ghcr.io/fonlan/fobe:0.1.2)。数据库 schema 11 → 13,两步纯增量迁移(reg_tokens.node_id列、node_singbox_inbounds表),启动前自动快照。
凭据重发:节点绑定的注册 token(§4.2 实现修订)
探针的 /etc/fobe-agent/config.json 一旦被覆盖、清空或随机器搬迁丢失,服务端只剩旧 secret 的哈希——此前没有任何入口能把凭据发回去,「删掉节点再添加」是唯一出路,还会连带丢掉挂在节点上的端口转发与账单(真机上刚丢过 7 条转发 + 1 条账单)。现在:
- 「重装 / 重发凭据」按钮常显(设置 → 服务器 → 编辑的「Agent 自更新」卡片,二次确认):原先只在 agent 不支持自更新时出现,而凭据丢了的节点恰恰是离线、caps 陈旧的那种,入口正好被藏掉。签发一张绑定该节点的注册 token(TTL 30 分钟、单次有效),安装命令在探针上重跑即可换发新凭据——节点、端口转发、账单、设置原样保留。
- 注册判定按绑定分流:machine_id 相符 → 免旧 secret 换发凭据(审计
node_reissued);machine_id 未注册(连 machine-id 一起丢了 / 换主机)→ 换发凭据并接管新 machine_id;machine_id 已属于别的节点 →409 machine_mismatch;被绑定节点已删除 →404 node_not_found。绑定 token 永不新建节点。 - 代价(有意接受):绑定 token 就是该节点的一次注册授权(bearer)——谁拿到这条命令谁就能顶掉该节点的凭据。因此入口有二次确认,签发(
agent_reinstall_token)与使用(node_reissued)都写审计。 - 通用 token 的两条老路径原样保留(旧 secret 有效 →
node_rebound;无凭据 →409 duplicate_machine)。
sing-box:入口规则平等,「配置唯一真相」收尾
- 「接管」动作删除(2026-09-17d):探针本机已有的监听一上报就自动成为本节点入口(取文件里最后一个 anytls、只认 10000–60000 端口段、认定后永不移动),操作员什么都不用点。面板不再有勾选框与「接管勾选的入站」按钮——要改入站就在规则表读-合并-写,或在探针上改完点「从探针刷新」。纯账面记账:不写配置、不下发期望帧、不重启。
- 全局 anytls 密码取消(2026-09-17e):密码属于入站——每个入口创建时现生成一份 16 位
[A-Za-z0-9](vless 为 v4 UUID),存在节点自己的配置里;重装 / 改端口 / 订阅渲染都读回同一份,绝不新生成。一个凭据泄漏不再要求全场轮换、打断所有客户端。老节点零迁移:它们的密码本来就烤在自己的config.json里。 - 每条入站自己的状态(2026-09-17f/g/h):规则表新增状态列——新增的规则立即可见为「添加中」,只有 agent 本机 TCP 确认对应监听后才变「运行中」;删除改为显示「删除中」,探针上报不再含该端口才消失(回滚时如实保持「删除中」,配合节点级最近错误解释原因)。不再有「本节点入口」特权行:所有可渲染入站统一按
协议:端口命名,订阅用各自端口上报的凭据与证书渲染,缺证书的条目跳过而不借用别入口的。每端口状态持久化在node_singbox_inbounds(schema 13)。 - 闸门③核对配置自身的监听,并引入基线语义:健康判定从记账端口
node_singbox.port换成新配置声明的全部listen_port(去重),且只要求「改前本机可连的监听、改后仍可连」——一条粘死 / 从未可连的端口不再让这台节点的所有编辑 30s 超时回滚死循环。代价(有意接受):基线路径下从未可连的监听不参与健康判定,这类存量问题由「添加中」状态与singbox_down告警负责。
面板
- 到期判定改为直接比较时间戳:过期当天不再显示成「0 天后到期」,非未来一律贴红色「已过期」标签。
- 编辑服务器页费用输入框右侧新增**「已续费」**:按当前缴费周期、以原到期日为基准整周期顺延下次到期日(月末 / 闰日钳制不逐次漂移),只改表单字段、保存才落库(design §15 规格同步修订)。
- 两张规则表的窄屏形态修复:sing-box 入站表控件补面板样式并包进
.table-wrap(390px 竖屏横向溢出 119px → 0),端口转发规则表短字段 nowrap、备注单行省略、行内按钮不再被压成两行。 - 删掉「凭据丢了也能…」与「本机已有的入站自动属于…」两段面板长文案;探针自报不支持自更新时仍保留短提示。
升级注意
- 存量探针会自动跟随到 0.1.2(§5.5:两端注入同一个版本号,探针下载 → sha256 → 旁路自检 → 原地换入)。曾在
Detect()误判期装过的探针(caps 报systemd=false,fallback=true)必须人工重装一次(本版起「重装 / 重发凭据」入口常显)才进入自动跟随,此后的版本都不用手动。 - 镜像仍只发 linux/amd64(agent 产物与 sing-box 缓存按设计就是这个平台)。compose 里
image: ...:latest若本地已有同名旧镜像不会自动拉,换版后先docker compose pull。
镜像
docker pull ghcr.io/fonlan/fobe:0.1.2
三个 tag 0.1.2 / v0.1.2 / latest 指向同一 manifest,仓库公开 ⇒ 匿名即可拉取。