From b73a02bdbfcd00d7594689b94e2bc9b7f938b61f Mon Sep 17 00:00:00 2001 From: Nite07 Date: Sun, 5 May 2024 22:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20vless=20parser=20cannot=20?= =?UTF-8?q?correctly=20parse=20some=20reality/grpc=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 42 ++++++++++++++++++++++-------------------- parser/vless.go | 5 ++++- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index a58c7fb..39befff 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,31 @@ # sub2clash +> Sing-box 用户?看看另一个项目 [sub2sing-box](https://github.com/nitezs/sub2sing-box) + 将订阅链接转换为 Clash、Clash.Meta 配置 [预览](https://www.nite07.com/sub) ## 特性 -- 开箱即用的规则、策略组配置 -- 自动根据节点名称按国家划分策略组 -- 支持多订阅合并 -- 支持添加自定义 Rule Provider、Rule -- 支持多种协议 - - Shadowsocks - - ShadowsocksR - - Vmess - - Vless (Clash.Meta) - - Trojan - - Hysteria (Clash.Meta) - - Hysteria2 (Clash.Meta) +- 开箱即用的规则、策略组配置 +- 自动根据节点名称按国家划分策略组 +- 多订阅合并 +- 自定义 Rule Provider、Rule +- 支持多种协议 + - Shadowsocks + - ShadowsocksR + - Vmess + - Vless (Clash.Meta) + - Trojan + - Hysteria (Clash.Meta) + - Hysteria2 (Clash.Meta) ## 使用 -### 运行 +### 部署 -- [docker compose](./docker-compose.yml) -- 运行[二进制文件](https://github.com/nitezs/sub2clash/releases/latest) +- [docker compose](./docker-compose.yml) +- 运行[二进制文件](https://github.com/nitezs/sub2clash/releases/latest) ### 配置 @@ -49,11 +51,11 @@ 可以通过变量自定义模板中的策略组代理节点 具体参考下方默认模板 -- `` 为添加所有节点 -- `` 为添加所有国家策略组 -- `<地区二位字母代码>` 为添加指定地区所有节点,例如 `` 将添加所有香港节点 +- `` 为添加所有节点 +- `` 为添加所有国家策略组 +- `<地区二位字母代码>` 为添加指定地区所有节点,例如 `` 将添加所有香港节点 #### 默认模板 -- [Clash](./templates/template_clash.yaml) -- [Clash.Meta](./templates/template_meta.yaml) +- [Clash](./templates/template_clash.yaml) +- [Clash.Meta](./templates/template_meta.yaml) diff --git a/parser/vless.go b/parser/vless.go index b74c9f1..6262d08 100644 --- a/parser/vless.go +++ b/parser/vless.go @@ -110,6 +110,7 @@ func ParseVless(proxy string) (model.Proxy, error) { if security == "reality" { result.TLS = true + result.Servername = sni result.RealityOpts = model.RealityOptions{ PublicKey: pbk, ShortID: sid, @@ -133,7 +134,9 @@ func ParseVless(proxy string) (model.Proxy, error) { if _type == "grpc" { result.Network = "grpc" - result.Servername = serviceName + result.GrpcOpts = model.GrpcOptions{ + GrpcServiceName: serviceName, + } } if _type == "http" {