前言
由于某些原因,规避了一些敏感内容,请自行脑补。
因为在使用过程中会使用各种不同的机场和网站,由于各个网站质量和规则参差不齐,导致切换不同的配置进行上网体验不佳。不过好在clash有mixin功能,可以进行自定义规则组,实现不同机场同样的上网体验。
本篇的演示为clash Premium版本。
Mixin功能简介
由于众所周知的原因,官网现在已不可查,所以介绍我就尽可能简短,毕竟这篇博客是一个应用文不是原理文。
mixin功能说白了就和很多的软件一样,可以用你的自定义规则覆盖clash原有的配置,包括各个机场的规则组。
基于这个功能,我们只需要写一套规则组,然后用mixin功能覆盖各个机场的配置文件规则组即可。
简单使用方法
首先我们来到clash的首页,点击混合代理右边的齿轮。
由于mixin文件书写的缩进很重要,所以请注意缩进的格式!!
下面是我目前使用的mixin配置:「请不要直接复制过去使用!需要进行进阶配置!!」
我的配置文件使用并参考了了此GitHub项目,再次感谢各位开源作者们。
我不会对该配置文件做详细解释,有需求的请自行Google
mixin: # object
dns:
enable: true
listen: 0.0.0.0:53
ipv6: true
default-nameserver:
- 1.1.1.1
- 8.8.8.8
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- https://1.1.1.1/dns-query
fallback:
- https://max.rethinkdns.com/
- https://sky.rethinkdns.com/
- https://doh.dns.sb/dns-query
- https://dns.cloudflare.com/dns-query
- https://dns.twnic.tw/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
domain:
- '-bing.com'
- '+systemannounce.com'
rule-providers:
reject:
type: file
behavior: domain
path: ./local/rule/reject.yaml
interval: 86400
icloud:
type: file
behavior: domain
path: ./local/rule/icloud.yaml
interval: 86400
apple:
type: file
behavior: domain
path: ./local/rule/apple.yaml
interval: 86400
google:
type: file
behavior: domain
path: ./local/rule/google.yaml
interval: 86400
proxy:
type: file
behavior: domain
path: ./local/rule/proxy.yaml
interval: 86400
direct:
type: file
behavior: domain
path: ./local/rule/direct.yaml
interval: 86400
private:
type: file
behavior: domain
path: ./local/rule/private.yaml
interval: 86400
gfw:
type: file
behavior: domain
path: ./local/rule/gfw.yaml
interval: 86400
tld-not-cn:
type: file
behavior: domain
path: ./local/rule/tld-not-cn.yaml
interval: 86400
telegramcidr:
type: file
behavior: ipcidr
path: ./local/rule/telegramcidr.yaml
interval: 86400
cncidr:
type: file
behavior: ipcidr
path: ./local/rule/cncidr.yaml
interval: 86400
lancidr:
type: file
behavior: ipcidr
path: ./local/rule/lancidr.yaml
interval: 86400
applications:
type: file
behavior: classical
path: ./local/rule/applications.yaml
interval: 86400
rules:
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,reject,REJECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,🚀 节点选择
- RULE-SET,proxy,🚀 节点选择
- RULE-SET,direct,DIRECT
# - RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,🚀 节点选择
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,🚀 节点选择
开盖即用法
将下面的配置文件复制进你的mixin配置文件处,然后用你当前机场的订阅组名称替换掉 REPLACE
即可。
什么叫当前订阅组名称?请看:
mixin: # object
dns:
enable: true
listen: 0.0.0.0:53
ipv6: true
default-nameserver:
- 1.1.1.1
- 8.8.8.8
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- https://1.1.1.1/dns-query
fallback:
- https://max.rethinkdns.com/
- https://sky.rethinkdns.com/
- https://doh.dns.sb/dns-query
- https://dns.cloudflare.com/dns-query
- https://dns.twnic.tw/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
domain:
- '-bing.com'
- '+systemannounce.com'
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
icloud:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
path: ./ruleset/icloud.yaml
interval: 86400
apple:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
path: ./ruleset/apple.yaml
interval: 86400
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
path: ./ruleset/private.yaml
interval: 86400
gfw:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
path: ./ruleset/gfw.yaml
interval: 86400
tld-not-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
path: ./ruleset/tld-not-cn.yaml
interval: 86400
telegramcidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
path: ./ruleset/telegramcidr.yaml
interval: 86400
cncidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
path: ./ruleset/cncidr.yaml
interval: 86400
lancidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
path: ./ruleset/lancidr.yaml
interval: 86400
applications:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt"
path: ./ruleset/applications.yaml
interval: 86400
rules:
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,reject,REJECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,REPLACE
- RULE-SET,proxy,REPLACE
- RULE-SET,direct,DIRECT
# - RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,REPLACE
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,REPLACE
深度自定义法
那么如果这个开源项目的规则组还是不能满足你的需求,有些网站还是被误杀了,访问不了,请看接下来的方法。
这里需要注意你的clash的资料夹路径,这个路径可以在设置中查找到:
在你的资料夹文件夹下面创建一个local文件夹,然后再在local文件夹下面创建一个rule文件夹,下载这个压缩包,解压缩在rule文件夹下即可,完成后路径和文件夹如下所示:
然后将下面的配置文件复制进你的mixin配置文件处,然后用你当前机场的订阅组名称替换掉 REPLACE
即可。
什么叫当前订阅组名称?请看:
mixin: # object
dns:
enable: true
listen: 0.0.0.0:53
ipv6: true
default-nameserver:
- 1.1.1.1
- 8.8.8.8
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- https://1.1.1.1/dns-query
fallback:
- https://max.rethinkdns.com/
- https://sky.rethinkdns.com/
- https://doh.dns.sb/dns-query
- https://dns.cloudflare.com/dns-query
- https://dns.twnic.tw/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
domain:
- '-bing.com'
- '+systemannounce.com'
rule-providers:
reject:
type: file
behavior: domain
path: ./local/rule/reject.yaml
interval: 86400
icloud:
type: file
behavior: domain
path: ./local/rule/icloud.yaml
interval: 86400
apple:
type: file
behavior: domain
path: ./local/rule/apple.yaml
interval: 86400
google:
type: file
behavior: domain
path: ./local/rule/google.yaml
interval: 86400
proxy:
type: file
behavior: domain
path: ./local/rule/proxy.yaml
interval: 86400
direct:
type: file
behavior: domain
path: ./local/rule/direct.yaml
interval: 86400
private:
type: file
behavior: domain
path: ./local/rule/private.yaml
interval: 86400
gfw:
type: file
behavior: domain
path: ./local/rule/gfw.yaml
interval: 86400
tld-not-cn:
type: file
behavior: domain
path: ./local/rule/tld-not-cn.yaml
interval: 86400
telegramcidr:
type: file
behavior: ipcidr
path: ./local/rule/telegramcidr.yaml
interval: 86400
cncidr:
type: file
behavior: ipcidr
path: ./local/rule/cncidr.yaml
interval: 86400
lancidr:
type: file
behavior: ipcidr
path: ./local/rule/lancidr.yaml
interval: 86400
applications:
type: file
behavior: classical
path: ./local/rule/applications.yaml
interval: 86400
rules:
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,reject,REJECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,REPLACE
- RULE-SET,proxy,REPLACE
- RULE-SET,direct,DIRECT
# - RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,REPLACE
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,REPLACE
随后我们将混合配置的开关给打开就会发现我们下面多了一个提供的选项窗口,点击进入发现类似于这样就成功了。
如何自定义
文件是配置好了,如果再次遇到规则配置错网站那该怎么办呢?
首先我们打开clash的日志页,将日志的信息呈现调成「详细」和「信息」。
再次打开我们需要调整的网站,我们会在日志里面看到该请求所使用的规则组,使用的代理还有状态。
比如,我们一个 www.systemannounce.com
的请求错误使用了代理组proxy,而我们想让它直连,那我们首先来到clash刚刚新多出来的提供选项窗口,找到proxy代理组,点击右边的edit file,找到 systemannounce.com
类似的请求,然后删除,再把域名加到direct代理组里即可。
需要说明的是,这前面的 +.
的意思是匹配当前域名下的所有小一级域名。比如 +.example.com
,表示匹配任何以example.com结尾的域名,包括 ww1.example.com
, mail.example.com
等等。但是不匹配 aexample.com
, ww1.aexample.com
等域名。
结语
到目前为止,你已经掌握了自定义规则组的能力,虽然本文还有很多没说到的内容,但是相信凭借你的聪明才知一定可以攻破难关。
比如相信你已经发现了:
这里的意思是,将applications,private,icloud等规则组文件内的域名全部直连,将Google和proxy文件内的域名全部代理,走🚀 节点选择这个规则组下的节点。
好了让我们下次再见。