Skip to content

[Bug] Hysteria2 fingerprint 字段在转换为 Clash 格式时丢失 #891

Description

@cksdxz1007

问题描述

转换 hysteria2 URI 时(如 hysteria2://password@host:port/?pinSHA256=xxx),生成的 Clash 配置中缺少 fingerprint 字段。

复现方式

  1. 使用包含 pinSHA256 参数的 hysteria2 订阅链接
  2. 通过 subconverter 转换为 Clash 格式
  3. 检查输出的 YAML,hysteria2 节点中没有 fingerprint 字段

对比

对比 proxyToSurge()proxyToClash()

proxyToSurge() (有 fingerprint):

case ProxyType::Hysteria2:
    if (!x.Fingerprint.empty())
        proxy["server-cert-fingerprint-sha256"] = x.Fingerprint;

proxyToClash() (漏掉):

case ProxyType::Hysteria2:
    singleproxy["ports"] >>= ports;
    singleproxy["up"] >>= up;
    // ... 其他字段
    // ❌ 没有写入 fingerprint
    break;

影响

导致 OpenClash 等客户端无法验证服务器证书指纹,存在中间人攻击风险。

环境

  • subconverter 版本: 最新
  • 客户端: OpenClash

期望

转换后的 Clash 配置中应包含 fingerprint 字段,与 Surge 格式一致。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions