From b972dfaa56f19ca6c45fe3ae98e13da89fd0a836 Mon Sep 17 00:00:00 2001 From: zhongfly Date: Tue, 5 Oct 2021 02:31:05 +0800 Subject: [PATCH] Fix README-cn.md markdown style (#389) * Fix README-cn.md markdown style * fix typo * Fix another issue [skip ci] --- README-cn.md | 1105 +++++++++++++++++++++++++------------------------- 1 file changed, 560 insertions(+), 545 deletions(-) diff --git a/README-cn.md b/README-cn.md index de393369b..4e66c9a16 100644 --- a/README-cn.md +++ b/README-cn.md @@ -7,131 +7,152 @@ [![GitHub release](https://img.shields.io/github/release/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/releases) [![GitHub license](https://img.shields.io/github/license/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/blob/master/LICENSE) ---- +* * * ## 新增内容 2021/10/1 -- 新增 [配置文件](#配置文件) 中 `[advanced]` 部分的说明 -- 修改调整文档中的多处描述 -- 更换文档中失效的外部链接 +- 新增 [配置文件](#配置文件) 中 `[advanced]` 部分的说明 +- 修改调整文档中的多处描述 +- 更换文档中失效的外部链接
更新历史 2020/12/9 -- 新增 [特别用法](#特别用法) 中 [规则转换](#规则转换) 的说明 -- 修改 [配置文件](#配置文件) 中的 `clash_proxy_group` 为 `proxy_group` ,并增加修改描述与示例 -- 修改 [配置文件](#配置文件) 中 `[ruleset]` 部分的 `surge_ruleset` 为 `ruleset ` ,并增加修改示例 -- 修改 [外部配置](#外部配置) 中 `surge_ruleset` 为 `ruleset ` -- 新增 [外部配置](#外部配置) 中 `add_emoji` 和 `remove_old_emoji` -- 修改 [外部配置](#外部配置) 中 `proxy_group` 和 `ruleset ` 的描述与示例 -- 调整 [简易用法](#简易用法) 与 [进阶用法](#进阶用法) 中的部分描述 -- 更换文档中失效的外部链接 +- 新增 [特别用法](#特别用法) 中 [规则转换](#规则转换) 的说明 +- 修改 [配置文件](#配置文件) 中的 `clash_proxy_group` 为 `proxy_group` ,并增加修改描述与示例 +- 修改 [配置文件](#配置文件) 中 `[ruleset]` 部分的 `surge_ruleset` 为 `ruleset ` ,并增加修改示例 +- 修改 [外部配置](#外部配置) 中 `surge_ruleset` 为 `ruleset ` +- 新增 [外部配置](#外部配置) 中 `add_emoji` 和 `remove_old_emoji` +- 修改 [外部配置](#外部配置) 中 `proxy_group` 和 `ruleset ` 的描述与示例 +- 调整 [简易用法](#简易用法) 与 [进阶用法](#进阶用法) 中的部分描述 +- 更换文档中失效的外部链接 2020/11/20 -- 新增 [支持类型](#支持类型) 中 `mixed` & `auto` 参数 -- 新增 [进阶链接](#进阶链接) 中多个调用参数的说明 -- 新增 [配置文件](#配置文件) 中 `[userinfo]` 部分的描述 -- 新增 [配置文件](#配置文件) 中 `[common]`&`[node_pref]`&`[server]` 中多个参数的描述 -- 修改 [进阶链接](#进阶链接) 中 `url` 参数的说明 +- 新增 [支持类型](#支持类型) 中 `mixed` & `auto` 参数 +- 新增 [进阶链接](#进阶链接) 中多个调用参数的说明 +- 新增 [配置文件](#配置文件) 中 `[userinfo]` 部分的描述 +- 新增 [配置文件](#配置文件) 中 `[common]`&`[node_pref]`&`[server]` 中多个参数的描述 +- 修改 [进阶链接](#进阶链接) 中 `url` 参数的说明 2020/04/29 -- 新增 [配置文件](#配置文件) 指定默认外部配置文件 -- 新增 [配置文件](#配置文件) 中 `[aliases]` 参数的描述 -- 新增 [模板功能](#模板功能) 用于直接渲染的 `/render` 接口的描述 -- 修改 [支持类型](#支持类型) 中类 TG 类型节点的描述 -- 调整 模板介绍 为 [模板功能](#模板功能) +- 新增 [配置文件](#配置文件) 指定默认外部配置文件 +- 新增 [配置文件](#配置文件) 中 `[aliases]` 参数的描述 +- 新增 [模板功能](#模板功能) 用于直接渲染的 `/render` 接口的描述 +- 修改 [支持类型](#支持类型) 中类 TG 类型节点的描述 +- 调整 模板介绍 为 [模板功能](#模板功能) 2020/04/04 -- 新增 [模板介绍](#模板介绍) 用于对所引用的 `base` 基础模板进行高度个性化自定义 -- 新增 [配置文件](#配置文件) 中 `[template]` 参数的描述 -- 新增 [外部配置](#外部配置) 中 `[template]` 参数的描述 -- 新增 [本地生成](#本地生成) 用于在本地生成具体的配置文件 -- 新增 [支持类型](#支持类型) 中 `mellow` & `trojan` 参数 -- 新增 [进阶链接](#进阶链接) 中 `new_name` 参数的描述 -- 新增 [配置文件](#配置文件) 中 `append_sub_userinfo` `clash_use_new_field_name` 参数的描述 -- 调整 [说明目录](#说明目录) 层次 +- 新增 [模板介绍](#模板介绍) 用于对所引用的 `base` 基础模板进行高度个性化自定义 +- 新增 [配置文件](#配置文件) 中 `[template]` 参数的描述 +- 新增 [外部配置](#外部配置) 中 `[template]` 参数的描述 +- 新增 [本地生成](#本地生成) 用于在本地生成具体的配置文件 +- 新增 [支持类型](#支持类型) 中 `mellow` & `trojan` 参数 +- 新增 [进阶链接](#进阶链接) 中 `new_name` 参数的描述 +- 新增 [配置文件](#配置文件) 中 `append_sub_userinfo` `clash_use_new_field_name` 参数的描述 +- 调整 [说明目录](#说明目录) 层次 2020/03/02 -- 新增 [进阶链接](#进阶链接) 中关于 `append_type` `append_info` `expand` `dev_id` `interval` `strict` 等参数的描述 +- 新增 [进阶链接](#进阶链接) 中关于 `append_type` `append_info` `expand` `dev_id` `interval` `strict` 等参数的描述
---- +* * * ## 说明目录 -- [subconverter](#subconverter) - - [新增内容](#新增内容) - - [说明目录](#说明目录) - - [支持类型](#支持类型) - - [简易用法](#简易用法) - - [调用地址](#调用地址) - - [调用说明](#调用说明) - - [简易转换](#简易转换) - - [进阶用法](#进阶用法) - - [阅前提示](#阅前提示) - - [进阶链接](#进阶链接) - - [调用地址 (进阶)](#调用地址-进阶) - - [调用说明 (进阶)](#调用说明-进阶) - - [配置档案](#配置档案) - - [调用地址 (档案)](#调用地址-档案) - - [调用说明 (档案)](#调用说明-档案) - - [配置文件](#配置文件) - - [外部配置](#外部配置) - - [模板功能](#模板功能) - - [模板调用](#模板调用) - - [直接渲染](#直接渲染) - - [特别用法](#特别用法) - - [本地生成](#本地生成) - - [自动上传](#自动上传) - - [规则转换](#规则转换) +- [subconverter](#subconverter) + + - [新增内容](#新增内容) + + - [说明目录](#说明目录) + + - [支持类型](#支持类型) + + - [简易用法](#简易用法) + + - [调用地址](#调用地址) + - [调用说明](#调用说明) + - [简易转换](#简易转换) + + - [进阶用法](#进阶用法) + + - [阅前提示](#阅前提示) + + - [进阶链接](#进阶链接) + + - [调用地址 (进阶)](#调用地址-进阶) + - [调用说明 (进阶)](#调用说明-进阶) + + - [配置档案](#配置档案) + + - [调用地址 (档案)](#调用地址-档案) + - [调用说明 (档案)](#调用说明-档案) + + - [配置文件](#配置文件) + + - [外部配置](#外部配置) + + - [模板功能](#模板功能) + + - [模板调用](#模板调用) + - [直接渲染](#直接渲染) + + - [特别用法](#特别用法) + + - [本地生成](#本地生成) + + - [自动上传](#自动上传) + + - [规则转换](#规则转换) + + - [调用地址 (规则转换)](#调用地址-规则转换) + - [调用说明 (规则转换)](#调用说明-规则转换) ## 支持类型 -| 类型 | 作为源类型 | 作为目标类型 | 参数 | -| ---------------------------- | :--------: | :----------: | ------------------- | -| Clash | ✓ | ✓ | clash | -| ClashR | ✓ | ✓ | clashr | -| Quantumult (完整配置) | ✓ | ✓ | quan | -| Quantumult X (完整配置) | ✓ | ✓ | quanx | -| Loon | ✓ | ✓ | loon | -| Mellow | ✓ | ✓ | mellow | -| SS (SIP002) | ✓ | ✓ | ss | -| SS (软件订阅/SIP008) | ✓ | ✓ | sssub | -| SSD | ✓ | ✓ | ssd | -| SSR | ✓ | ✓ | ssr | -| Surfboard | ✓ | ✓ | surfboard | -| Surge 2 | ✓ | ✓ | surge&ver=2 | -| Surge 3 | ✓ | ✓ | surge&ver=3 | -| Surge 4 | ✓ | ✓ | surge&ver=4 | -| Trojan | ✓ | ✓ | trojan | -| V2Ray | ✓ | ✓ | v2ray | -| 类 TG 代理的 HTTP/Socks 链接 | ✓ | × | 仅支持 `&url=` 调用 | -| Mixed | × | ✓ | mixed | -| Auto | × | ✓ | auto | +| 类型 | 作为源类型 | 作为目标类型 | 参数 | +| ---------------------- | :---: | :----: | -------------- | +| Clash | ✓ | ✓ | clash | +| ClashR | ✓ | ✓ | clashr | +| Quantumult (完整配置) | ✓ | ✓ | quan | +| Quantumult X (完整配置) | ✓ | ✓ | quanx | +| Loon | ✓ | ✓ | loon | +| Mellow | ✓ | ✓ | mellow | +| SS (SIP002) | ✓ | ✓ | ss | +| SS (软件订阅/SIP008) | ✓ | ✓ | sssub | +| SSD | ✓ | ✓ | ssd | +| SSR | ✓ | ✓ | ssr | +| Surfboard | ✓ | ✓ | surfboard | +| Surge 2 | ✓ | ✓ | surge&ver=2 | +| Surge 3 | ✓ | ✓ | surge&ver=3 | +| Surge 4 | ✓ | ✓ | surge&ver=4 | +| Trojan | ✓ | ✓ | trojan | +| V2Ray | ✓ | ✓ | v2ray | +| 类 TG 代理的 HTTP/Socks 链接 | ✓ | × | 仅支持 `&url=` 调用 | +| Mixed | × | ✓ | mixed | +| Auto | × | ✓ | auto | 注意: -1. Shadowrocket 用户可以使用 `ss`、`ssr` 、 `v2ray` 以及 `mixed` 参数 - -2. 类 TG 代理的 HTTP/Socks 链接由于没有命名设定,所以可以在后方插入`&remarks=`进行命名,同时也可以插入 `&group=` 设置组别名称,以上两个参数需要经过 [URLEncode](https://www.urlencoder.org/) 处理,例如 +1. Shadowrocket 用户可以使用 `ss`、`ssr` 、 `v2ray` 以及 `mixed` 参数 - - tg://http?server=1.2.3.4&port=233&user=user&pass=pass&remarks=Example&group=xxx +2. 类 TG 代理的 HTTP/Socks 链接由于没有命名设定,所以可以在后方插入`&remarks=`进行命名,同时也可以插入 `&group=` 设置组别名称,以上两个参数需要经过 [URLEncode](https://www.urlencoder.org/) 处理,例如 - - https://t.me/http?server=1.2.3.4&port=233&user=user&pass=pass&remarks=Example&group=xxx + - tg://http?server=1.2.3.4&port=233&user=user&pass=pass&remarks=Example&group=xxx + - -3. 目标类型为 `mixed` 时,会输出所有支持的节点的单链接组成的普通订阅(Base64编码) +3. 目标类型为 `mixed` 时,会输出所有支持的节点的单链接组成的普通订阅(Base64编码) -4. 目标类型为 `auto` 时,会根据请求的 `User-Agent` 自动判断输出的目标类型,匹配规则可参见 [此处](https://github.com/tindy2013/subconverter/blob/master/src/handler/interfaces.cpp#L121) (该链接有可能因为代码修改而不能准确指向相应的代码) +4. 目标类型为 `auto` 时,会根据请求的 `User-Agent` 自动判断输出的目标类型,匹配规则可参见 [此处](https://github.com/tindy2013/subconverter/blob/master/src/handler/interfaces.cpp#L121) (该链接有可能因为代码修改而不能准确指向相应的代码) ---- +* * * ## 简易用法 @@ -145,11 +166,11 @@ http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&config=%CONFIG% ### 调用说明 -| 调用参数 | 必要性 | 示例 | 解释 | -| -------- | :----: | :------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| target | 必要 | surge&ver=4 | 指想要生成的配置类型,详见上方 [支持类型](#支持类型) 中的参数 | -| url | 必要 | https%3A%2F%2Fwww.xxx.com | 指机场所提供的订阅链接或代理节点的分享链接,需要经过 [URLEncode](https://www.urlencoder.org/) 处理 | -| config | 可选 | https%3A%2F%2Fwww.xxx.com | 指 外部配置 的地址 (包含分组和规则部分),需要经过 [URLEncode](https://www.urlencoder.org/) 处理,详见 [外部配置](#外部配置) ,当此参数不存在时使用 程序的主程序目录中的配置文件 | +| 调用参数 | 必要性 | 示例 | 解释 | +| ------ | :-: | :------------------------ | ------------------------------------------------------------------------------------------------------------------- | +| target | 必要 | surge&ver=4 | 指想要生成的配置类型,详见上方 [支持类型](#支持类型) 中的参数 | +| url | 必要 | https%3A%2F%2Fwww.xxx.com | 指机场所提供的订阅链接或代理节点的分享链接,需要经过 [URLEncode](https://www.urlencoder.org/) 处理 | +| config | 可选 | https%3A%2F%2Fwww.xxx.com | 指 外部配置 的地址 (包含分组和规则部分),需要经过 [URLEncode](https://www.urlencoder.org/) 处理,详见 [外部配置](#外部配置) ,当此参数不存在时使用 程序的主程序目录中的配置文件 | 运行 subconverter 主程序后,按照 [调用说明](#调用说明) 的对应内容替换即可得到一份使用**默认设置**的订阅。 @@ -253,7 +274,7 @@ http://127.0.0.1:25500/surge2clash?link=Surge的订阅链接 此处 `Surge的订阅链接`**不需要进行URLEncode**,且**无需任何额外配置**。 ---- +* * * ## 进阶用法 @@ -265,12 +286,12 @@ http://127.0.0.1:25500/surge2clash?link=Surge的订阅链接 在进行下一步操作前,十分推荐您阅读以下内容: -1. 与 调用地址 相关的:[什么是URL?](https://developer.mozilla.org/zh-CN/docs/Learn/Common_questions/What_is_a_URL) -1. 与 配置文件 相关的:[INI 语法介绍](https://zh.wikipedia.org/wiki/INI%E6%96%87%E4%BB%B6) 、 [YAML 语法介绍](https://zh.wikipedia.org/wiki/YAML#%E8%AA%9E%E6%B3%95) 以及 [TOML 语法介绍](https://toml.io/cn/v1.0.0) -1. 与 `Clash` 配置相关的:[YAML 语法介绍](https://zh.wikipedia.org/wiki/YAML#%E8%AA%9E%E6%B3%95) 以及 [官方文档](https://github.com/Dreamacro/clash/wiki/configuration) -1. 与 `模板` 配置相关的:[INJA 语法介绍](https://github.com/pantor/inja) -1. 会经常涉及到的: [正则表达式入门](https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md) -1. 当遇到问题需要提交 ISSUE 时的:[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) +1. 与 调用地址 相关的:[什么是URL?](https://developer.mozilla.org/zh-CN/docs/Learn/Common_questions/What_is_a_URL) +2. 与 配置文件 相关的:[INI 语法介绍](https://zh.wikipedia.org/wiki/INI%E6%96%87%E4%BB%B6) 、 [YAML 语法介绍](https://zh.wikipedia.org/wiki/YAML#%E8%AA%9E%E6%B3%95) 以及 [TOML 语法介绍](https://toml.io/cn/v1.0.0) +3. 与 `Clash` 配置相关的:[YAML 语法介绍](https://zh.wikipedia.org/wiki/YAML#%E8%AA%9E%E6%B3%95) 以及 [官方文档](https://github.com/Dreamacro/clash/wiki/configuration) +4. 与 `模板` 配置相关的:[INJA 语法介绍](https://github.com/pantor/inja) +5. 会经常涉及到的: [正则表达式入门](https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md) +6. 当遇到问题需要提交 ISSUE 时的:[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) 当您尝试进行进阶操作时,即默认您有相关的操作能力,本程序仅保证在默认配置文件下能够正常运行。 @@ -284,41 +305,41 @@ http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&emoji=%EMOJI%···· #### 调用说明 (进阶) -| 调用参数 | 必要性 | 示例 | 解释 | -| ------------- | :----: | :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| target | 必要 | surge&ver=4 | 指想要生成的配置类型,详见上方 [支持类型](#支持类型) 中的参数 | -| url | 可选 | https%3A%2F%2Fwww.xxx.com | 指机场所提供的订阅链接或代理节点的分享链接,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,**可选的前提是在 `default_url` 中进行指定**。也可以使用 data URI。可使用 `tag:xxx,https%3A%2F%2Fwww.xxx.com` 指定该订阅的所有节点归属于`xxx`分组,用于配置文件中的`!!GROUP=XXX` 匹配 | -| group | 可选 | MySS | 用于设置该订阅的组名,多用于 SSD/SSR | -| upload_path | 可选 | MySS.yaml | 用于将生成的订阅文件上传至 `Gist` 后的名称,需要经过 [URLEncode](https://www.urlencoder.org/) 处理 | -| include | 可选 | 详见下文中 `include_remarks` | 指仅保留匹配到的节点,支持正则匹配,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | -| exclude | 可选 | 详见下文中 `exclude_remarks` | 指排除匹配到的节点,支持正则匹配,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | -| config | 可选 | https%3A%2F%2Fwww.xxx.com | 指 外部配置 的地址 (包含分组和规则部分),需要经过 [URLEncode](https://www.urlencoder.org/) 处理,详见 [外部配置](#外部配置) ,当此参数不存在时使用 主程序目录中的配置文件 | -| dev_id | 可选 | 92DSAFA | 用于设置 QuantumultX 的远程设备 ID, 以在某些版本上开启远程脚本 | -| filename | 可选 | MySS | 指定所生成订阅的文件名,可以在 Clash For Windows 等支持文件名的软件中显示出来 | -| interval | 可选 | 43200 | 用于设置托管配置更新间隔,确定配置将更新多长时间,单位为秒 | -| rename | 可选 | 详见下文中 `rename` | 用于自定义重命名,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | -| filter_script | 可选 | 详见下文中 `filter_script` | 用于自定义筛选节点的js代码,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置。出于安全考虑,链接需包含正确的 `token` 参数,才会应用该设置 | -| strict | 可选 | true / false | 如果设置为 true,则 Surge 将在上述间隔后要求强制更新 | -| upload | 可选 | true / false | 用于将生成的订阅文件上传至 `Gist`,需要填写`gistconf.ini`,默认为 false (即不上传) ,详见 [自动上传](#自动上传) | -| emoji | 可选 | true / false | 用于设置节点名称是否包含 Emoji,默认为 true | -| add_emoji | 可选 | true / false | 用于在节点名称前加入 Emoji,默认为 true | -| remove_emoji | 可选 | true / false | 用于设置是否删除节点名称中原有的 Emoji,默认为 true | -| append_type | 可选 | true / false | 用于在节点名称前插入节点类型,如 [SS],[SSR] 等 | -| tfo | 可选 | true / false | 用于开启该订阅链接的 TCP Fast Open,默认为 false | -| udp | 可选 | true / false | 用于开启该订阅链接的 UDP,默认为 false | -| list | 可选 | true / false | 用于输出 Surge Node List 或者 Clash Proxy Provider 或者 Quantumult (X) 的节点订阅 或者 解码后的 SIP002 | -| sort | 可选 | true / false | 用于对输出的节点或策略组按节点名进行再次排序,默认为 false | -| sort_script | 可选 | 详见下文 `sort_script` | 用于自定义排序的js代码,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置。出于安全考虑,链接需包含正确的 `token` 参数,才会应用该设置 | -| script | 可选 | true / false | 用于生成Clash Script,默认为 false | -| insert | 可选 | true / false | 用于设置是否将配置文件中的 `insert_url` 插入,默认为 true | -| scv | 可选 | true / false | 用于关闭 TLS 节点的证书检查,默认为 false | -| fdn | 可选 | true / false | 用于过滤目标类型不支持的节点,默认为 true | -| expand | 可选 | true / false | 用于在 API 端处理或转换 Surge, QuantumultX, Clash 的规则列表,即是否将规则全文置入订阅中,默认为 true,设置为 false 则不会将规则全文写进订阅 | -| append_info | 可选 | true / false | 用于输出包含流量或到期信息的节点, 默认为 true,设置为 false 则取消输出 | -| prepend | 可选 | true / false | 用于设置插入 `insert_url` 时是否插入到所有节点前面,默认为 true | -| classic | 可选 | true / false | 用于设置是否生成 Clash classical rule-provider | -| tls13 | 可选 | true / false | 用于设置是否为节点增加tls1.3开启参数 | -| new_name | 可选 | true / false | 如果设置为 true,则将启用 Clash 的新组名称 (proxies, proxy-groups, rules) | +| 调用参数 | 必要性 | 示例 | 解释 | +| ------------- | :-: | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| target | 必要 | surge&ver=4 | 指想要生成的配置类型,详见上方 [支持类型](#支持类型) 中的参数 | +| url | 可选 | https%3A%2F%2Fwww.xxx.com | 指机场所提供的订阅链接或代理节点的分享链接,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,**可选的前提是在 `default_url` 中进行指定**。也可以使用 data URI。可使用 `tag:xxx,https%3A%2F%2Fwww.xxx.com` 指定该订阅的所有节点归属于`xxx`分组,用于配置文件中的`!!GROUP=XXX` 匹配 | +| group | 可选 | MySS | 用于设置该订阅的组名,多用于 SSD/SSR | +| upload_path | 可选 | MySS.yaml | 用于将生成的订阅文件上传至 `Gist` 后的名称,需要经过 [URLEncode](https://www.urlencoder.org/) 处理 | +| include | 可选 | 详见下文中 `include_remarks` | 指仅保留匹配到的节点,支持正则匹配,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | +| exclude | 可选 | 详见下文中 `exclude_remarks` | 指排除匹配到的节点,支持正则匹配,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | +| config | 可选 | https%3A%2F%2Fwww.xxx.com | 指 外部配置 的地址 (包含分组和规则部分),需要经过 [URLEncode](https://www.urlencoder.org/) 处理,详见 [外部配置](#外部配置) ,当此参数不存在时使用 主程序目录中的配置文件 | +| dev_id | 可选 | 92DSAFA | 用于设置 QuantumultX 的远程设备 ID, 以在某些版本上开启远程脚本 | +| filename | 可选 | MySS | 指定所生成订阅的文件名,可以在 Clash For Windows 等支持文件名的软件中显示出来 | +| interval | 可选 | 43200 | 用于设置托管配置更新间隔,确定配置将更新多长时间,单位为秒 | +| rename | 可选 | 详见下文中 `rename` | 用于自定义重命名,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置 | +| filter_script | 可选 | 详见下文中 `filter_script` | 用于自定义筛选节点的js代码,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置。出于安全考虑,链接需包含正确的 `token` 参数,才会应用该设置 | +| strict | 可选 | true / false | 如果设置为 true,则 Surge 将在上述间隔后要求强制更新 | +| upload | 可选 | true / false | 用于将生成的订阅文件上传至 `Gist`,需要填写`gistconf.ini`,默认为 false (即不上传) ,详见 [自动上传](#自动上传) | +| emoji | 可选 | true / false | 用于设置节点名称是否包含 Emoji,默认为 true | +| add_emoji | 可选 | true / false | 用于在节点名称前加入 Emoji,默认为 true | +| remove_emoji | 可选 | true / false | 用于设置是否删除节点名称中原有的 Emoji,默认为 true | +| append_type | 可选 | true / false | 用于在节点名称前插入节点类型,如 `[SS]`,`[SSR]`等 | +| tfo | 可选 | true / false | 用于开启该订阅链接的 TCP Fast Open,默认为 false | +| udp | 可选 | true / false | 用于开启该订阅链接的 UDP,默认为 false | +| list | 可选 | true / false | 用于输出 Surge Node List 或者 Clash Proxy Provider 或者 Quantumult (X) 的节点订阅 或者 解码后的 SIP002 | +| sort | 可选 | true / false | 用于对输出的节点或策略组按节点名进行再次排序,默认为 false | +| sort_script | 可选 | 详见下文 `sort_script` | 用于自定义排序的js代码,需要经过 [URLEncode](https://www.urlencoder.org/) 处理,会覆盖配置文件里的设置。出于安全考虑,链接需包含正确的 `token` 参数,才会应用该设置 | +| script | 可选 | true / false | 用于生成Clash Script,默认为 false | +| insert | 可选 | true / false | 用于设置是否将配置文件中的 `insert_url` 插入,默认为 true | +| scv | 可选 | true / false | 用于关闭 TLS 节点的证书检查,默认为 false | +| fdn | 可选 | true / false | 用于过滤目标类型不支持的节点,默认为 true | +| expand | 可选 | true / false | 用于在 API 端处理或转换 Surge, QuantumultX, Clash 的规则列表,即是否将规则全文置入订阅中,默认为 true,设置为 false 则不会将规则全文写进订阅 | +| append_info | 可选 | true / false | 用于输出包含流量或到期信息的节点, 默认为 true,设置为 false 则取消输出 | +| prepend | 可选 | true / false | 用于设置插入 `insert_url` 时是否插入到所有节点前面,默认为 true | +| classic | 可选 | true / false | 用于设置是否生成 Clash classical rule-provider | +| tls13 | 可选 | true / false | 用于设置是否为节点增加tls1.3开启参数 | +| new_name | 可选 | true / false | 如果设置为 true,则将启用 Clash 的新组名称 (proxies, proxy-groups, rules) | 举个例子: @@ -354,10 +375,10 @@ http://127.0.0.1:25500/getprofile?name=%NAME%&token=%TOKEN% #### 调用说明 (档案) -| 调用参数 | 必要性 | 示例 | 解释 | -| -------- | :----: | :------------------------ | :---------------------------------------------------------------------------------------------------------- | -| name | 必要 | profiles/formyairport.ini | 指配置档案的存储位置(可使用基于**pref 配置文件**的相对位置) | -| token | 必要 | passwd | 为了安全考虑**必须设置token**(详见 [配置文件](#配置文件) 中 `[common] 部分` 对 `api_access_token` 的描述) | +| 调用参数 | 必要性 | 示例 | 解释 | +| ----- | :-: | :------------------------ | :----------------------------------------------------------------------------- | +| name | 必要 | profiles/formyairport.ini | 指配置档案的存储位置(可使用基于**pref 配置文件**的相对位置) | +| token | 必要 | passwd | 为了安全考虑**必须设置token**(详见 [配置文件](#配置文件) 中 `[common] 部分` 对 `api_access_token` 的描述) | 应当注意的是,此处文件内的参数**无需进行 URLEncode**,且此处的 `token` 与 `api_mode` 的状态无关。 @@ -368,7 +389,7 @@ http://127.0.0.1:25500/getprofile?name=%NAME%&token=%TOKEN% 以上述 [进阶链接](#进阶链接) 的例子而言,`formyairport.ini` 内的内容应当是: - ```txt +```txt [Profile] url=https://dler.cloud/subscribe/ABCDE?clash=vmess target=surge @@ -377,9 +398,10 @@ tfo=true udp=true emoji=true exclude=(流量|官网) - ``` +``` 在编辑并保存好 `formyairport.ini` 后,即可使用 `http://127.0.0.1:25500/getprofile?name=profiles/formyairport.ini&token=passwd` 进行调用。 + ### 配置文件 @@ -399,50 +421,50 @@ exclude=(流量|官网) > > 其他设置项目可以保持默认或者在知晓作用的前提下进行修改 -1. **api_mode** +1. **api_mode** > API 模式,设置为 true 以防止直接加载本地订阅或直接提供本地文件,若访问这些内容则需要接上 `&token=`。(多用于部署公共订阅转换服务时) - - 当值为 `false` 时, 每次更新配置都会读取 主程序目录中的配置文件 , 为 `true` 时则仅启动时读取。 + - 当值为 `false` 时, 每次更新配置都会读取 主程序目录中的配置文件 , 为 `true` 时则仅启动时读取。 -1. **api_access_token** +2. **api_access_token** > 用于访问相对隐私的接口(如 `/getprofile`) - - 例如: + - 例如: - ```ini - api_access_token=passwd - ``` + ```ini + api_access_token=passwd + ``` -1. **default_url** +3. **default_url** > 无 %URL% 参数时,默认加载的订阅链接, **不需要 URLEncode**。 > > 如果有多个链接,仍然需要使用 "|" 分隔,支持`文件`/`url` - - 例如: + - 例如: - ```ini - default_url=https://dler.cloud/subscribe/ABCDE?clash=vmess - ``` + ```ini + default_url=https://dler.cloud/subscribe/ABCDE?clash=vmess + ``` - - 解释: + - 解释: - ```txt - 此时订阅链接: - http://127.0.0.1:25500/sub?target=clash - 等同于: - http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess - ``` + ```txt + 此时订阅链接: + http://127.0.0.1:25500/sub?target=clash + 等同于: + http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess + ``` -1. **enable_insert** +4. **enable_insert** > 设置是否为输出的订阅添加 `insert_url` 中所有的节点 - - 当值为 `true` 时, 会在输出的订阅中添加 `insert_url` 中所有的节点, 为 `false` 时不添加。 + - 当值为 `true` 时, 会在输出的订阅中添加 `insert_url` 中所有的节点, 为 `false` 时不添加。 -1. **insert_url** +5. **insert_url** > 当 `enable_insert` 的值为 `true` 时,无论是否具有 %URL% 参数时,都会在添加订阅前加入的节点, **不需要 URLEncode**。 > @@ -450,46 +472,46 @@ exclude=(流量|官网) > > 支持 SS/SSR/Vmess 以及类 TG 代理的 HTTP/Socks 链接 - - 例如: + - 例如: - ```ini - insert_url=ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpwYXNzd29yZA@www.example.com:1080#Example - insert_url=ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpwYXNzd29yZA@www.example.com:1080#Example - ``` + ```ini + insert_url=ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpwYXNzd29yZA@www.example.com:1080#Example + insert_url=ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpwYXNzd29yZA@www.example.com:1080#Example + ``` -1. **prepend_insert_url** +6. **prepend_insert_url** > 设置为输出的订阅添加 `insert_url` 中的节点时是否添加至所有节点前方 - - 当值为 `true` 时, 会在输出的订阅中所有节点的前方添加 `insert_url` 中所有的节点, 为 `false` 时在后方添加。 + - 当值为 `true` 时, 会在输出的订阅中所有节点的前方添加 `insert_url` 中所有的节点, 为 `false` 时在后方添加。 -1. **exclude_remarks** +7. **exclude_remarks** - > 排除匹配到的节点,支持正则匹配 + > 排除匹配到的节点,支持正则匹配 - - 例如: + - 例如: - ```ini - exclude_remarks=(到期|剩余流量|时间|官网|产品|平台) - ``` + ```ini + exclude_remarks=(到期|剩余流量|时间|官网|产品|平台) + ``` -1. **include_remarks** +8. **include_remarks** - > 仅保留匹配到的节点,支持正则匹配 + > 仅保留匹配到的节点,支持正则匹配 - - 例如: + - 例如: - ```ini - include_remarks=(?<=美).*(BGP|GIA|IPLC) - ``` + ```ini + include_remarks=(?<=美).*(BGP|GIA|IPLC) + ``` -1. **enable_filter** +9. **enable_filter** > 设置为所有节点使用自定义的js代码进行筛选 - - 当值为 `true` 时, 为所有节点使用自定义的js代码进行筛选, 为 `false` 时不使用。 + - 当值为 `true` 时, 为所有节点使用自定义的js代码进行筛选, 为 `false` 时不使用。 -1. **filter_script** +10. **filter_script** > 为所有节点使用自定义的js函数进行筛选 > @@ -497,106 +519,106 @@ exclude=(流量|官网) > > js函数包括一个参数,即一个节点,函数返回为true时保留该节点,返回为false时丢弃该节点 - - 例如: + - 例如: - ```ini - #仅保留加密方式为chacha20的节点 - filter_script=function filter(node) {\n if(node.EncryptMethod.includes('chacha20'))\n return true;\n return false;\n} - # 或者使用本地文件 - filter_script="path:/path/to/script.js" - ``` + ```ini + #仅保留加密方式为chacha20的节点 + filter_script=function filter(node) {\n if(node.EncryptMethod.includes('chacha20'))\n return true;\n return false;\n} + # 或者使用本地文件 + filter_script="path:/path/to/script.js" + ``` - - node对象包含节点的全部信息,具体结构参见[此处](https://github.com/netchx/netch/blob/268bdb7730999daf9f27b4a81cfed5c36366d1ce/GSF.md) + - node对象包含节点的全部信息,具体结构参见[此处](https://github.com/netchx/netch/blob/268bdb7730999daf9f27b4a81cfed5c36366d1ce/GSF.md) -1. **default_external_config** +11. **default_external_config** > 如果未指定外部配置文件,则将其设置为默认值。支持 `本地文件` 和 `在线URL` - - 例如: + - 例如: - ```ini - default_external_config=config/example_external_config.ini - ``` + ```ini + default_external_config=config/example_external_config.ini + ``` -1. **base_path** +12. **base_path** > 限制外部配置可以使用的本地配置文件基础路径。 - - 例如: + - 例如: - ```ini - base_path=base - #外部配置只可以使用base文件夹下的本地配置文件基础 - ``` + ```ini + base_path=base + #外部配置只可以使用base文件夹下的本地配置文件基础 + ``` -1. **clash_rule_base** +13. **clash_rule_base** > 生成的 Clash 配置文件模板。支持 `本地文件` 和 `在线URL` - - 例如: + - 例如: - ```ini - clash_rule_base=base/GeneralClashConfig.yml # 加载本地文件作为模板 - # 或者 - clash_rule_base=https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/GeneralClashConfig.yml - # 加载ACL4SSR的 Github 中相关文件作为模板 - ``` + ```ini + clash_rule_base=base/GeneralClashConfig.yml # 加载本地文件作为模板 + # 或者 + clash_rule_base=https://github.com/ACL4SSR/ACL4SSR/raw/master/Clash/GeneralClashConfig.yml + # 加载ACL4SSR的 Github 中相关文件作为模板 + ``` -1. **surge_rule_base** +14. **surge_rule_base** > 生成的 Surge 配置文件模板,用法同上 -1. **surfboard_rule_base** +15. **surfboard_rule_base** > 生成的 Surfboard 配置文件模板,用法同上 -1. **mellow_rule_base** +16. **mellow_rule_base** > 生成的 Mellow 配置文件模板,用法同上 -1. **loon_rule_base** +17. **loon_rule_base** > 生成的 Loon 配置文件模板,用法同上 -1. **sssub_rule_base** +18. **sssub_rule_base** > 生成的 sssub 配置文件模板,用法同上 -1. **proxy_config** +19. **proxy_config** > 更新 外部配置文件 时是否使用代理 > > 填写 `NONE` 或者空白禁用,或者填写 `SYSTEM` 使用系统代理 > - > 支持HTTP 或 SOCKS 代理(http:// https:// socks4a:// socks5://) + > 支持HTTP 或 SOCKS 代理(http:// https:// socks4a:// socks5://) > > 支持CORS代理(cors:),详细参见[cors-anywhere](https://github.com/Rob--W/cors-anywhere)、[cloudflare-cors-anywhere](https://github.com/Zibri/cloudflare-cors-anywhere)等 - - 例如: + - 例如: - ```ini - proxy_config=SYSTEM # 使用系统代理 - # 或者 - proxy_config=socks5://127.0.0.1:1080 # 使用本地的 1080 端口进行 SOCKS5 代理 - # 或者 - proxy_config=cors:https://cors-anywhere.herokuapp.com/ # 使用CORS代理 - ``` + ```ini + proxy_config=SYSTEM # 使用系统代理 + # 或者 + proxy_config=socks5://127.0.0.1:1080 # 使用本地的 1080 端口进行 SOCKS5 代理 + # 或者 + proxy_config=cors:https://cors-anywhere.herokuapp.com/ # 使用CORS代理 + ``` -1. **proxy_ruleset** +20. **proxy_ruleset** > 更新 规则 时是否使用代理,用法同上 -1. **proxy_subscription** +21. **proxy_subscription** > 更新 原始订阅 时是否使用代理,用法同上 -1. **append_proxy_type** +22. **append_proxy_type** - > 节点名称是否需要加入属性,设置为 true 时在节点名称前加入 \[SS\] \[SSR\] \[VMess\] 以作区别, + > 节点名称是否需要加入属性,设置为 true 时在节点名称前加入 \[SS] \[SSR] \[VMess] 以作区别, > > 默认为 false - - 例如(设置为 true时): + - 例如(设置为 true时): ```txt [SS] 香港中转 @@ -611,36 +633,36 @@ exclude=(流量|官网) > > 相关设置项目建议保持默认或者在知晓作用的前提下进行修改 -1. **stream_rule** +1. **stream_rule** - >从节点名中提取流量信息及显示的规则 + > 从节点名中提取流量信息及显示的规则 > - >使用方式:从节点提取信息的正则表达式|显示信息的正则表达式 + > 使用方式:从节点提取信息的正则表达式|显示信息的正则表达式 - - 例如: + - 例如: - ```ini - stream_rule=^剩余流量:(.*?)\|总流量:(.*)$|total=$2&left=$1 - stream_rule=^剩余流量:(.*?) (.*)$|total=$1&left=$2 - stream_rule=^Bandwidth: (.*?)/(.*)$|used=$1&total=$2 - stream_rule=^\[.*?\]剩余(.*?)@(?:.*)$|total=$1 - stream_rule=^.*?流量:(.*?) 剩:(?:.*)$|total=$1 - ``` + ```ini + stream_rule=^剩余流量:(.*?)\|总流量:(.*)$|total=$2&left=$1 + stream_rule=^剩余流量:(.*?) (.*)$|total=$1&left=$2 + stream_rule=^Bandwidth: (.*?)/(.*)$|used=$1&total=$2 + stream_rule=^\[.*?\]剩余(.*?)@(?:.*)$|total=$1 + stream_rule=^.*?流量:(.*?) 剩:(?:.*)$|total=$1 + ``` -2. **time_rule** +2. **time_rule** - >从节点名中提取时间信息的规则 + > 从节点名中提取时间信息的规则 > - >使用方式:从节点提取信息的正则表达式|显示信息的正则表达式 + > 使用方式:从节点提取信息的正则表达式|显示信息的正则表达式 - - 例如: + - 例如: - ```ini - time_rule=^过期时间:(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$|$1:$2:$3:$4:$5:$6 - time_rule=^到期时间(:|:)(\d+)-(\d+)-(\d+)$|$1:$2:$3:0:0:0 - time_rule=^Smart Access expire: (\d+)/(\d+)/(\d+)$|$1:$2:$3:0:0:0 - time_rule=^.*?流量:(?:.*?) 剩:(.*)$|left=$1d - ``` + ```ini + time_rule=^过期时间:(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$|$1:$2:$3:$4:$5:$6 + time_rule=^到期时间(:|:)(\d+)-(\d+)-(\d+)$|$1:$2:$3:0:0:0 + time_rule=^Smart Access expire: (\d+)/(\d+)/(\d+)$|$1:$2:$3:0:0:0 + time_rule=^.*?流量:(?:.*?) 剩:(.*)$|left=$1d + ```
@@ -650,35 +672,35 @@ exclude=(流量|官网) > > 相关设置项目建议保持默认或者在知晓作用的前提下进行修改 -1. **udp_flag** +1. **udp_flag** > 为节点打开 UDP 模式,设置为 true 时打开,默认为 false - - 当不清楚机场的设置时**请勿调整此项**。 + - 当不清楚机场的设置时**请勿调整此项**。 -1. **tcp_fast_open_flag** +2. **tcp_fast_open_flag** > 为节点打开 TFO (TCP Fast Open) 模式,设置为 true 时打开,默认为 false - - 当不清楚机场的设置时**请勿调整此项**。 + - 当不清楚机场的设置时**请勿调整此项**。 -1. **skip_cert_verify_flag** +3. **skip_cert_verify_flag** > 关闭 TLS 节点的证书检查,设置为 true 时打开,默认为 false - - **请勿随意将此设置修改为 true** + - **请勿随意将此设置修改为 true** -1. **tls13_flag** +4. **tls13_flag** > 为节点增加tls1.3开启参数,设置为 true 时打开,默认为 false - - **请勿随意将此设置修改为 true** + - **请勿随意将此设置修改为 true** -1. **sort_flag** +5. **sort_flag** > 对生成的订阅中的节点按节点名进行 A-Z 的排序,设置为 true 时打开,默认为 false -1. **sort_script** +6. **sort_script** > 对生成的订阅中的节点按自定义js函数进行排序 > @@ -686,78 +708,78 @@ exclude=(流量|官网) > > js函数包括2个参数,即2个节点,函数返回为true时,节点a排在节点b的前方 > - > 具体细节参照[common] 部分**filter_script**中的介绍 + > 具体细节参照 `[common]` 部分**filter_script**中的介绍 - - 例如: + - 例如: - ```ini - sort_script=function compare(node_a, node_b) {\n return node_a.Remark > node_b.Remark;\n} - # 或者 - sort_script="path:/path/to/script.js" - ``` + ```ini + sort_script=function compare(node_a, node_b) {\n return node_a.Remark > node_b.Remark;\n} + # 或者 + sort_script="path:/path/to/script.js" + ``` -1. **filter_deprecated_nodes** +7. **filter_deprecated_nodes** > 排除当前 **`target=`** 不支持的节点类型,设置为 true 时打开,默认为 false - - 可以考虑设置为 true,从而在**一定程度上避免出现兼容问题** + - 可以考虑设置为 true,从而在**一定程度上避免出现兼容问题** -1. **append_sub_userinfo** +8. **append_sub_userinfo** > 在 header 里的加入流量信息 (Quanx, Surge 等读取后可以显示流量信息通知),设置为 true 时打开,默认为 true -1. **clash_use_new_field_name** - - > 启用 Clash 的新区块名称 (proxies, proxy-groups, rules),设置为 true 时打开,默认为 true +9. **clash_use_new_field_name** + + > 启用 Clash 的新区块名称 (proxies, proxy-groups, rules),设置为 true 时打开,默认为 true - - Clash内核在v0.19.0版本时开始启用新区块名称,当前已广泛使用v0.19.0及以上的版本,除非您确定正在使用极为古老的版本,否则请勿关闭。 + - Clash内核在v0.19.0版本时开始启用新区块名称,当前已广泛使用v0.19.0及以上的版本,除非您确定正在使用极为古老的版本,否则请勿关闭。 -1. **clash_proxies_style** +10. **clash_proxies_style** > 在Clash配置文件中proxies的生成风格 > > 可选的值为`block`、 `flow`、 `compact`,默认为`flow` - - 风格示例: + - 风格示例: - ```yaml - Block: - - name: name1 - key: value - - name: name2 - key: value - Flow: - - {name: name1, key: value} - - {name: name2, key: value} - Compact: - [{name: name1, key: value},{name: name2, key: value}] - ``` + ```yaml + Block: + - name: name1 + key: value + - name: name2 + key: value + Flow: + - {name: name1, key: value} + - {name: name2, key: value} + Compact: + [{name: name1, key: value},{name: name2, key: value}] + ``` -1. **rename_node** +11. **rename_node** > 重命名节点,支持正则匹配 > > 使用方式:原始命名@重命名 > > 可以使用自定义的js函数进行重命名 - > - > 具体细节参照[common] 部分**filter_script**中的介绍 + > + > 具体细节参照 `[common]` 部分**filter_script**中的介绍 - - 例如: + - 例如: - ```ini - rename_node=中国@中 - rename_node=\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?:?)|(x|X))\)?@(倍率:$1) - rename_node=!!script:function rename(node) {\n const geoinfo = JSON.parse(geoip(node.Hostname));\n if(geoinfo.country_code == "CN")\n return "CN " + node.Remark;\n} - rename_node=!!script:path:/path/to/script.js - ``` + ```ini + rename_node=中国@中 + rename_node=\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?:?)|(x|X))\)?@(倍率:$1) + rename_node=!!script:function rename(node) {\n const geoinfo = JSON.parse(geoip(node.Hostname));\n if(geoinfo.country_code == "CN")\n return "CN " + node.Remark;\n} + rename_node=!!script:path:/path/to/script.js + ``` - - 特殊用法: + - 特殊用法: - ```ini - rename_node=!!GROUPID=0!!中国@中 - # 指定此重命名仅在第一个订阅的节点中生效 - ``` + ```ini + rename_node=!!GROUPID=0!!中国@中 + # 指定此重命名仅在第一个订阅的节点中生效 + ```
@@ -765,11 +787,11 @@ exclude=(流量|官网) > 该部分主要涉及到的内容为 **订阅文件的更新地址** -1. **write_managed_config** +1. **write_managed_config** > 是否将 '#!MANAGED-CONFIG' 信息附加到 Surge 或 Surfboard 配置,设置为 true 时打开,默认为 true -1. **managed_config_prefix** +2. **managed_config_prefix** > 具体的 '#!MANAGED-CONFIG' 信息,地址前缀不用添加 "/"。 > @@ -777,36 +799,36 @@ exclude=(流量|官网) > > 局域网用户需要将此处改为本程序运行设备的局域网 IP - - 例如: + - 例如: ```ini managed_config_prefix = http://192.168.1.5:25500 ``` -1. **config_update_interval** +3. **config_update_interval** > 托管配置更新间隔,确定配置将更新多长时间,单位为秒 - - 例如: + - 例如: ```ini config_update_interval = 86400 # 每 86400 秒更新一次(即一天) ``` -1. **config_update_strict** +4. **config_update_strict** - > 如果 config_update_strict 为 true,则 Surge 将在上述间隔后要求强制更新。 + > 如果 config_update_strict 为 true,则 Surge 将在上述间隔后要求强制更新。 -1. **quanx_device_id** +5. **quanx_device_id** - > 用于重写 Quantumult X 远程 JS 中的设备 ID,该 ID 在 Quantumult X 设置中自行查找 + > 用于重写 Quantumult X 远程 JS 中的设备 ID,该 ID 在 Quantumult X 设置中自行查找 - - 例如: + - 例如: - ```ini - quanx_device_id = XXXXXXX - ``` + ```ini + quanx_device_id = XXXXXXX + ```
@@ -818,31 +840,31 @@ exclude=(流量|官网)
[emojis] 部分 -1. **add_emoji** +1. **add_emoji** - > 是否在节点名称前加入下面自定义的 Emoji,设置为 true 时打开,默认为 true + > 是否在节点名称前加入下面自定义的 Emoji,设置为 true 时打开,默认为 true -1. **remove_old_emoji** +2. **remove_old_emoji** - > 是否移除原有订阅中存在的 Emoji,设置为 true 时打开,默认为 true + > 是否移除原有订阅中存在的 Emoji,设置为 true 时打开,默认为 true -1. **rule** +3. **rule** - > 在匹配到的节点前添加自定义 emojis,支持正则匹配 + > 在匹配到的节点前添加自定义 emojis,支持正则匹配 - - 例如: + - 例如: - ```ini - rule=(流量|时间|应急),⌛time - rule=(美|美国|United States),🇺🇸 - ``` + ```ini + rule=(流量|时间|应急),⌛time + rule=(美|美国|United States),🇺🇸 + ``` - - 特殊用法: + - 特殊用法: - ```ini - rule=!!GROUPID=0!!(流量|时间|应急),⌛time - # 指定此 Emoji 规则仅在第一个订阅的节点中生效 - ``` + ```ini + rule=!!GROUPID=0!!(流量|时间|应急),⌛time + # 指定此 Emoji 规则仅在第一个订阅的节点中生效 + ```
@@ -850,19 +872,19 @@ exclude=(流量|官网) > 如果你对原本订阅自带的规则不满意时,可以使用如下配置 -1. **enabled** +1. **enabled** > 启用自定义规则集的**总开关**,设置为 true 时打开,默认为 true -1. **overwrite_original_rules** +2. **overwrite_original_rules** - > 覆盖原有规则,即 [common] 中 xxx_rule_base 中的内容,设置为 true 时打开,默认为 false + > 覆盖原有规则,即 `[common]` 中 xxx_rule_base 中的内容,设置为 true 时打开,默认为 false -1. **update_ruleset_on_request** +3. **update_ruleset_on_request** > 根据请求执行规则集更新,设置为 true 时打开,默认为 false -1. **ruleset** +4. **ruleset** > 从本地或 url 获取规则片段 > @@ -872,10 +894,10 @@ exclude=(流量|官网) > > type留空时默认为surge类型的规则 > - > [] 前缀后的文字将被当作规则,而不是链接或路径,主要包含 `[]GEOIP` 和 `[]MATCH`(等同于 `[]FINAL`)。 + > \[] 前缀后的文字将被当作规则,而不是链接或路径,主要包含 `[]GEOIP` 和 `[]MATCH`(等同于 `[]FINAL`)。 + + - 例如: - - 例如: - ```ini ruleset=🍎 苹果服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Apple.list # 表示引用 https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Apple.list 规则 @@ -899,10 +921,9 @@ exclude=(流量|官网)
[proxy_group] 部分 - > 为 Clash 、Mellow 、Surge 以及 Surfboard 等程序创建策略组, 可用正则来筛选节点 > -> [] 前缀后的文字将被当作引用策略组 +> \[] 前缀后的文字将被当作引用策略组 ```ini custom_proxy_group=Group_Name`url-test|fallback|load-balance`Rule_1`Rule_2`...`test_url`interval[,timeout][,tolerance] @@ -920,52 +941,51 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) # 表示创建一个叫 节点选择 的 select 策略组,并向其中**依次**添加名字不包含'美国'或'日本'的节点 ``` -- 还可使用一些特殊筛选条件: +- 还可使用一些特殊筛选条件: + + `` `!!GROUPID=%n%`` 待转换链接中的第 n+1 条链接中包含的节点 - `` `!!GROUPID=%n%`` 待转换链接中的第 n+1 条链接中包含的节点 + `` `!!INSERT=%n%`` 配置文件中 `insert_url` 的第 n+1 条链接所包含的节点 - `` `!!INSERT=%n%`` 配置文件中 `insert_url` 的第 n+1 条链接所包含的节点 + `` `!!PROVIDER=%proxy-provider-name%`` 指定名称的proxy-provider - `` `!!PROVIDER=%proxy-provider-name%`` 指定名称的proxy-provider + GROUPID 和 INSERT 匹配支持range,如 1,!2,3-4,!5-6,7+,8- - GROUPID 和 INSERT 匹配支持range,如 1,!2,3-4,!5-6,7+,8- + ```ini + custom_proxy_group=g1`select`!!GROUPID=0`!!INSERT=0 + # 表示创建一个叫 g1 的 select 策略组,并向其中依次添加订阅链接中第一条订阅链接中的所有节点和配置文件中 insert_url 中的**第一个**节点 + custom_proxy_group=g2`select`!!GROUPID=1 + # 表示创建一个叫 g2 的 select 策略组,并向其中依次添加订阅链接中第二条订阅链接中的所有节点 + custom_proxy_group=g3`select`!!GROUPID=!2 + # 表示创建一个叫 g3 的 select 策略组,并向其中依次添加订阅链接中除了第三条订阅链接之外的所有节点 + custom_proxy_group=g4`select`!!GROUPID=3-5 + # 表示创建一个叫 g4 的 select 策略组,并向其中依次添加订阅链接中第四条到第六条订阅链接中的所有节点 + custom_proxy_group=v2ray`select`!!GROUP=V2RayProvider + # 表示创建一个叫 v2ray 的 select 策略组,并向其中依次添加订阅链接中组名(tag)为 V2RayProvider 的所有节点 + ``` - ```ini - custom_proxy_group=g1`select`!!GROUPID=0`!!INSERT=0 - # 表示创建一个叫 g1 的 select 策略组,并向其中依次添加订阅链接中第一条订阅链接中的所有节点和配置文件中 insert_url 中的**第一个**节点 - custom_proxy_group=g2`select`!!GROUPID=1 - # 表示创建一个叫 g2 的 select 策略组,并向其中依次添加订阅链接中第二条订阅链接中的所有节点 - custom_proxy_group=g3`select`!!GROUPID=!2 - # 表示创建一个叫 g3 的 select 策略组,并向其中依次添加订阅链接中除了第三条订阅链接之外的所有节点 - custom_proxy_group=g4`select`!!GROUPID=3-5 - # 表示创建一个叫 g4 的 select 策略组,并向其中依次添加订阅链接中第四条到第六条订阅链接中的所有节点 - custom_proxy_group=v2ray`select`!!GROUP=V2RayProvider - # 表示创建一个叫 v2ray 的 select 策略组,并向其中依次添加订阅链接中组名(tag)为 V2RayProvider 的所有节点 - ``` - 注意:此处的订阅链接指 `default_url` 和 `&url=` 中的订阅以及单链接节点(区别于配置文件中 insert_url) - -- 现在也可以使用2个条件组合来进行筛选,只有同时满足这2个筛选条件的节点才会被加入组内 + 注意:此处的订阅链接指 `default_url` 和 `&url=` 中的订阅以及单链接节点(区别于配置文件中 insert_url) - ```ini - custom_proxy_group=g1hk`select`!!GROUPID=0!!(HGC|HKBN|PCCW|HKT|hk|港) - # 属于订阅链接中的第一条订阅**且**名字含 HGC、HKBN、PCCW、HKT、hk、港 的节点 - ``` +- 现在也可以使用2个条件组合来进行筛选,只有同时满足这2个筛选条件的节点才会被加入组内 -- 也可以使用js脚本筛选加入策略组的节点。A "filter" function with one argument which is an array of all available nodes should be defined in the script. + ```ini + custom_proxy_group=g1hk`select`!!GROUPID=0!!(HGC|HKBN|PCCW|HKT|hk|港) + # 属于订阅链接中的第一条订阅**且**名字含 HGC、HKBN、PCCW、HKT、hk、港 的节点 + ``` - ```ini - custom_proxy_group=script`select`script:/path/to/script.js - # 表示创建一个叫 script 的 select 策略组,其中的节点使用本地的/path/to/script.js脚本中的函数进行筛选 - ``` +- 也可以使用js脚本筛选加入策略组的节点。A "filter" function with one argument which is an array of all available nodes should be defined in the script. -- 也可以使用本地文件 + ```ini + custom_proxy_group=script`select`script:/path/to/script.js + # 表示创建一个叫 script 的 select 策略组,其中的节点使用本地的/path/to/script.js脚本中的函数进行筛选 + ``` - ```ini - custom_proxy_group=!!import:snippets/groups.txt - # 使用本地的snippets/groups.txt文件 - ``` +- 也可以使用本地文件 - + ```ini + custom_proxy_group=!!import:snippets/groups.txt + # 使用本地的snippets/groups.txt文件 + ```
@@ -978,19 +998,19 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) 使用方法如下(但不仅限于此): -- 精简接口步骤(此类别名默认在 pref 中启用) +- 精简接口步骤(此类别名默认在 pref 中启用) - ```ini - 当设置 /clash=/sub?target=clash 时: - 访问 127.0.0.1/clash?url=xxx 即跳转至 127.0.0.1/sub?target=clash&url=xxx - ``` + ```ini + 当设置 /clash=/sub?target=clash 时: + 访问 127.0.0.1/clash?url=xxx 即跳转至 127.0.0.1/sub?target=clash&url=xxx + ``` -- 精简外部配置路径 +- 精简外部配置路径 - ```ini - 当设置 /mysub=/getprofile?name=aaa&token=bbb 时: - 访问 127.0.0.1/mysub 即跳转至 127.0.0.1/getprofile?name=aaa&token=bbb - ``` + ```ini + 当设置 /mysub=/getprofile?name=aaa&token=bbb 时: + 访问 127.0.0.1/mysub 即跳转至 127.0.0.1/getprofile?name=aaa&token=bbb + ```
@@ -999,18 +1019,17 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) > 该部分主要涉及到的内容为 **定时执行js文件中的代码** +1. **task** -1. **task** - - >在服务器运行期间定期执行的任务。 + > 在服务器运行期间定期执行的任务。 > - >使用方式 任务名称\`Cron表达式\`JS文件路径\`超时时间(s) + > 使用方式 任务名称\`Cron表达式\`JS文件路径\`超时时间(s) - - 例如: + - 例如: - ```ini - task=tick`0/10 * * * * ?`tick.js`3 - ``` + ```ini + task=tick`0/10 * * * * ?`tick.js`3 + ```
@@ -1019,15 +1038,15 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) > 此部分通常**保持默认**即可 -1. **listen** +1. **listen** > 绑定到 Web 服务器的地址,将地址设为 0.0.0.0,则局域网内设备均可使用 -1. **port** +2. **port** > 绑定到 Web 服务器地址的端口,默认为 25500 -1. **serve_file_root** +3. **serve_file_root** > Web服务器的根目录,可以为包含静态页面的文件夹,留空则为关闭 @@ -1038,13 +1057,13 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) > 此部分用于指定 模板 中的部分值 -1. **template_path** +1. **template_path** - > 对**子模板**文件的所在位置(即模板文件中使用 `{% include "xxx.tpl" %}` 引入的模板)做出路径限制 + > 对**子模板**文件的所在位置(即模板文件中使用 `{% include "xxx.tpl" %}` 引入的模板)做出路径限制 -1. **clash.dns 等** +2. **clash.dns 等** - > 名称可以为任意非本程序默认的参数,用来对模板中的值进行判断或在模板中使用其定义的参数 + > 名称可以为任意非本程序默认的参数,用来对模板中的值进行判断或在模板中使用其定义的参数 @@ -1054,63 +1073,61 @@ custom_proxy_group=节点选择`select`(^(?!.*(美国|日本)).*) > 此部分通常**保持默认**即可 -1. **log_level** - - > 日志级别,可选值有:fatal error warn info debug verbose +1. **log_level** -1. **print_debug_info** + > 日志级别,可选值有:fatal error warn info debug verbose - > 是否打印debug信息 +2. **print_debug_info** -1. **max_pending_connections** + > 是否打印debug信息 - > 最大挂起连接数 +3. **max_pending_connections** -1. **max_concurrent_threads** + > 最大挂起连接数 - > 最大线程数 +4. **max_concurrent_threads** -1. **max_allowed_rulesets** + > 最大线程数 - > 规则集数量上限,0表示无限 +5. **max_allowed_rulesets** -1. **max_allowed_rules** + > 规则集数量上限,0表示无限 - > 规则数量上限,0表示无限 +6. **max_allowed_rules** -1. **max_allowed_download_size** + > 规则数量上限,0表示无限 - > subconverter下载外部文件时的文件大小上限,超过时直接忽略该文件,单位bytes,0表示无限 +7. **max_allowed_download_size** -1. **enable_cache** + > subconverter下载外部文件时的文件大小上限,超过时直接忽略该文件,单位bytes,0表示无限 - > 是否启用缓存 +8. **enable_cache** -1. **cache_subscription** + > 是否启用缓存 - > 当启用缓存时,订阅文件的缓存时间 +9. **cache_subscription** -1. **cache_config** + > 当启用缓存时,订阅文件的缓存时间 - > 当启用缓存时,外部配置文件的缓存时间 +10. **cache_config** -1. **cache_ruleset** + > 当启用缓存时,外部配置文件的缓存时间 - > 当启用缓存时,规则集的缓存时间 +11. **cache_ruleset** -1. **script_clean_context** + > 当启用缓存时,规则集的缓存时间 - > script脚本是否使用干净上下文 +12. **script_clean_context** -1. **async_fetch_ruleset** + > script脚本是否使用干净上下文 - > 并行下载规则集 +13. **async_fetch_ruleset** -1. **skip_failed_links** - - > 跳过失败的链接,继续转换而不是直接返回错误 + > 并行下载规则集 +14. **skip_failed_links** + > 跳过失败的链接,继续转换而不是直接返回错误 @@ -1225,114 +1242,114 @@ clash_rule_base=base/forcerule.yml > > 更多的使用方式可以参照 [INJA 语法](https://github.com/pantor/inja) -1. 取值 - - ```inja - {{ global.clash.http_port }} - # 获取 配置文件 中 clash.http_port 的值 - ``` - -1. 单判断 - - ```inja - {% if request.clash.dns == "1" %} - ··· - {% endif %} - # 如果 URL 中的 clash.dns=1 时,判断成立 - ``` - -1. 或判断 - - ```inja - {% if request.target == "clash" or request.target == "clashr" %} - ··· - {% endif %} - # 如果 URL 中的 target 为 clash 或者 clashr 时,判断成立 - ``` - -1. 如果...否则... - - ```inja - {% if local.clash.new_field_name == "true" %} - proxies: ~ - proxy-groups: ~ - rules: ~ - {% else %} - Proxy: ~ - Proxy Group: ~ - Rule: ~ - {% endif %} - # 如果 外部配置中 clash.new_field_name=true 时,启用 新的 Clash 块名称,否则使用旧的名称 - ``` - -1. 如果存在...则...(可避免请求中无对应参数时发生的报错) - - ```inja - {% if exists("request.clash.dns") %} - dns: - enabled: true - listen: 1053 - {% endif %} - # 如果 URL 中存在对 clash.dns 参数的任意指定时,判断成立 (可以和 如果···否则··· 等判断一起使用) - ``` - -1. 单判断,且如果参数不存在时使用默认值进行判断(可避免请求中无对应参数时发生的报错) - - ```inja - dns: - enabled: true - listen: 1053 - nameserver: - {% if default(request.doh, "false") == "true" %} - - https://doh.pub/dns-query - - https://223.5.5.5/dns-query - {% else %} - - 119.29.29.29 - - 223.5.5.5 - {% endif %} - # 如果 URL 中 doh 参数为 true 时,判断成立。 - # 如果 URL 中不存在 doh 参数时,将 clash.doh 参数设为默认值 false 再进行判断。 - ``` +1. 取值 + + ```inja + {{ global.clash.http_port }} + # 获取 配置文件 中 clash.http_port 的值 + ``` + +2. 单判断 + + ```inja + {% if request.clash.dns == "1" %} + ··· + {% endif %} + # 如果 URL 中的 clash.dns=1 时,判断成立 + ``` + +3. 或判断 + + ```inja + {% if request.target == "clash" or request.target == "clashr" %} + ··· + {% endif %} + # 如果 URL 中的 target 为 clash 或者 clashr 时,判断成立 + ``` + +4. 如果...否则... + + ```inja + {% if local.clash.new_field_name == "true" %} + proxies: ~ + proxy-groups: ~ + rules: ~ + {% else %} + Proxy: ~ + Proxy Group: ~ + Rule: ~ + {% endif %} + # 如果 外部配置中 clash.new_field_name=true 时,启用 新的 Clash 块名称,否则使用旧的名称 + ``` + +5. 如果存在...则...(可避免请求中无对应参数时发生的报错) + + ```inja + {% if exists("request.clash.dns") %} + dns: + enabled: true + listen: 1053 + {% endif %} + # 如果 URL 中存在对 clash.dns 参数的任意指定时,判断成立 (可以和 如果···否则··· 等判断一起使用) + ``` + +6. 单判断,且如果参数不存在时使用默认值进行判断(可避免请求中无对应参数时发生的报错) + + ```inja + dns: + enabled: true + listen: 1053 + nameserver: + {% if default(request.doh, "false") == "true" %} + - https://doh.pub/dns-query + - https://223.5.5.5/dns-query + {% else %} + - 119.29.29.29 + - 223.5.5.5 + {% endif %} + # 如果 URL 中 doh 参数为 true 时,判断成立。 + # 如果 URL 中不存在 doh 参数时,将 clash.doh 参数设为默认值 false 再进行判断。 + ``` 模板内的引用有以下几类: -1. 从 配置文件 中获取,判断前缀为 `global` +1. 从 配置文件 中获取,判断前缀为 `global` - ```inja - socks-port: {{ global.clash.socks_port }} - # 当配置文件中设定了 `clash.socks_port` 值时,将被引用 - ``` + ```inja + socks-port: {{ global.clash.socks_port }} + # 当配置文件中设定了 `clash.socks_port` 值时,将被引用 + ``` -1. 从 外部配置 中获取,判断前缀为 `local` +2. 从 外部配置 中获取,判断前缀为 `local` - ```inja - {% if local.clash.new_field_name =="true" %} - ··· - {% endif %} - # 当外部配置中设定了 `clash.new_field_name=true` 时,该判断生效,其包含的···内容被引用 - ``` + ```inja + {% if local.clash.new_field_name =="true" %} + ··· + {% endif %} + # 当外部配置中设定了 `clash.new_field_name=true` 时,该判断生效,其包含的···内容被引用 + ``` -1. 从 URL 链接中获取,判断前缀为 `request`,例如 `http://127.0.0.1:25500/sub?target=clash&url=www.xxx.com&clash.dns=1` +3. 从 URL 链接中获取,判断前缀为 `request`,例如 `http://127.0.0.1:25500/sub?target=clash&url=www.xxx.com&clash.dns=1` - - 从 URL 中所获得**包含**在 [进阶链接](#进阶链接) 内的参数进行判断 + - 从 URL 中所获得**包含**在 [进阶链接](#进阶链接) 内的参数进行判断 - ```inja - {% if request.target == "clash" %} - ··· - {% endif %} - # 当 target=clash 时,该判断生效,其包含的··· 内容被引用 - ``` + ```inja + {% if request.target == "clash" %} + ··· + {% endif %} + # 当 target=clash 时,该判断生效,其包含的··· 内容被引用 + ``` - - 从 URL 中所获得**不包含**在 [进阶链接](#进阶链接) 内的参数进行判断 (从上述链接可以看出 clash.dns 属于额外参数) + - 从 URL 中所获得**不包含**在 [进阶链接](#进阶链接) 内的参数进行判断 (从上述链接可以看出 clash.dns 属于额外参数) - ```inja - {% if request.clash.dns == "1" %} - dns: - enabled: true - listen: 1053 - {% endif %} - # 当 clash.dns=1 时,该判断生效,其包含的 dns 内容被引用 - ``` + ```inja + {% if request.clash.dns == "1" %} + dns: + enabled: true + listen: 1053 + {% endif %} + # 当 clash.dns=1 时,该判断生效,其包含的 dns 内容被引用 + ``` #### 直接渲染 @@ -1344,14 +1361,13 @@ http://127.0.0.1:25500/render?path=xxx&额外的调试或控制参数 此处 `path` 需要在 [配置文件](#配置文件) 中 `template_path` 所限定的路径内 - ## 特别用法 ### 本地生成 > 启动程序后,在本地生成对应的配置文件文本 -在程序目录内的 [generate.ini](./base/generate.ini) 中设定文件块([xxx]),生成的文件名(path=xxx)以及其所需要包含的参数,例如: +在程序目录内的 [generate.ini](https://github.com/tindy2013/subconverter/blob/master/base/generate.ini) 中设定文件块(`[xxx]`),生成的文件名(path=xxx)以及其所需要包含的参数,例如: ```ini [test] @@ -1367,13 +1383,13 @@ profile=profiles/example_profile.ini 使用 `subconverter -g` 启动本程序时,即可在程序根目录内生成名为 `output.conf` `output.yml` 的配置文件文本。 -使用 `subconverter -g --artifact "test"` 启动本程序时,即可在程序根目录内仅生成上述示例中 [test] 文件块所指代的 `output.conf` 的配置文件文本。 +使用 `subconverter -g --artifact "test"` 启动本程序时,即可在程序根目录内仅生成上述示例中 `[test]` 文件块所指代的 `output.conf` 的配置文件文本。 ### 自动上传 > 自动上传 gist ,可以用于 Clash For Android / Surge 等进行远程订阅 -在程序目录内的 [gistconf.ini](./base/gistconf.ini) 中添加 `Personal Access Token`([在此创建](https://github.com/settings/tokens/new?scopes=gist&description=Subconverter))例如: +在程序目录内的 [gistconf.ini](https://github.com/tindy2013/subconverter/blob/master/base/gistconf.ini) 中添加 `Personal Access Token`([在此创建](https://github.com/settings/tokens/new?scopes=gist&description=Subconverter))例如: ```ini [common] @@ -1412,19 +1428,18 @@ Gist owner: xxxx > 将规则转换为指定的规则类型,用于将不同类型的规则互相转换 -### 调用地址 +#### 调用地址 (规则转换) -````txt +```txt http://127.0.0.1:25500/getruleset?type=%TYPE%&url=%URL%&group=%GROUP% -```` - -#### 调用说明 +``` -| 调用参数 | 必要性 | 示例 | 解释 | -| -------- | :----------: | :------ | ------------------------------------------------------------ | -| type | 必要 | 6 | 指想要生成的规则类型,用数字表示:1为Surge,2 为 Quantumult X,3 为 Clash domain rule-provider,4 为 Clash ipcidr rule-provider,5 为 Surge DOMAIN-SET,6 为 Clash classical ruleset | -| url | 必要 | | 指待转换的规则链接,需要经过 [Base64](https://base64.us/) 处理 | -| group | type=2时必选 | mygroup | 规则对应的策略组名,生成Quantumult X类型(type=2)时必须提供 | +#### 调用说明 (规则转换) -运行 subconverter 主程序后,按照 [调用说明](#调用说明-1) 的对应内容替换即可得到指定类型的规则。 +| 调用参数 | 必要性 | 示例 | 解释 | +| ----- | :-------: | :------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type | 必要 | 6 | 指想要生成的规则类型,用数字表示:1为Surge,2 为 Quantumult X,3 为 Clash domain rule-provider,4 为 Clash ipcidr rule-provider,5 为 Surge DOMAIN-SET,6 为 Clash classical ruleset | +| url | 必要 | | 指待转换的规则链接,需要经过 [Base64](https://base64.us/) 处理 | +| group | type=2时必选 | mygroup | 规则对应的策略组名,生成Quantumult X类型(type=2)时必须提供 | +运行 subconverter 主程序后, 按照 [调用地址 (规则转换)](#调用地址-规则转换) 的对应内容替换即可得到指定类型的规则。