前言
有的人在开火箭,有的人在放射线,有的人撸猫咪。
作为从火箭、射线过度到猫咪的使用者,最终落定猫咪的最大原因就是它能很好的进行分流。
但非自建用户在使用第三方订阅的时候老是会觉得订阅里的规则好像不太适合自己,改了yaml的话一更新订阅又恢复了,怎样才好呢?
Provider
这里就要引入猫咪官方提供的 Provider 功能,分为 Proxy-Provider 和 Rule-Provider,前者用于提取第三方订阅里的节点信息,也可以用来过滤,后者用于使用第三方提供的规则。后者仅非开源的 Premium Core 支持。
需要注意的是, Provider 和手动的 Proxy / Rule 配置写法可以混用。所以根据自己的情况可以灵活使用。
官方文档:Proxy-Provider / Rule-Provider
写法
proxy-providers:
节点分组名-1:
type: #类型 (如果是订阅链接填写http,如果是固定的本地文件填写file)
url: #订阅链接 (如果上面写了http,这一栏就必须写,反之删掉)
path: #本地路径 (订阅链接的配置保存路径或者固定本地文件的路径,默认使用 ./profiles/filename.yml)
interval: #自动更新时间间隔 (写数字,单位是秒)
health-check: #检查可用性
enable: true
interval: #检查间隔时间 (单位是秒)
url: #用于检测的链接 (默认 http://www.gstatic.com/generate_204)
(过滤示范)节点分组名-2:
type: file
path: #本地路径 (写前面订阅链接的配置保存路径或者固定本地文件的路径)
filter: #用正则来写
health-check: #同上
enable: true
interval: #同上
url: #同上
常用的正则写法
'(日)' ---------- 过滤包含“日”字的节点
'^[^(日)]' ----- 过滤不包含“日”字的节点
'(日|新)' ----- 过滤包含“日”字或者“新”字的节点
rule-providers:
规则分组名:
behavior: #行为类型 (分为domain/ipcidr/classical,无脑classical就行)
type: #同上
url: #同上
path: #同上 (默认使用 ./ruleset/filename.yaml)
interval: #同上
推荐使用:
作者:blackmatrix7
作者:HotKids
搭配使用
proxy-groups:
- name: #呆梨分组名
type: select
proxies:
- #非Provider的节点 (自建节点配置的名字或者DIRECT,REJECT一类的)
use:
- #Provider的节点分组名
rules:
- RULE-SET,Provider的规则分组名,呆梨分组名
- 手动规则写法balabala
更新 Provider
前面已经设置了自动更新时间。如果需要随意更新,可以点击猫咪客户端左边多出的 Providers,然后手动点击来更新每个 Provider
常见问题
部分第三方订阅在用作 Provider 时可能会提示 mapping values are not allowed in this context
很大因素是第三方提供者开启了反爬虫
解决办法:
- (不太可能) 让提供者关掉反爬虫
- 让提供者做一个订阅转换
- (不麻烦提供者) 把这个订阅单独添加一个 Profile,接着 Provider 里的 filename 写成和单独 Profile 一样的,每次更新这个单独的 Profile 就行
2023/12/1更新
过滤节点不用写一条新的proxy-provider,不用单独保存成一个文件
直接在groups里引用provider再过滤即可,这样能省去很多字符。
proxy-groups:
- name: Asia
type: select
use:
- Provier1
- Provier2
- Provier3
filter: '(日本|台湾|香港|韩国)'
在开了Tun的情况下,如果要同时要使用WSA,请将stack写gvisor
请勿写system或者mixed,这俩会频繁导致WSA断网,网络异常。虽然gvisor也不说完全不造成WSA的网络问题,但会安分很多。
Tun网卡同时也会导致微信备份恢复聊天记录时识别成不在一个网络
可以先关掉clash,等备份或者恢复的百分数开始走的时候再打开clash,进度会正常走,不必干等进度走完了再重开clash干别的。
经过两天的实操终于搞好了,感谢多啦神。