从简开始
相信不少人刚开始折腾内核的时候,都是一脸茫然的,要配置的内容太多,对新手不友好。所以我们从最简单的方法做起,力求先把内核跑起来,然后再慢慢拓展。
搞代理的前提是你需要去各大机场订阅节点,或者你自己拥有节点。通常机场会给你提供一个订阅链接🔗,复制下来。
下载内核
先去mihomo仓库,根据你的电脑下一个适合的内核版本(去参考官方文档),我下的是这个版本:

获取配置
在任意位置建一个文件夹,就叫mihomo吧。 在该位置打开cmd,输入
1curl -k -H "User-Agent: Clash" -o config.yaml "你的订阅链接"
- 添加
-k参数跳过证书验证(仅临时测试使用) -H "User-Agent: Clash"的作用是将请求头中的用户代理标识为Clash,部分机场可能会根据此标识返回适配的配置格式。
如果机场支持连接转换成clash格式的话,此时你的mihomo文件夹下会出现一个新的config.yaml文件,打开看一下,这个就是机场给你配好的基础配置。

运行内核
是不是很简单?这个配置已经足够内核正常运行了,我们接着把它跑起来。
打开powershell,输入
1.\mihomo-windows-amd64.exe -d .\ -f config.yaml
- -d .\ 用于指定程序的工作目录
- -f config.yaml 用于指定配置文件路径
第一次运行需要拉取geoip文件,可能需要给powershell设置代理才能拉取成功(实在不行暂时用客户端吧,开个tun模式)
在性能管理器里检查一下,发现内核正在运行,说明内核启动成功:

开启代理
启动了内核之后的最后一步:我们要到系统设置中手动开启系统代理:

