解析器的作用与详解

本部分内容来自QX解析器作者Shawn,搬运已经征得其同意,表示衷心的感谢!

介绍

资源解析器,是对引用的资源文件内容(远程 or 资源片段),进行 解析/转换/修改,变成 Quantumult X 支持的内容,可用在 Quantumult X 的 三个主要模块:

  1. 节点

  2. 分流

  3. 重写

添加方式

要使用资源解析器,需要先添加它,添加的方式:

// 在 QuantumultX 配置文件中 [general] 字段下,添加

resource_parser_url = https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js

//如提示"没有自定义解析器",请长按右下角图标后点击左侧刷新按钮,
//更新资源,后台退出 app,直到出现解析器说明

配置文件里面仅能添加一个资源解析器,请勿重复添加。

使用方法

1、在 ⟦引用链接⟧ 后加 "#" 并添加参数(如有), 不同参数用 "&" 连接

例如: "你的订阅连接#emoji=1&tfo=1&in=香港+台湾"

⚠️本地资源片段引用, 请将参数如 "#in=xxx&out=yyy" 填入资源片段的第 ① 行

⚠️支持中文, "操作" 以下特殊字符时请先替换(URL-Encode)

"+"⇒"%2B", 空格⇒"%20", "@"⇒"%40", "&"⇒"%26", "."⇒".", ","⇒"%2C"

2、打开资源解析器开关

参数说明

