old
1{config, ...}: let
2 RuleSet_classical = {
3 type = "http";
4 behavior = "classical";
5 interval = 43200;
6 format = "text";
7 proxy = "🎯 节点选择";
8 };
9 RuleSet_domain = {
10 type = "http";
11 behavior = "domain";
12 interval = 43200;
13 format = "text";
14 proxy = "🎯 节点选择";
15 };
16 RuleSet_ipcidr = {
17 type = "http";
18 behavior = "ipcidr";
19 interval = 43200;
20 format = "text";
21 proxy = "🎯 节点选择";
22 };
23in {
24 services.mihomo.config = {
25 rules = [
26 # 自订类规则
27 "AND,((DOMAIN-SUFFIX,glacier.mxrouting.net),(DST-PORT,465/993)),DIRECT" # My Domain Email
28 "AND,((RULE-SET,my_hosts),(NOT,((DST-PORT,80/443)))),DIRECT" # My VPS
29
30 # 非 IP 类规则
31 "RULE-SET,reject_non_ip,REJECT"
32 "RULE-SET,reject_domainset,REJECT"
33 "RULE-SET,reject_non_ip_drop,REJECT-DROP"
34 "RULE-SET,reject_non_ip_no_drop,REJECT"
35 "RULE-SET,cdn_domainset,🎯 节点选择"
36 "RULE-SET,cdn_non_ip,🎯 节点选择"
37 "RULE-SET,stream_non_ip,🇺🇸 - 自动选择"
38 "RULE-SET,telegram_non_ip,✈️ 电报信息"
39 "RULE-SET,apple_cdn,DIRECT"
40 "RULE-SET,download_domainset,🎯 节点选择"
41 "RULE-SET,download_non_ip,🎯 节点选择"
42 "RULE-SET,microsoft_cdn_non_ip,DIRECT"
43 "RULE-SET,apple_cn_non_ip,DIRECT"
44 "RULE-SET,apple_services,🍎 苹果服务"
45 "RULE-SET,microsoft_non_ip,Ⓜ️ 微软服务"
46 "RULE-SET,ai_non_ip,🤖 AIGC"
47 "RULE-SET,global_non_ip,🎯 节点选择"
48 "RULE-SET,domestic_non_ip,DIRECT"
49 "RULE-SET,direct_non_ip,DIRECT"
50 "RULE-SET,lan_non_ip,DIRECT"
51
52 # IP 类规则
53 "RULE-SET,reject_ip,REJECT"
54 "RULE-SET,telegram_ip,✈️ 电报信息"
55 "RULE-SET,stream_ip,🇺🇸 - 自动选择"
56 "RULE-SET,lan_ip,DIRECT"
57 "RULE-SET,domestic_ip,DIRECT"
58 "RULE-SET,china_ip,DIRECT"
59 "MATCH,🎯 节点选择"
60 ];
61 rule-providers = {
62 reject_non_ip_no_drop =
63 RuleSet_classical
64 // {
65 url = "https://ruleset.skk.moe/Clash/non_ip/reject-no-drop.txt";
66 path = "./rule_set/sukkaw_ruleset/reject_non_ip_no_drop.txt";
67 };
68 reject_non_ip_drop =
69 RuleSet_classical
70 // {
71 url = "https://ruleset.skk.moe/Clash/non_ip/reject-drop.txt";
72 path = "./rule_set/sukkaw_ruleset/reject_non_ip_drop.txt";
73 };
74 reject_non_ip =
75 RuleSet_classical
76 // {
77 url = "https://ruleset.skk.moe/Clash/non_ip/reject.txt";
78 path = "./rule_set/sukkaw_ruleset/reject_non_ip.txt";
79 };
80 reject_domainset =
81 RuleSet_domain
82 // {
83 url = "https://ruleset.skk.moe/Clash/domainset/reject.txt";
84 path = "./rule_set/sukkaw_ruleset/reject_domainset.txt";
85 };
86 reject_ip =
87 RuleSet_classical
88 // {
89 url = "https://ruleset.skk.moe/Clash/ip/reject.txt";
90 path = "./rule_set/sukkaw_ruleset/reject_ip.txt";
91 };
92 cdn_domainset =
93 RuleSet_domain
94 // {
95 url = "https://ruleset.skk.moe/Clash/domainset/cdn.txt";
96 path = "./rule_set/sukkaw_ruleset/cdn_domainset.txt";
97 };
98 cdn_non_ip =
99 RuleSet_domain
100 // {
101 url = "https://ruleset.skk.moe/Clash/non_ip/cdn.txt";
102 path = "./rule_set/sukkaw_ruleset/cdn_non_ip.txt";
103 };
104 stream_non_ip =
105 RuleSet_classical
106 // {
107 url = "https://ruleset.skk.moe/Clash/non_ip/stream.txt";
108 path = "./rule_set/sukkaw_ruleset/stream_non_ip.txt";
109 };
110 stream_ip =
111 RuleSet_classical
112 // {
113 url = "https://ruleset.skk.moe/Clash/ip/stream.txt";
114 path = "./rule_set/sukkaw_ruleset/stream_ip.txt";
115 };
116 ai_non_ip =
117 RuleSet_classical
118 // {
119 url = "https://ruleset.skk.moe/Clash/non_ip/ai.txt";
120 path = "./rule_set/sukkaw_ruleset/ai_non_ip.txt";
121 };
122 telegram_non_ip =
123 RuleSet_classical
124 // {
125 url = "https://ruleset.skk.moe/Clash/non_ip/telegram.txt";
126 path = "./rule_set/sukkaw_ruleset/telegram_non_ip.txt";
127 };
128 telegram_ip =
129 RuleSet_classical
130 // {
131 url = "https://ruleset.skk.moe/Clash/ip/telegram.txt";
132 path = "./rule_set/sukkaw_ruleset/telegram_ip.txt";
133 };
134 apple_cdn =
135 RuleSet_domain
136 // {
137 url = "https://ruleset.skk.moe/Clash/domainset/apple_cdn.txt";
138 path = "./rule_set/sukkaw_ruleset/apple_cdn.txt";
139 };
140 apple_services =
141 RuleSet_classical
142 // {
143 url = "https://ruleset.skk.moe/Clash/non_ip/apple_services.txt";
144 path = "./rule_set/sukkaw_ruleset/apple_services.txt";
145 };
146 apple_cn_non_ip =
147 RuleSet_classical
148 // {
149 url = "https://ruleset.skk.moe/Clash/non_ip/apple_cn.txt";
150 path = "./rule_set/sukkaw_ruleset/apple_cn_non_ip.txt";
151 };
152 microsoft_cdn_non_ip =
153 RuleSet_classical
154 // {
155 url = "https://ruleset.skk.moe/Clash/non_ip/microsoft_cdn.txt";
156 path = "./rule_set/sukkaw_ruleset/microsoft_cdn_non_ip.txt";
157 };
158 microsoft_non_ip =
159 RuleSet_classical
160 // {
161 url = "https://ruleset.skk.moe/Clash/non_ip/microsoft.txt";
162 path = "./rule_set/sukkaw_ruleset/microsoft_non_ip.txt";
163 };
164 download_domainset =
165 RuleSet_domain
166 // {
167 url = "https://ruleset.skk.moe/Clash/domainset/download.txt";
168 path = "./rule_set/sukkaw_ruleset/download_domainset.txt";
169 };
170 download_non_ip =
171 RuleSet_domain
172 // {
173 url = "https://ruleset.skk.moe/Clash/non_ip/download.txt";
174 path = "./rule_set/sukkaw_ruleset/download_non_ip.txt";
175 };
176 lan_non_ip =
177 RuleSet_classical
178 // {
179 url = "https://ruleset.skk.moe/Clash/non_ip/lan.txt";
180 path = "./rule_set/sukkaw_ruleset/lan_non_ip.txt";
181 };
182 lan_ip =
183 RuleSet_classical
184 // {
185 url = "https://ruleset.skk.moe/Clash/ip/lan.txt";
186 path = "./rule_set/sukkaw_ruleset/lan_ip.txt";
187 };
188 domestic_non_ip =
189 RuleSet_classical
190 // {
191 url = "https://ruleset.skk.moe/Clash/non_ip/domestic.txt";
192 path = "./rule_set/sukkaw_ruleset/domestic_non_ip.txt";
193 };
194 direct_non_ip =
195 RuleSet_classical
196 // {
197 url = "https://ruleset.skk.moe/Clash/non_ip/direct.txt";
198 path = "./rule_set/sukkaw_ruleset/direct_non_ip.txt";
199 };
200 global_non_ip =
201 RuleSet_classical
202 // {
203 url = "https://ruleset.skk.moe/Clash/non_ip/global.txt";
204 path = "./rule_set/sukkaw_ruleset/global_non_ip.txt";
205 };
206 domestic_ip =
207 RuleSet_classical
208 // {
209 url = "https://ruleset.skk.moe/Clash/ip/domestic.txt";
210 path = "./rule_set/sukkaw_ruleset/domestic_ip.txt";
211 };
212 china_ip =
213 RuleSet_ipcidr
214 // {
215 url = "https://ruleset.skk.moe/Clash/ip/china_ip.txt";
216 path = "./rule_set/sukkaw_ruleset/china_ip.txt";
217 };
218 my_hosts = {
219 type = "inline";
220 behavior = "classical";
221 payload = [
222 "IP-CIDR,${config.sops.placeholder.pardofelis-ipv4}/32"
223 ];
224 };
225 };
226 };
227}