
零基础从零上手:Mihomo / Clash 进阶定制配置文件编写与修改完全指南
点此下载基础配置模板示例文件:https://limbopro.com/tools/2yaml/Profiles4limbo.yaml
Profiles4limbo.yaml 文件里面涉及到分流规则来自:https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash
对于刚接触代理工具(如 Clash、Mihomo / Mihomo Party 等内核)的小白来说,打开一份动辄上千行的 YAML 配置文件时,往往会有一种面对“天书”的无力感。满屏的英文、奇怪的缩进、长长的链接,让人直呼头大。
但实际上,一份优秀的配置文件就像是一座全自动的现代化物流枢纽:
-
全局设置与 TUN 是枢纽的地基与总闸,决定了怎么接管你的电脑流量。
-
智能 DNS 是分拣中心的“安检与地址翻译”,负责把网址精准翻译成 IP,顺便防住中间拦截。
-
规则集 (
rule-providers) 是海关的黑白名单目录,源源不断地更新哪些是广告、哪些是 AI、哪些是流媒体。 -
策略组 (
proxy-groups) 则是各个专属通道(如美区节点、故障自动切换、广告拦截拒收)。 -
路由规则 (
rules) 则是交警指挥官,自上而下指挥每一个数据包该走哪条专属通道。
本文将结合生产环境级别的进阶定制配置文件,带你用“第一性原理”彻底拆解每一个键值对,挖掘那些小白平时绝对想不到的细节、坑点与核心原理!
🛠️ 第一章:动工前必须知道的 YAML 语法“三大铁律”
在正式修改或自己编写配置文件之前,必须先明白:YAML 是一种对格式极其苛刻的语言。只要有一处不注意,内核就会直接罢工报错。
-
绝对不能用 Tab 键缩进:每一层级的缩进必须使用空格(推荐统一按 2 个或 4 个空格)。如果在电脑上按了 Tab 键,轻则解析失败,重则直接崩溃。
-
冒号后面必须加空格:例如
type: http,冒号和http之间必须有一个半角空格,不能写成type:http。 -
短横线代表列表(数组):同级元素的罗列(如多个节点或规则)必须用
-开头,且-后面也必须带一个空格。
🌐 第二章:全局基础设置与 TUN 虚拟网卡——整机流量的总闸
这部分是整个软件的“发动机舱”,决定了它的性能边界与工作姿态。
1. 基础网络与端口设置
YAML
mixed-port: 7890
allow-lan: true
ipv6: true
mode: rule
log-level: info
bind-address: "*"
unified-delay: true
tcp-concurrent: true
keep-alive-interval: 60
find-process-mode: strict
external-controller: 127.0.0.1:9090
external-ui: ui
external-ui-url: https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip
-
mixed-port: 7890:混合端口。相当于在电脑本地开了一个“总快递站”,同时支持 HTTP 和 SOCKS5 协议。本地局域网或不支持系统代理的软件,只要把代理服务器指向127.0.0.1:7890就能被内核接管。 -
allow-lan: true:允许局域网连接。开启后,同一路由器下的其他设备(如手机、平板、另一台电脑)也能通过你的电脑 IP 和 7890 端口共享代理。 -
ipv6: true:启用 IPv6 支持。如果你的宽带或机场支持 IPv6,开启它能正常解析和接管 IPv6 流量,防止 IPv6 泄露。 -
mode: rule:运行模式。设置为rule(规则分流)表示根据路由规则自动判断哪些流量走代理、哪些直连;如果是global则是全部走代理,direct则是全部直连。 -
unified-delay: true:统一延迟计算。让不同协议的节点测速标准趋于一致,避免虚假的低延迟。 -
tcp-concurrent: true:TCP 并发连接。对同一域名同时发起多个 TCP 连接并取最快的一个,能显著提升网页打开的响应速度。 -
find-process-mode: strict:进程匹配模式。设置为strict(严格模式)可以精准识别到底是哪个应用(比如某个游戏或浏览器)在发起网络请求,从而实现“按进程分流”。 -
external-controller与external-ui:外部控制 API 与网页端面板(如 Zashboard)。这让你可以通过浏览器直观地看到实时流量曲线、当前连接数,并手动切换节点。
2. TUN 虚拟网卡模式(现代代理的灵魂)
YAML
tun:
enable: true
stack: system
auto-route: true
strict-route: true
auto-redirect: true
auto-detect-interface: true
dns-hijack:
- any:53
- tcp://any:53
-
小白必知细节:早期的代理软件需要你在每个软件里手动设置代理,或者依赖系统的 HTTP 代理。而开启
tun: enable: true后,内核会在你的电脑操作系统里凭空“虚拟”出一张网卡。 -
stack: system:使用操作系统原生的网络协议栈,稳定性和兼容性最好。 -
auto-route: true:自动将操作系统的默认网关指向这张虚拟网卡。从此,无论是微信聊天、网游、还是各种不听话的后台软件,其所有流量都会被强行拦截并纳入内核分流,实现真正的全局接管。 -
dns-hijack:强行将所有发往 53 端口的 DNS 请求拦截下来交由内核处理。这是防止本地运营商 DNS 投毒污染的关键招式。
🔍 第三章:智能 DNS 配置——告别解析污染与缓慢
DNS 负责把网址(如 google.com)翻译成 IP 地址。不合理的 DNS 配置会导致网页打不开、加载慢,甚至被运营商重定向到广告页。
YAML
dns:
enable: true
ipv6: true
use-hosts: true
cache-algorithm: arc
use-system-hosts: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/15
fake-ip-range6: 2001:2::1/48
fake-ip-filter:
- rule-set:local_rules
nameserver:
- https://cloudflare-dns.com/dns-query#✈️ 机场专线
- https://dns.google/dns-query#✈️ 机场专线
-
cache-algorithm: arc:采用 ARC(自适应替换缓存)算法。能极其聪明地缓存你经常访问的网址,再次访问时实现零延迟解析。 -
enhanced-mode: fake-ip(虚假 IP 模式):- 核心原理:当你在浏览器输入网址时,内核不会慢吞吞地去远端查真实 IP,而是瞬间秒回一个假的虚拟 IP(例如
198.18.x.x)给操作系统。操作系统误以为连接已建立,马上开始发送数据。与此同时,内核在后台默默把真实 IP 翻译出来并悄悄替换。这能让网页打开速度获得质的飞跃。
- 核心原理:当你在浏览器输入网址时,内核不会慢吞吞地去远端查真实 IP,而是瞬间秒回一个假的虚拟 IP(例如
-
nameserver的加密指向:[https://cloudflare-dns.com/dns-query#](https://cloudflare-dns.com/dns-query#)✈️ 机场专线:指定使用加密的 DoH(DNS over HTTPS)协议向 Cloudflare 查询境外网址,并且强制让这个查询走✈️ 机场专线。这样可以彻底避开本地运营商的 DNS 监听和污染。
📦 第四章:规则集提供者 (rule-providers)——自动进化的分流目录
如果把规则写死在配置文件里,几万行的代码会让文件变得无比臃肿且难以维护。现代配置文件引入了 rule-providers(规则集提供者),让内核可以联网自动同步最新的分流名单。
YAML
rule-providers:
openai:
type: http
behavior: classical
interval: 86400
format: text
url: https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/OpenAI/OpenAI.list
path: ./ruleset/openai.list
advertising_lite:
type: http
behavior: classical
interval: 86400
format: text
url: https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/AdvertisingLite/AdvertisingLite.list
path: ./ruleset/advertising_lite.list
-
type: http:表示这个规则集是通过网络链接远程下载的。 -
interval: 86400:更新频率。单位是秒,86400 秒正好等于 24 小时。也就是说,内核每天会自动去检查并下载一次最新的 OpenAI 或广告拦截黑名单。 -
path:下载到本地后的缓存路径。即使电脑断网重启,内核也能直接读取本地缓存的openai.list正常运行,不影响刚开机时的联网。 -
小白避坑指南:
openai或advertising_lite只是你在这一段给它起的名字,这个名字在后面的rules(路由规则)中必须完全一致,多打一个字母或大小写不对都会报错。
🎛️ 第五章:策略组定义 (proxy-groups)——节点的分类与智能调度
策略组是整个配置文件的核心灵魂,它决定了当流量触发某条规则时,应该交由哪个国家的节点、哪条专线、还是直接拦截。
1. 手动选择组 (select) 配合正则自动过滤
YAML
- name: 🤖 OpenAI
type: select
proxies:
- 🇺🇸 美国节点
- 🇯🇵 日本节点
- DIRECT
include-all: true
filter: "(?i)美国|USA|UnitedStates|US"
icon: https://fastly.jsdelivr.net/gh/Koolson/Qure@master/IconSet/Color/ChatGPT.png
-
type: select:手动选择型。允许你在面板里随心所欲地点选。 -
include-all: true与filter的黄金组合:- 小白惊叹细节:很多小白最烦心的是机场订阅每次更新,节点名字都在变。而这里的
filter: "(?i)美国|USA|UnitedStates|US"会通过正则表达式,自动把机场订阅里所有名字带“美国/US”的节点全部自动抓取并塞进这个组里。不管机场主怎么改名,美国节点永远会自动更新,再也不用手动一行行去写节点名了!
- 小白惊叹细节:很多小白最烦心的是机场订阅每次更新,节点名字都在变。而这里的
2. 故障自动切换组 (fallback)——永不断流的秘诀
YAML
- name: ♻️ 故障切换
type: fallback
url: http://www.gstatic.com/generate_204
interval: 60
timeout: 3000
include-all: true
exclude-type: DIRECT
-
type: fallback:顺位故障切换。 -
工作原理:内核每隔 60 秒(
interval: 60)会自动去访问谷歌的测速网址generate_204。如果排在第一位的节点突然超时(超过 3000 毫秒没响应,timeout: 3000)或者挂掉了,内核会瞬间无缝把流量切到下一个健康的节点上,你甚至在看视频或打游戏时都不会觉察到中断。
🚦 第六章:路由规则 (rules)——决定命运的交通指挥官
万事俱备,最后来到 rules。规则是整个配置文件的“最后一道关卡”,指挥着每一个数据包的去向。
核心铁律:自上而下,命中即停止!
内核在处理你的网络请求时,会像查户口一样从上到下挨个比对规则。只要你的访问请求命中了某一条规则,内核立刻停止向下匹配,直接把流量送往对应的策略组。
YAML
rules:
- RULE-SET,adobecc,☠️ AdobeCrack
- RULE-SET,adblock4limbo_surge,🛑 广告拦截
- RULE-SET,openai,🤖 OpenAI
- RULE-SET,youtube,🇾 YouTube
- RULE-SET,local_rules,DIRECT
- GEOIP,CN,DIRECT
- MATCH,🐟 final
-
- RULE-SET,openai,🤖 OpenAI:如果你访问的网址命中了前面rule-providers载入的 OpenAI 列表,立刻交由🤖 OpenAI策略组处理。 -
- GEOIP,CN,DIRECT:如果目标服务器的 IP 地址归属在中国大陆(CN),直接走本地直连(DIRECT),绝不浪费宝贵的机场流量。 -
- MATCH,🐟 final(绝对不能少的核心兜底):-
小白致命大坑:
MATCH兜底规则必须永远放在配置文件的最底部!它的意思是“前面所有规则都没匹配上的未知流量,统统走这里”。 -
如果你不小心把
MATCH写到了第一行,那么恭喜你,你的所有网页、广告、国内国外流量都会在第一行被全部拦截或统统送进同一个地方,导致全局瘫痪。
-
⚠️ 进阶避坑指南补充:filter 策略组与主流分流规则源的正确打开方式
在实际修改和自定义 proxy-groups(策略组)以及挑选分流规则时,往往有几个连老手也容易踩坑的细节。
一、 filter 过滤器的避坑要点与血泪教训
在编写策略组时,通过 filter 配合正则表达式自动抓取节点是非常爽的功能,但如果不注意以下几点,轻则导致策略组空空如也、网页无法打开,重则引发内核报错。
- 核心铁律:一个策略组里只能有一个
filter
-
错误写法:试图在一个策略组里写多个
filter或多行正则条件。 -
后果:YAML 解析器或内核会直接忽略后面的
filter,或者因为键名重复导致配置文件直接解析失败拒绝启动。 -
正确做法:如果需要匹配多个关键词,必须在同一个
filter字符串里用管道符|(代表“或”)连起来。例如:YAML
filter: "(?i)美国|USA|UnitedStates|US"
- 区分大小写与贪婪匹配的坑
-
(?i) 的妙用:正则表达式最前面加上
(?i)代表忽略大小写。如果不加,机场节点如果写的是us 01或US 01,而你的正则写的是us,就会漏掉大写的节点。 -
谨防误伤:如果你想过滤“香港”节点,只写
港是很危险的,可能会把“新加坡(Singapore)”里面包含某些奇怪字符的节点也误抓进来。建议使用规范的简写组合:YAML
filter: "(?i)(香港|HK|HongKong|Hong)"
- 当
filter匹配不到任何节点时会发生什么?
-
如果你的正则表达式写错了,导致机场里没有任何一个节点的名称能被它选中,该策略组就会变成空。
-
此时如果有流量打入这个策略组,内核会直接报错或抛出
Proxy group [xxx] has no available proxies(策略组没有可用代理)的致命错误,导致断网。 -
安全建议:在
proxies列表里,除了靠filter自动抓取外,最好手动兜底写一个DIRECT或♻️ 故障切换,防止极端情况下策略组完全瘫痪。
二、 去哪里找主流、高质量的 Clash 分流规则?
如果你想自己添加新的分流(比如想单独分流某个冷门软件或游戏),绝不能随便去网上乱搜。业界公认最权威、更新最勤、生态最完整的 Clash/Surge 分流规则库,首推 blackmatrix7 大佬开源的 iOS Rule Script 项目。
如何在实战中使用它?
点开上面的链接,你会发现里面按各大主流服务商(如 OpenAI、GitHub、Bilibili、Steam 等)分门别类整理好了 .yaml 或 .list 格式的规则文件。
以添加 GitHub 分流为例,你只需要在你的配置文件中这样配置:
- 第一步:在
rule-providers里登记远程链接
YAML
rule-providers:
github:
type: http
behavior: classical
interval: 86400
format: text
url: https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/GitHub/GitHub.list
path: ./ruleset/github.list
-
第二步:在
proxy-groups里建一个对应的专属策略组(或者让它直接走“✈️ 机场专线”) -
第三步:在
rules路由规则里加上一行(注意:必须放在MATCH兜底的前面!)
YAML
rules:
- RULE-SET,github,✈️ 机场专线
- MATCH,🐟 final
通过这种标准的模块化引入方式,你的配置文件不仅体积轻巧(保持在 30KB 左右),而且能够每天自动通过云端同步最新的网址黑白名单,真正实现“一次配置,永久省心”!
📝 总结:小白的 YAML 修改实战演练
现在,当你再次打开一份 mihomo / Clash 配置文件时,你可以自信地进行以下微调:
-
想加个新软件的分流?去网上找个 Surge/Clash 格式的
.list链接,在rule-providers里照葫芦画瓢加一段,然后在rules里写一行- RULE-SET,你的名字,你想走的策略组。 -
想让某个国家的节点自动归类?复制一个
proxy-groups模块,改改name和filter里面的正则表达式即可。
只要守住 “空格缩进、冒号空格、短横线列表、兜底放底部” 这四大金刚法则,你就能轻松驾驭属于自己的个性化网络分流世界!
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
番号搜索:https://limbopro.com/btsearch.html
机场推荐:https://limbopro.com/865.html IEPL专线/150Gb/¥14/月起
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/36100.html · 镜像:https://limbopro.github.io/archives/36100.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!




