使用🐱的mixin功能进行自定义规则

  1. 1. 前言
  2. 2. Mixin功能简介
  3. 3. 简单使用方法
    1. 3.1. 开盖即用法
    2. 3.2. 深度自定义法
    3. 3.3. 如何自定义
  4. 4. 结语

前言

由于某些原因,规避了一些敏感内容,请自行脑补。

因为在使用过程中会使用各种不同的机场和网站,由于各个网站质量和规则参差不齐,导致切换不同的配置进行上网体验不佳。不过好在🐱有mixin功能,可以进行自定义规则组,实现不同机场同样的上网体验。

本篇的演示为🐱 Premium版本。

Mixin功能简介

由于众所周知的原因,官网现在已不可查,所以介绍我就尽可能简短,毕竟这篇博客是一个应用文不是原理文。

mixin官网

mixin功能说白了就和很多的软件一样,可以用你的自定义规则覆盖clash原有的配置,包括各个机场的规则组。

基于这个功能,我们只需要写一套规则组,然后用mixin功能覆盖各个机场的配置文件规则组即可。

简单使用方法

首先我们来到🐱的首页,点击混合代理右边的齿轮。

mixin配置处

由于mixin文件书写的缩进很重要,所以请注意缩进的格式!!

下面是我目前使用的mixin配置:「请不要直接复制过去使用!需要进行进阶配置!!」

我的配置文件使用并参考了了此GitHub项目,再次感谢各位开源作者们。

我不会对该配置文件做详细解释,有需求的请自行Google

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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 即可。

什么叫当前订阅组名称?请看:

订阅组名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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

深度自定义法

那么如果这个开源项目的规则组还是不能满足你的需求,有些网站还是被误杀了,访问不了,请看接下来的方法。

这里需要注意你的🐱的资料夹路径,这个路径可以在设置中查找到:

🐱资料夹路径

在你的资料夹文件夹下面创建一个local文件夹,然后再在local文件夹下面创建一个rule文件夹,下载这个压缩包,解压缩在rule文件夹下即可,完成后路径和文件夹如下所示:

rule文件夹

然后将下面的配置文件复制进你的mixin配置文件处,然后用你当前机场的订阅组名称替换掉 REPLACE 即可。

什么叫当前订阅组名称?请看:

订阅组名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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

随后我们将混合配置的开关给打开就会发现我们下面多了一个提供的选项窗口,点击进入发现类似于这样就成功了。

rule providers

如何自定义

文件是配置好了,如果再次遇到规则配置错网站那该怎么办呢?

首先我们打开🐱的日志页,将日志的信息呈现调成「详细」和「信息」。

再次打开我们需要调整的网站,我们会在日志里面看到该请求所使用的规则组,使用的代理还有状态。

如何看懂日志

比如,我们一个 www.systemannounce.com 的请求错误使用了代理组proxy,而我们想让它直连,那我们首先来到🐱刚刚新多出来的提供选项窗口,找到proxy代理组,点击右边的edit file,找到 systemannounce.com 类似的请求,然后删除,再把域名加到direct代理组里即可。

🐱更改代理组1

🐱更改代理组2

需要说明的是,这前面的 +. 的意思是匹配当前域名下的所有小一级域名。比如 +.example.com ,表示匹配任何以example.com结尾的域名,包括 ww1.example.commail.example.com 等等。但是不匹配 aexample.comww1.aexample.com 等域名。

结语

到目前为止,你已经掌握了自定义规则组的能力,虽然本文还有很多没说到的内容,但是相信凭借你的聪明才知一定可以攻破难关。

比如相信你已经发现了:

rules

这里的意思是,将applications,private,icloud等规则组文件内的域名全部直连,将Google和proxy文件内的域名全部代理,走🚀 节点选择这个规则组下的节点。

好了让我们下次再见。

召唤伊斯特瓦尔