#
订阅预处理
#
0.功能说明
因为订阅中预配置的分流规则可能无法满足个性化需求,如果需要对规则进行定制的同时避免被覆盖,就需要用到 Clash For Windows 的订阅预处理功能。
#
1.功能入口
订阅预处理的入口位于:Profiles > 右键单击订阅配置 > Parsers > Edit Parsers
,点击后会弹出代码编辑区域。 Yaml 格式代码对于缩进和空格有着严格的要求,后续务必留意。
#
2.代码格式解析
下面是一个订阅预处理的配置模板,展示它的目的是为了更好的解释和说明代码结构,不要将它直接复制到 Clash 中。
parsers: # array
- url: https://sub.rssp.link/sub?target=clash&url=https://ss.reiz.link/sub/114514/clash&insert=false
yaml:
prepend-rules:
- DOMAIN-SUFFIX,adobe.io,REJECT
- DOMAIN,prod.adobegenuine.com,REJECT
- DOMAIN-SUFFIX,adobestats.io,REJECT
- DOMAIN,hz1.reizhi.com,DIRECT
append-proxy-groups:
- name: relay-from
type: select
proxies:
- DIRECT
- 故障转移1.1-1.4
commands:
- proxies.(🇭🇰 [4.0x]广港专线-6).udp=true
该段配置的顶层为 parsers
,它包含一个 url
和一个 yaml
。其中 yaml
又包含 prepend-rules
, append-proxy-groups
, commands
三个对象。而这三个对象的值由数组组成。
如果对于数据结构感到难以理解,可以直接复制高亮部分(1-3行)到 Clash 中,并将 url
修改为你自己的订阅地址。
该段代码中, url
部分用于指定后续规则所应用的订阅地址。所以如果你主动在网站更换了订阅地址,此处的 url
也需要留意修改。
yaml
区块中的部分是实际的自定义规则区块,我们需要用到的订阅预处理操作有以下几种:
其他如 append-proxies
,mix-proxy-providers
等可以自行了解如何使用。
#
3.分流规则格式
在 Clash 中分流规则每行一条,格式为:匹配方式,匹配值,操作
。
匹配方式主要有以下几种,必须大写:
匹配值上面其实已经介绍到了,即你需要符合什么样条件时,触发这条规则,如 example.com 。
操作是当这条规则匹配成功时,如何处理对应流量。主要有以下几种:
下面我们来看几个例子,以便于理解:
DOMAIN-SUFFIX,dd.com,DIRECT
> 所有 dd.com 为后缀的域名都直连,如 dd.com , 1.dd.com 。
DOMAIN,ads.cc.com,REJECT
> 阻止访问 ads.cc.com 这个域名,但不影响 1.cc.com 。(通常用于拦截广告)
DOMAIN-KEYWORD,fff,🔰 节点选择
> 所有包含 fff 的域名,都走节点选择代理组,如 afff.com 1.fffx.net 。
最后,Clash 中的分流规则自上而下进行匹配,当符合时就会执行对应的操作,不再向下搜索。如:指定一条规则设置 1.com
直连,再后面指定第二条规则设置 1.com
阻止,最终会走直连。
#
4.添加自定义规则
在 yaml
区块下空两格并增加 prepend-rules:
区块,就可以开始添加自定义规则了。同样的,每一行规则需要再空两格,并以 -
开头。(参考第2节中的示例)
#
5.代理组说明
在 Clash 中,每一个代理组包含若干个代理,且必须手动或自动选择其中一个。在网络流量命中不是 DIRECT
和 REJECT
的规则时,对应的流量会被发往这条规则中所设定的代理。
同样我们举例以便于理解,假设代理组 🔰 节点选择
包含以下几条规则:
DOMAIN-SUFFIX,adobe.io,REJECT
DOMAIN,prod.adobegenuine.com,REJECT
DOMAIN-SUFFIX,adobestats.io,REJECT
DOMAIN,reizhi.com,🔰 节点选择
DOMAIN,1.reizhi.com,🐟 漏网之鱼
同时代理选择如下:
🔰 节点选择 > 服务器A
🐟 漏网之鱼 > 服务器B
那么,访问 1.adobe.io
的请求会被禁止(表现为打不开),访问 reizhi.com
的请求会走服务器A进行代理,访问 1.reizhi.com
的请求会走服务器B进行代理。
#
6.追加代理组
与分流规则不同,代理组的排序先后不会有任何区别。所以这里可以根据个人喜好选择 append-proxy-groups
在最前插入代理组或是 prepend-proxy-groups
在最后追加代理组。
这里我们以追加到末尾为例,展示对应的代码段:
append-proxy-groups:
- name: relay-from
type: select
proxies:
- DIRECT
- 故障转移1.1-1.4
其中 Name
为代理组的名称,可以自由设置,但与分流规则中需要对应。例如设置了分流规则 DOMAIN,a.com,测试分组
,那么就需要存在对应名为“测试分组”的代理组。
type
在这里暂时只介绍 select
,即手动选择。其他可设置的值还有:relay
,fallback
等。
proxies
为本代理组可以选择的服务器列表,除了通用的 DIRECT
和 REJECT
外,还可以加入订阅中已有的代理组,如 🔰 节点选择
。
#
7.修改指令
commands
用于对已有的订阅配置进行修改,这里不做详细介绍,以配置模板为例做简要的解释说明。
proxies.(🇭🇰 [4.0x]广港专线-6).udp=true
本条指令的作用是在代理( proxies
)中,将名为( 🇭🇰 [4.0x]广港专线-6
)的代理的 udp
属性,改为支持( true
)。
需注意修改指令中不能包含空格,如代理组或代理的名称中包含空格时,需用括号进行包裹。