主要功能:

  1. 将其它格式的⟦服务器订阅⟧解析成 𝐐𝐮𝐚𝐧𝐭𝐮𝐦𝐮𝐥𝐭 𝐗 格式

    • 支持 𝐕2𝐫𝐚𝐲𝐍/𝗦𝗦(𝗥/𝗗)/𝗛𝗧𝗧𝗣(𝗦)/𝗧𝗿𝗼𝗷𝗮𝗻/𝗤𝘂𝗮𝗻𝘁𝘂𝗺𝘂𝗹𝘁(𝗫)/𝗦𝘂𝗿𝗴𝗲/𝐂𝐥𝐚𝐬𝐡/𝐒𝐡𝐚𝐝𝐨𝐰𝐫𝐨𝐜𝐤𝐞𝐭/𝐋𝐨𝐨𝐧 格式

    • 提供对转换过程中的可选个性化参数(筛选、重命名 等)

  2. r𝗲𝘄𝗿𝗶𝘁𝗲(重写) & 𝗳𝗶𝗹𝘁𝗲𝗿(分流) 的 转换 & 筛选

    • 用于禁用/修改远程引用中某(几)项 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗵𝗼𝘀𝘁𝗻𝗮𝗺𝗲/𝗳𝗶𝗹𝘁𝗲𝗿

    • S𝐮𝐫𝐠𝐞/𝐂𝐥𝐚𝐬𝐡 类型规则 𝗹𝗶𝘀𝘁 与 模块 𝐦𝐨𝐝𝐮𝐥𝐞 的解析使用


  1. ⟦订阅链接⟧ 后加 "#" 使用, 不同参数用 "&" 连接

    • 例如:你的订阅连接#emoji=1&tfo=1&in=香港+台湾"

    • 本地资源片段引用, 请将参数如 "#in=xxx&out=yyy" 填入资源片段的第一行

    • 支持中文, "操作" 以下特殊字符时请先替换(URL-Encode)

    "+"⇒"%2B", 空格⇒"%20", "@"⇒"%40", "&"⇒"%26", "."⇒".", ","⇒"%2C"

  2. ⟦𝐬𝐞𝐫𝐯𝐞𝐫 节点⟧ ➠ 参数说明:

    1. emoji=1(国行设备用2)/-1, 添加/删除节点名内地区旗帜;

    2. udp=1/-1, tfo=1/-1, 分别强制开启(关闭) 𝐮𝐝𝐩-𝐫𝐞𝐥𝐚𝐲/𝐟𝐚𝐬𝐭-𝐨𝐩𝐞𝐧;

    3. uot=1, 开启 udp-over-tcp=true选项(仅限SS(R))

    4. cert=1/-1, 分别开启/关闭 𝐭𝐥𝐬 证书验证(默认关闭);

    5. csha/psha, tls-cert-sha256 以及 tls-pubkey-sha256 参数

    6. in, out, regex, regout 分别为 保留、删除、正则保留、正则删除 节点;

      1. ⚠️ in, out 中多参数(逻辑"或")用 "+", 逻辑"与"用 "." 表示;

      2. ⚠️ in/out 仅对节点名匹配生效

      3. ⚠️ regex/regout 对节点的完整信息进行匹配(类型、端口、加密等);

      4. ⚠️ 示例: "in=香港.0\.2倍率+台湾&out=BGP&regex=iplc" 意思是保留香港0.2倍率和台湾节点,删掉带BGP的节点保留带iplc的节点。

    7. rename 重命名, "旧名@新名", "前缀@", "@后缀", 用 "+" 连接多个参数;

      1. 删除字段: "字段1.字段2☠️", 想删除 "." 时用 "\." 替代

      2. 示范: "rename=香港@𝐇𝐊+[𝐒𝐒]@+@[1𝐗]+流量.0\.2☠️" 将节点中"香港"重命名为"HK",在节点名字前加上"[𝐒𝐒]"后面加上"[1𝐗]",去掉带有"流量0.2"的字段

      3. 默认 emoji 先生效, 如想调换顺序, 请用 rrname 参数

    8. replace 正则替换节点中字段, 可用于重命名/更改加密方式等

      1. replace=regex1@𝘀𝘁𝗿1+regex2@𝘀𝘁𝗿2

    9. 占位符,可用于 rename/replace 等操作

      1. $type0/1/2/3/4/5/6/7 占位符,将节点类型(ss/ssr/vmess 等)作为可操作参数,改变输出节点协议类型字体格式,如:rename=@|$type2;样式分别为 "𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","𝕊𝕊","ˢˢ"

      2. $index0/1/2/3/4/5/6/7/8 占位符,将节点的序号作为可操作参数,如:rename=@「$index1」 ,样式分别为 1\①\❶\⓵\𝟙\¹\₁\𝟏\𝟷

      3. $emoji1/2 占位符, 将emoji(🇭🇰 等)作为可操作参数,rename=@「$emoji1」

      4. tag 占位符,将订阅的 tag 作为可操作参数,可接数字以单独给 tag 添加字母/数字,rename=@「$tag34」, 样式同下边的 ptn/npt

    10. ptn=1-8, 将节点名英文替换成样式 ⇒ 🅰/🄰/𝐀/𝗮/𝔸/𝕒/ᵃ/ᴬ

    11. npt=1-8, 将节点名数字替换成样式 ⇒ ①\❶\⓵\𝟙\¹\₁\𝟏\𝟷

    12. delreg, 利用正则表达式来删除 "节点名" 中的字段(⚠️ 慎用)

    13. ahead=-1, 关闭 Vmess 的 AEAD 参数

    14. host=xxx , 修改 host 参数(如有)

    15. checkurl=xxx , 指定server_check_url 参数

    16. sort=1/-1/x/参数规则, 按节点名 正/逆/随机/参数规则 排序

      1. 参数规则是正则表达式或简单关键词, 用"<" 或 ">" 连接

      2. sort=🇭🇰>🇸🇬>🇯🇵>🇺🇸 , 靠前排序

      3. sort=IEPL<IPLC<BGP , 靠后排序

    17. info=1, 开启通知提示机场流量信息(如有提供);

    18. del=1, 有重名节点时用此参数删除重复节点(默认改名保留)

    19. flow=2022-06-02:1000:54, 订阅到期时间:总流量:已用流量

    20. ⟦进阶参数⟧: 𝘀𝗳𝗶𝗹𝘁𝗲𝗿/𝘀𝗿𝗲𝗻𝗮𝗺𝗲, 传入一段 base64 编码的脚本, 可用于更为复杂的[过滤/重命名] 需求

  3. 𝐫𝐞𝐰𝐫𝐢𝐭𝐞 重写⟧/⟦𝐟𝐢𝐥𝐭𝐞𝐫 分流⟧ ➠ 参数说明:

    1. in, out, 根据关键词 保留/禁用 相关分流、重写规则;

    2. inhn, outhn, “保留/删除”主机名(𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆); 示范: 禁用 "淘宝比价" 及 "weibo" 的 js 同主机名 𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐥𝐢𝐬𝐭#out=tb_price.js+wb_ad.js&outhn=weibo

    3. regex/regout, 正则保留/删除, 请自行折腾正则表达式; 可与 in(hn)/out(hn) 一起使用,in(hn)/out(hn) 会优先执行; 对 𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆 & 𝐫𝐞𝐰𝐫𝐢𝐭𝐞/𝐟𝐢𝐥𝐭𝐞𝐫 同时生效(⚠️ 慎用)

    4. policy 参数, 用于直接指定策略组,或为 𝐒𝐮𝐫𝐠𝐞 类型 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 生成策略组(默认"𝐒𝐡𝐚𝐰𝐧"策略组);

    5. pset=regex1@policy1+regex2@policy2, 为同一分流规则中不同关键词(允许正则表达式)指定不同策略组;

    6. relace 参数, 正则替换 𝐟𝐢𝐥𝐭𝐞𝐫/𝐫𝐞𝐰𝐫𝐢𝐭𝐞 内容, regex@newregex;

      1. 例:将淘宝比价中脚本替换成 lite 版本, tiktok 中 JP 换成 KR

      2. replace=(price)(.*)@$1_lite$2+jp@kr

    7. dst=rewrite/filter,分别为将 𝐦𝐨𝐝𝐮𝐥𝐞&𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 转换成 重写/分流;

      1. 默认将 𝐦𝐨𝐝𝐮𝐥𝐞 转换到重写, 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 转成分流

      2. 把 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 中 url-regex 转成重写时, 必须要加 dst=rewrite;

      3. 把 𝐦𝐨𝐝𝐮𝐥𝐞 中的分流规则转换时, 必须要加 dst=filter

    8. cdn=1, 将 github 脚本的地址转换成免翻墙cdn.jsdelivr.net

    9. fcr=1/2/3, 为分流规则添加 force-cellular/multi-interface/multi-interface-balance 参数,强制移动数据/混合数据/负载均衡;

    10. via=接口, 为分流规则添加 via-interface 参数, 0 表示 via-interface=%TUN% ;

    11. relay=目标策略名, 批量将节点订阅转换为ip/host规则,用于实现代理链;

  4. 其它参数

    1. 通知参数:ntf=0/1, 用于 关闭/打开 资源解析器的提示通知;

      1. 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗳𝗶𝗹𝘁𝗲𝗿 默认“开启”通知提示, 以防规则误删除

      2. 𝘀𝗲𝗿𝘃𝗲𝗿 资源解析则默认”关闭“通知提示

    2. 类型参数: type=domain-set/rule/module/list/nodes

      • 当解析器未能正确识别类型时, 可尝试使用此参数强制指定

    3. 隐藏参数 hide=0, 禁用筛除的分流/重写,默认方式为删除


下面将分 3 个部分,对解析器的具体操作及使用,做出 说明&示范


最后更新于