Skip to content

fix: 订阅导入节点缺失——传输层白名单补齐、未知传输统一拒绝、丢弃可见化#266

Merged
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:fix/subscription-parse-263
Jul 6, 2026
Merged

fix: 订阅导入节点缺失——传输层白名单补齐、未知传输统一拒绝、丢弃可见化#266
Sway-Chan merged 1 commit into
dododook:mainfrom
Sway-Chan:fix/subscription-parse-263

Conversation

@Sway-Chan

Copy link
Copy Markdown
Collaborator

问题

机场订阅同时含 vless 与 anytls 节点时,FlowZ 只导入 anytls,vless 全部缺失且无任何提示。

Closes #263

根因

分享链解析器的传输层白名单只认 tcp/ws/grpc/http,未知值整节点丢弃:

  • httpupgrade 属实现遗漏——Network 类型联合、sing-box JSON 导入、outbound 构建三处均已支持,唯 URI 解析漏 case;
  • 机场近年把 vless 迁往 xhttp/splithttp(Xray 专属传输,sing-box 内核无对应能力),这类节点被静默丢弃;anytls 链接无 type 参数故幸存。

修复

  • 分享链 type 白名单补 httpupgrade(vless/trojan/naive/vmess),h2→http、raw/none→tcp(Xray 1.8.24+ 别名),小写归一
  • mihomo 的 HTTPUpgrade 表达(network: ws + ws-opts.v2ray-http-upgrade: true)识别为 httpupgrade
  • 未知传输(xhttp/splithttp/kcp 等内核不支持)三条导入路径(URI / Clash / sing-box JSON)统一整节点拒绝——原 Clash/JSON 路静默降级裸 TCP,产出连不上的假节点
  • 丢弃可见化:URI 不支持 scheme 聚合告警、sing-box 路径三类静默跳过聚合告警、结果日志带跳过计数
  • 裸 IPv6 预处理泛化到全协议(原仅 ss://),地址/端口文法歧义按启发式消解(末段 2-5 位十进制且余段合法才拆端口)
  • reality 缺 pbk、hy2 salamander 缺 obfs-password 整节点拒绝(防假节点入库)
  • 节点指纹加传输维度(同 host:port:凭据不同传输不再误并;指纹不持久化,存量节点 id 不受影响)
  • sing-box JSON 路径补 ssh 映射(含 cipher/mac/kex_algorithm 算法协商字段)

测试

  • jest 4 套 221 tests 全绿(新增 30+ 用例:传输归一矩阵、往返不动点、聚合计数、IPv6 边界、SIP002 plugin)
  • tsc main/renderer 双绿
  • 独立 review 三轮收敛全绿

升级后用户侧

vless 节点若仍缺失,日志会给出聚合告警;搜「不支持的传输层类型」——若为 xhttp/splithttp,属 sing-box 内核无该传输能力,需服务端提供 ws/tcp/httpupgrade 形态节点。

… IPv6 泛化

Closes dododook#263

- 分享链 type 白名单补 httpupgrade(vless/trojan/naive + vmess net 同步)、h2→http、raw/none→tcp
  (Xray 1.8.24+ 别名)、小写归一;未知传输(xhttp/splithttp/kcp 等 sing-box 不支持)三条导入路径
  (URI/Clash/sing-box JSON)统一整节点拒绝——原 Clash/JSON 静默降级裸 TCP 产假节点
- mihomo HTTPUpgrade 表达(network:ws + ws-opts.v2ray-http-upgrade:true)识别为 httpupgrade
- 丢弃可见性:URI 不支持 scheme 聚合告警(原全静默)+ 结果 info 带跳过计数;sing-box 路径三类
  silent continue(type/transport/缺字段)聚合告警,internal 类型不计噪声
- 裸 IPv6 预处理从 ss:// 泛化到全协议;地址/端口歧义消解(末段 2-5 位十进制且余段合法才拆端口,
  无端口整段加括号,皆非则交 URL 抛错保持丢弃可见)
- reality 缺 pbk/public-key 整节点拒绝;hy2 salamander 缺 obfs-password 拒绝(强制混淆裸连必死)、
  非 salamander 值剥离留痕
- serverFingerprint 加传输维度(同 host:port:cred 不同 network 不再误并;指纹不持久化,
  reconcile 两侧同函数现算,存量 id 不受影响)
- sing-box JSON 路径补 ssh 映射(含 cipher/mac/kex_algorithm 算法协商字段)
@Sway-Chan Sway-Chan merged commit 2cba8e9 into dododook:main Jul 6, 2026
2 checks passed
@Sway-Chan Sway-Chan deleted the fix/subscription-parse-263 branch July 8, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 机场订阅导入节点缺失问题

1 participant