Skip to content

fix(protocol): 保留 SSR 协议与混淆参数#261

Merged
ZeroDeng01 merged 1 commit into
ZeroDeng01:mainfrom
isdoge:main
Jul 22, 2026
Merged

fix(protocol): 保留 SSR 协议与混淆参数#261
ZeroDeng01 merged 1 commit into
ZeroDeng01:mainfrom
isdoge:main

Conversation

@isdoge

@isdoge isdoge commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

描述

修复 Clash YAML 导入 SSR 节点时,protocol-paramobfs-param 被静默丢弃的问题。

SublinkPro 原有 Proxy 数据模型未接收这两个 SSR 专用字段,导致机场订阅虽然能够正常导入,但生成的 SSR 链接缺少认证参数。对于 auth_aes128_md5 等依赖 protocol-param 的节点,会进一步造成 Mihomo 延迟测试和实际连接失败。

本次修改遵循最小化侵入原则,仅补齐 SSR 参数的数据模型、链接编解码和反向导出链路,不修改数据库结构、API、前端及其他协议实现。

关联 Issue

无关联 Issue。

更改类型

  • 🐛 修复 Bug (Bug)
  • ✨ 新功能 (Feature)
  • 📝 文档更新 (Docs)
  • 🎨 样式或界面改进 (UI)
  • ♻️ 代码重构 (Refactor)
  • ⚡ 性能优化 (Perf)
  • 🔧 配置更改 (Config)
  • 🧪 测试更新 (Test)

更改内容

  • 为 Clash Proxy 数据模型补充 protocol-paramobfs-param 字段。
  • 补齐 SSR 链接中 protoparamobfsparam 的编码、解码和双向转换。
  • 增加 Clash YAML → SSR 链接 → Clash YAML 往返回归测试,确保参数不会再次丢失。

截图

PixPin_2026-07-22_02-15-22 本次修改仅涉及后端 SSR 协议转换逻辑,无 UI 变更。

检查清单

  • 我的代码遵循项目代码风格

  • 后端检查已通过

    golangci-lint run
    go test ./...
    
  • 前端改动已运行 yarn run lint

  • UI 改动已检查 light/dark 和响应式状态

  • 已按需补充或更新后端测试、注释和文档

  • 行为或契约变化时,已检查跨层同步

  • 本次更改不会引入安全漏洞

已运行命令或检查:

gofmt -l
golangci-lint run
go test ./...

验证结果:

gofmt -l 无输出
golangci-lint run:0 issues
go test ./...:全部通过
真实 SSR 订阅重新导入后,54/54 个节点均保留 protocol-param
SublinkPro 调用 Mihomo 执行实际节点检测成功

其他说明

  • 前端、UI、API 和数据库结构均未修改,因此前端 lint、主题及响应式检查不适用。
  • obfs-paramplain 混淆模式下通常为空;本次仍补齐该字段,以支持使用其他 SSR 混淆模式的订阅。
  • 修复不会自动恢复数据库中此前已经丢失的参数,现有机场需要重新拉取一次订阅。

补齐 Clash YAML、SSR 链接编解码及反向导出中的 protocol-param 和 obfs-param,避免 SSR 认证参数在机场导入后丢失。

验证:gofmt -l 无输出;golangci-lint run 通过;go test ./... 通过;MA 实际节点检测成功。
@ZeroDeng01
ZeroDeng01 merged commit 846c146 into ZeroDeng01:main Jul 22, 2026
3 checks passed
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.

2 participants