至此,我们学会了如何使用裸核mihomo开启代理,不管那些有的没的,至少我们已经可以成功运行啦。
要想在windows的终端使用代理,就在当前会话输入
set http_proxy=http://127.0.0.1:7890,如图所示:
我们已经与google正常连通。
更进一步
现在我们用的完全是机场给我们的配置,当然会有很多细节处没有匹配我们的个人需求,所以我们需要自己去改进一下这个配置,当然如果你觉得这样已经够用,那么不必接着往下看。
自己写规则最主要的目的显然是为了能够让一些自己的服务器或者一些特殊地址能够直连\走代理,其实整个代理配置说白了就是 规定了谁要走直连,谁要走代理,方便我们使用代理时可以实现全自动化策略调控。
要想自己写配置,我们首先要搞懂mihomo的配置分为哪些部分,每一部分是干什么的。让我带大家初步了解一下mihomo的配置中的几个主要模块:
主要模块
proxy-providers
作用
定义 从哪里获取代理节点,支持在线订阅、本地文件等方式,是代理节点的 “源头”。
常用参数
| 参数 | 含义 |
|---|---|
url | 代理订阅链接 |
path | 订阅内容的本地保存路径 |
type | 订阅类型为 http(常见类型还有 file 本地文件、clash 标准格式等)。 |
interval | 订阅更新间隔,通常是设定86400 秒 = 1 天,即每天自动更新一次代理节点。 |
全局配置
作用
定义 mihomo 的基础运行参数、网络入口(端口)、全局模式等,是软件启动的 基础设置。
常用参数
| 类别 | 关键参数 & 含义 |
|---|---|
| 端口配置 | - port: 7891:HTTP 代理端口;- socks-port: 7892:SOCKS5 代理端口;- mixed-port: 7890:混合端口 |
| 网络开关 | - allow-lan: true:允许局域网设备(如手机、平板)连接该代理; |
| 运行模式 | - mode: rule:规则模式(核心模式,按 rules 分流,优先推荐); |
| 界面与控制 | - external-controller: 127.0.0.1:9090:外部控制接口(用于 Web 管理或第三方客户端连接);- secret: 控制接口的密码;- external-ui: zashboard:自定义 Web 界面(用 external-ui-url 拉取界面文件)。 |
| 地理数据 | - geodata-mode: true:启用地理数据(用于 GEOSITE/GEOIP 规则);- geo-auto-update: true:自动更新地理数据库(geoip/geosite 等);- geox-url:指定地理数据库的下载地址(用 MetaCubeX 的精简库,体积小)。 |
DNS
作用
解决 DNS 污染问题,确保域名能正确解析到真实 IP,同时按规则分流 DNS 请求(比如国内域名用国内 DNS,国外域名用代理 DNS)。
常用参数
| 参数 | 含义 |
|---|---|
enable: true | 启用 mihomo 自带 DNS(必须开,否则可能 DNS 污染)。 |
listen: 0.0.0.0:1053 | DNS 监听地址(局域网设备可将 DNS 设为该地址,共享无污染解析)。 |
enhanced-mode: fake-ip | 增强模式:fake-ip(核心!用 “伪装 IP” 替代真实 IP,避免解析延迟,同时防 DNS 泄漏)。 |
nameserver | 主要 DNS 服务器(用支持 HTTP/3 的国内 DNS,如阿里 120.53.53.53,速度快)。 |
proxy-server-nameserver | 走代理的 DNS(解析国外域名时用,避免污染,比如访问 google.com 时用这个)。 |
proxy-groups(核心模块)
作用
将代理节点按 功能 或 地区 分组,方便管理和使用(比如 “AI 流量走美国组”“奈飞走新加坡组”),是规则分流的 “目标载体”
如何工作
比如我自己的代理组分为两层,第一层是功能组,第二层是地区组,我举个好理解的例子:
我现在要访问ChatGPT,我的rules 里有一条规则:
- GEOSITE,category-ai-!cn,AIGC
意思是 “所有非国内的 AI 类流量(比如 ChatGPT),都交给 AIGC 这个功能组处理”—— 这一步确定了 “用哪个上层组”。
然后AIGC里面有很多的地区组,我选择了美国组。
接着,由于United States 组是 fallback 模式(自动故障转移),它会:
- 从
proxy-providers拉取的所有节点中,用filter: *FilterUS筛选出 “美国节点”(比如有 3 个美国节点:US-1、US-2、US-3); - 按顺序自动检测节点可用性(先测 US-1,再测 US-2…);
- 优先使用「第一个可用的节点」(比如 US-1 能连,就用 US-1;如果 US-1 失效,自动切到 US-2);
- 全程不需要手动干预,自动保障连接稳定。
rules(核心模块)
作用
按「优先级」定义 “什么样的流量走哪个代理 / 直连 / 拒绝”。规则优先级:上 → 下,先匹配的先生效。
各种规则
1. 拒绝规则
- RULE-SET,awavenue,REJECT:匹配awavenue广告规则的流量,直接拒绝(拦截广告)。
2. 直连规则
- 私有地址 / 公共 Tracker:
GEOSITE,private/ category-public-tracker,DIRECT(本地局域网、BT Tracker 直连); - 国内服务:
GEOSITE,apple@cn/ icloud/ microsoft@cn,DIRECT(苹果 / 微软国内服务直连); - 国内域名:
DOMAIN-SUFFIX,cn,DIRECT(所有.cn域名直连); - 国内 IP:
RULE-SET,domestic_ip/ china_ip/ china_ip_ipv6,DIRECT(国内 IP 段直连)。
3. 特定服务规则
- AI 服务:
GEOSITE,category-ai-!cn,AIGC(非国内 AI 流量,走AIGC组); - 流媒体:
GEOSITE,spotify,Spotify(Spotify 走Spotify组)、GEOSITE,netflix/ disney,Netflix(奈飞 / 迪士尼走Netflix组); - 即时通讯:
GEOSITE,telegram,Proxy(Telegram 走Proxy组); - OneDrive 特例:
DOMAIN-SUFFIX,onedrive.live.com,Proxy(OneDrive 国际版走代理,国内版直连)。
4. 通用代理规则
- CDN 流量:
RULE-SET,cdn_domainset/ cdn_non_ip,Proxy(CDN 流量走Proxy组); - 国外非 IP 流量:
RULE-SET,global_non_ip,Proxy(国外非 IP 规则流量走Proxy组)。
5. 兜底规则
- MATCH,Proxy:所有没被上面规则匹配的流量,默认走Proxy组(确保国外流量都能走代理)。
重写配置
有了以上的知识储备,我们就可以自己写一个新的配置文件了,这里贴出我的配置:
1proxy-providers:
2 JingLingXueYuan:
3 # 敏感信息:原链接中的 Token 已替换为占位符,请替换为自己的有效订阅 Token
4 url: 'https://pd9jg1kf94.laoyao.ltd/api/v1/client/subscribe?token=[你的订阅Token]'
5 path: './proxy-providers/JingLingXueYuan.yaml'
6 type: http
7 interval: 86400
8 health-check:
9 enable: true
10 lazy: true
11 url: http://latency-test.skk.moe/endpoint
12 interval: 60
13
14port: 7891
15socks-port: 7892
16mixed-port: 7890
17unified-delay: true
18tcp-concurrent: true
19allow-lan: true
20mode: rule
21log-level: info
22ipv6: true
23udp: true
24profile:
25 store-selected: true
26 store-fake-ip: true
27find-process-mode: strict
28global-client-fingerprint: chrome
29geodata-mode: true
30geodata-loader: standard
31geo-auto-update: true
32geo-update-interval: 24
33geox-url:
34 geoip: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat
35 geosite: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat
36 mmdb: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country-lite.mmdb
37 asn: https://github.com/xishang0128/geoip/releases/download/latest/GeoLite2-ASN.mmdb
38external-controller: 127.0.0.1:9090
39# 敏感信息:原固定密钥已替换为占位符,请设置为自定义的复杂密钥(建议包含字母、数字、符号)
40secret: [自定义安全密钥]
41external-ui: ui
42external-ui-name: zashboard
43external-ui-url: https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip
44sniffer:
45 enable: true
46 force-dns-mapping: true
47 parse-pure-ip: true
48 override-destination: true
49 sniff:
50 HTTP:
51 ports:
52 - 80
53 - 8080-8880
54 override-destination: true
55 TLS:
56 ports:
57 - 443
58 - 8443
59 QUIC:
60 ports:
61 - 443
62 - 8443
63 force-domain:
64 - +.v2ex.com
65 skip-domain:
66 - Mijia Cloud
67 - +.push.apple.com
68 skip-src-address:
69 - 192.168.1.1/24
70 skip-dst-address:
71 - 91.105.192.0/23
72 - 91.108.4.0/22
73 - 91.108.8.0/21
74 - 91.108.16.0/21
75 - 91.108.56.0/22
76 - 95.161.64.0/20
77 - 149.154.160.0/20
78 - 185.76.151.0/24
79 - 2001:67c:4e8::/48
80 - 2001:b28:f23c::/47
81 - 2001:b28:f23f::/48
82 - 2a0a:f280:203::/48
83tun:
84 enable: false
85 stack: mixed
86 device: utun0
87 dns-hijack:
88 - any:53
89 - tcp://any:53
90 auto-route: true
91 auto-detect-interface: true
92 strict-route: true
93dns:
94 enable: true
95 listen: 0.0.0.0:1053
96 ipv6: true
97 prefer-h3: true
98 use-hosts: true
99 use-system-hosts: true
100 respect-rules: true
101 enhanced-mode: fake-ip
102 fake-ip-range: 28.0.0.1/8
103 fake-ip-filter:
104 - 'rule-set:fake_ip_filter'
105 default-nameserver:
106 - 223.5.5.5
107 - 119.29.29.29
108 nameserver:
109 - https://120.53.53.53/dns-query#h3=true
110 - https://223.6.6.6/dns-query#h3=true
111 - https://223.5.5.5/dns-query#h3=true
112 proxy-server-nameserver:
113 - https://120.53.53.53/dns-query
114 - https://223.5.5.5/dns-query
115
116FilterHK: &FilterHK '(?=.*(🇭🇰|港|HK|(?i)Hong))^((?!(日|坡|狮|美)).)*$'
117FilterJP: &FilterJP '(?=.*(🇯🇵|(?<!尼)日|JP|(?i)Japan))^((?!(港|坡|狮|美)).)*$'
118FilterSG: &FilterSG '(?=.*(🇸🇬|坡|狮|獅|SG|(?i)Singapore))^((?!(港|日|美)).)*$'
119FilterUS: &FilterUS '(?=.*(🇺🇸|美|US|(?i)States|American))^((?!(港|日|坡|狮)).)*$'
120FilterOther: &FilterOther '^((?!(🇭🇰|🇸🇬|🇺🇸|🇯🇵|港|美|日|坡|狮|广告|剩余|官网|到期|流量|HK|US|JP|SG|Hong|Singapore|Japan|United)).)*$'
121
122Select: &select
123 type: select
124 disable-udp: false
125 hidden: false
126UrlTest: &urltest
127 type: url-test
128 interval: 6
129 tolerance: 20
130 lazy: true
131 url: http://latency-test.skk.moe/endpoint
132 disable-udp: false
133 timeout: 2000
134 max-failed-times: 3
135 hidden: false
136FallBack: &fallback
137 type: fallback
138 interval: 6
139 lazy: true
140 url: http://latency-test.skk.moe/endpoint
141 disable-udp: false
142 timeout: 2000
143 max-failed-times: 3
144 hidden: false
145LoadBalance:
146 type: load-balance
147 interval: 6
148 lazy: true
149 url: http://latency-test.skk.moe/endpoint
150 disable-udp: false
151 strategy: consistent-hashing
152 timeout: 2000
153 max-failed-times: 3
154 hidden: false
155
156Classical: &classical
157 type: http
158 behavior: classical
159 interval: 86400
160Domain: &domain
161 type: http
162 behavior: domain
163 interval: 86400
164IP: &ip
165 type: http
166 behavior: ipcidr
167 interval: 86400
168
169proxy-groups:
170 - name: Proxy
171 <<: *select
172 icon: https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/Proxy.png
173 proxies:
174 - Hong Kong
175 - Japan
176 - Singapore
177 - United States
178 - Others
179 - name: AIGC
180 <<: *select
181 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/OpenAI.png
182 proxies:
183 - United States
184 - Hong Kong
185 - Japan
186 - Singapore
187 - Others
188 - name: Netflix
189 <<: *select
190 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/Netflix.png
191 proxies:
192 - Singapore
193 - Hong Kong
194 - Japan
195 - United States
196 - Others
197 - name: Spotify
198 <<: *select
199 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/Spotify.png
200 proxies:
201 - DIRECT
202 - Hong Kong
203 - Japan
204 - Singapore
205 - United States
206 - Others
207 - name: Hong Kong
208 include-all: true
209 <<: *fallback
210 filter: *FilterHK
211 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/HK.png
212 - name: Japan
213 include-all: true
214 <<: *fallback
215 filter: *FilterJP
216 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/JP.png
217 - name: Singapore
218 include-all: true
219 <<: *fallback
220 filter: *FilterSG
221 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/SG.png
222 - name: United States
223 include-all: true
224 <<: *fallback
225 filter: *FilterUS
226 icon: https://raw.githubusercontent.com/Orz-3/mini/master/Color/US.png
227 - name: Others
228 include-all: true
229 <<: *select
230 filter: *FilterOther
231 icon: https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Color/World_Map.png
232
233rule-providers:
234 awavenue:
235 <<: *domain
236 format: yaml
237 path: ./rule-providers/awavenue.yaml
238 url: https://raw.githubusercontent.com/TG-Twilight/AWAvenue-Ads-Rule/main/Filters/AWAvenue-Ads-Rule-Clash.yaml
239 fake_ip_filter:
240 <<: *domain
241 format: text
242 path: ./rule-providers/fake_ip_filter.list
243 url: https://cdn.jsdelivr.net/gh/juewuy/ShellCrash@dev/public/fake_ip_filter.list
244 applications:
245 <<: *classical
246 format: text
247 path: ./rule-providers/direct.txt
248 url: https://ruleset.skk.moe/Clash/non_ip/direct.txt
249 global_non_ip:
250 <<: *classical
251 format: text
252 path: ./rule-providers/global_non_ip.txt
253 url: https://ruleset.skk.moe/Clash/non_ip/global.txt
254 cdn_domainset:
255 <<: *domain
256 format: text
257 path: ./rule-providers/cdn_domainset.txt
258 url: https://ruleset.skk.moe/Clash/domainset/cdn.txt
259 cdn_non_ip:
260 <<: *classical
261 format: text
262 path: ./rule-providers/cdn_non_ip.txt
263 url: https://ruleset.skk.moe/Clash/non_ip/cdn.txt
264 domestic_non_ip:
265 <<: *classical
266 format: text
267 path: ./rule-providers/domestic_non_ip.txt
268 url: https://ruleset.skk.moe/Clash/non_ip/domestic.txt
269 domestic_ip:
270 <<: *classical
271 format: text
272 path: ./rule-providers/domestic_ip.txt
273 url: https://ruleset.skk.moe/Clash/ip/domestic.txt
274 china_ip:
275 <<: *ip
276 format: text
277 path: ./rule-providers/china_ip.txt
278 url: https://ruleset.skk.moe/Clash/ip/china_ip.txt
279 china_ip_ipv6:
280 <<: *ip
281 format: text
282 path: ./rule-providers/china_ip_ipv6.txt
283 url: https://ruleset.skk.moe/Clash/ip/china_ip_ipv6.txt
284
285rules:
286 - RULE-SET,awavenue,REJECT
287 - GEOSITE,private,DIRECT
288 - GEOSITE,category-public-tracker,DIRECT
289 - GEOSITE,category-games@cn,DIRECT
290 - GEOSITE,apple@cn,DIRECT
291 - GEOSITE,icloud,DIRECT
292 - GEOSITE,microsoft@cn,DIRECT
293 - DOMAIN-SUFFIX,onedrive.live.com,Proxy
294 - GEOSITE,onedrive,DIRECT
295 - GEOSITE,microsoft,Proxy
296 - GEOSITE,telegram,Proxy
297 - GEOSITE,category-ai-!cn,AIGC
298 - GEOSITE,spotify,Spotify
299 - GEOSITE,netflix,Netflix
300 - GEOSITE,disney,Netflix
301 - RULE-SET,cdn_domainset,Proxy
302 - RULE-SET,cdn_non_ip,Proxy
303 - RULE-SET,global_non_ip,Proxy
304 - RULE-SET,applications,DIRECT
305 - RULE-SET,domestic_non_ip,DIRECT
306 - DOMAIN-SUFFIX,cn,DIRECT
307 - GEOIP,telegram,Proxy,no-resolve
308 - GEOIP,netflix,Netflix,no-resolve
309 - GEOIP,private,DIRECT,no-resolve
310 - RULE-SET,domestic_ip,DIRECT,no-resolve
311 - RULE-SET,china_ip,DIRECT,no-resolve
312 - RULE-SET,china_ip_ipv6,DIRECT,no-resolve
313 - MATCH,Proxy
参考:Windows 下 Mihomo 裸核使用分享 - 开发调优 - LINUX DO
手搓脚本
有了一个自定义的配置文件,接下来只要运行内核,开启代理即可,你可以使用我们上面讲到的方法,也可以选择折腾一点,自己手搓脚本。至少需要写以下几个满足基本需求的脚本:
- 启动内核
- 启动代理
- 切换tun\系统代理模式
- 关闭代理
- 关闭内核
我自己改写了一套迁移性比较好的脚本(windows上使用ps1后缀的脚本),可供参考: 我的脚本仓库 (暂时还未开放,可能过几天)。
写好脚本后,给文件添加快捷图标,右击图标选择属性,在 目标 前添加C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoExit -File 如果你希望弹出自动关闭,就去掉 -NoExit 。
然后点击 高级 勾选以管理员运行。

小结
此配置文件内置了zashboard web管理面板,在浏览器输入127.0.0.1:9090/ui即可查看面板。可以比较方便地手动切换代理组与节点。
如果你希望开机自启,就给内核添加一个计划程序即可。
之后想要改写规则的时候,直接在config.yaml上续写就好了,非常方便。