fobe 0.1.3
fobe 0.1.3 — 探针上已有的 sing-box(one-sing.sh 装的)从此「被看见」:状态显示「已识别」,A→B 中转入口回到订阅选择器。
升级方式不变:
docker compose pull && docker compose up -d(或改image:钉ghcr.io/fonlan/fobe:0.1.3)。无 schema 变更。
sing-box:发现即已识别(§9.3 实现修订 2026-09-17i)
0.1.2 的「监听平等」模型之后,发现型(one-sing.sh)节点的 node_singbox.port / cert_pem 恒为空,但订阅入口选择器、中转候选与自动落账判定还在读这两列——结果是:A 的 nftables 转发指向 B 的 anytls 入站时,「B 经 A」这条中转入口在选择器里不出现,而渲染端读的是上报文件,判定与渲染两边打架。本版把判定拉回与渲染同源:
- 中转落点端口 = 上报配置里的 anytls 入站集合(面板装的或脚本装的都算;管理态端口只作"文件还没上报"的兜底)。中转候选、自动落账、入口可用性、直连遮蔽告警全部换到同一来源。
- 中转出站按 nft 规则的目的端口挑入站 pin 证书:监听平等后同一节点多条 anytls 各带各的证书,原来一律 pin 第一条——规则指向第二条时客户端会 pin 到永远握不上手的证书。规则已删时回退旧行为。
- 编辑页状态 Tile:面板从未安装、但探针上发现 sing-box 时,状态显示「已识别(本机实例)」(zh/en),「尚未安装 sing-box」提示不再误导;「未安装」从此只描述面板管理的那套。
测试
新增 TestRelayEntryFromDiscoveredConfig(双 one-sing 节点 A→B:中转入口出现、自动落账、直连入口可用)与 TestRelayPinsTheInboundTheRuleLandsOn(双 anytls 入站按规则目的端口 pin 对应证书);全部既有订阅/入口测试不动而过。
升级注意
- 探针 agent 无协议改动,服务端升级后 agent 不需要(也不会)自更新。
- 生产面板从 0.1.2 直升 0.1.3 无中间步骤;数据库 schema 无变化。