surgioproject / surgio

Generating rules for Surge, Clash, Quantumult like a PRO
https://surgio.js.org
MIT License
1.62k stars 138 forks source link

生成的Hysteria2配置在Stash上无法使用 #244

Closed Cysime closed 1 year ago

Cysime commented 1 year ago

Stash上的Hysteria2配置,关于密码的字段和Clash Meta不一样。 Stash上面只能读取 auth,但是Surgio配置和Clash Meta的对应的是password

这个差别会导致Surgio生成出来的配置无法在Stash上使用,提示 key 'auth' missing

下面是配置示例 Stash:

name: 'hysteria2'
type: hysteria2
server: server
port: 443
auth: your-password  # 请注意这里是auth
fast-open: true
sni: example.com 
skip-cert-verify: true
up-speed: 100 
down-speed: 100

Clash Meta:

  - name: "hysteria2"
    type: hysteria2
    server: server.com
    port: 443
    # up: "30 Mbps" 
    # down: "200 Mbps"
    password: yourpassword # 注意这里是password
    # obfs: salamander 
    # obfs-password: yourpassword
    # sni: server.com
    # skip-cert-verify: false
    # fingerprint: xxxx
    # alpn:
    #   - h3
    # ca: "./my.ca"
    # ca-str: "xyz"
geekdada commented 1 year ago

我想一下如何兼容

geekdada commented 1 year ago

新版增加了兼容 https://github.com/surgioproject/surgio/releases/tag/v3.2.1

Cysime commented 1 year ago

新版增加了兼容 https://github.com/surgioproject/surgio/releases/tag/v3.2.1

非常感谢适配!刚刚试用了一下发现有一些问题:

新功能中:允许单独为某个节点设定不同的客户端配置,但在Provider中对单个节点添加clashConfig设置后未能生效(生成时未报错)。 但如果直接在 surgio.conf.js 中设置clashConfig.clashCore的话,是没问题的。

Provider配置:

const { defineCustomProvider } = require('surgio');

module.exports = defineCustomProvider({
  type: 'custom',
  mptcp: true,
  nodeList: [

省略部分

    {
      type: 'hysteria2',
      nodeName: '🇺🇸 11111',
      hostname: 'xxx.com',
      port: 9090,
      password: 'passwd',
      skipCertVerify: false, // 可选
      alpn: ['h3'], // 可选,Stash 不支持空值
      udpRelay: true, // 可选, 仅 Clash 支持更改,Surge 默认开启
      clashConfig: {
        enableHysteria2: true,
        clashCore: 'stash',
      },
    },

期望结果:hysteria节点密码一项输出字段为auth 实际结果:hysteria节点密码一项输出字段仍然为password

geekdada commented 1 year ago

请升级 3.2.2