Clash 配置文件(Profile)是什么:基础概念与多配置管理方法
Profile 到底装了什么?从订阅链接与本地文件的区别讲起,说明配置更新、合并与多配置切换的基本做法,避免一改就丢的常见问题。
Profile 是什么:一张写满交代事项的方子
先答最常问的一句:Clash 里说的「配置」(Profile)到底是什么?它是一份 YAML 格式的纯文本文件。Clash 启动之后的一举一动——从哪个端口收连接、流量按什么顺序分流、最终交给哪个节点出去——全部照这份文件执行。在 Clash Verge、Clash for Windows 以及各类 mihomo 图形客户端里,「配置」页签下列出的每一条,就是一份独立的 Profile,点击即在多份之间切换生效。
随便打开一份,结构大同小异:一组通用设置,加三段核心内容。
mixed-port: 7890 # 本地代理端口
allow-lan: false # 是否允许局域网设备接入
mode: rule # 分流模式:rule / global / direct
log-level: info
proxies: # 节点清单
- name: "节点A"
type: ss
server: example.com
port: 8388
cipher: aes-128-gcm
password: "your-password"
proxy-groups: # 代理组:把节点编组,供规则调用
- name: 自动选择
type: url-test
proxies: ["节点A", "节点B"]
url: http://www.gstatic.com/generate_204
interval: 300
rules: # 分流规则:从上到下逐条匹配
- DOMAIN-SUFFIX,google.com,自动选择
- GEOIP,CN,DIRECT
- MATCH,自动选择
- proxies:节点清单。每个节点写明协议类型、服务器、端口与凭证,是整份配置的原料。
- proxy-groups:代理组。把节点编成组——手动选择、自动测速(url-test)、故障转移(fallback)——规则只跟组打交道,不直接点名节点。
- rules:分流规则。从上到下逐条匹配,命中哪条就走哪条指定的去向,末尾的 MATCH 负责兜底。
- 通用设置:mixed-port(本地代理端口)、allow-lan(是否允许局域网设备接入)、mode(rule / global / direct 三种模式)、log-level 等;mihomo 内核的配置里还会有 dns、tun 等段落。
一句话记住:proxies 是药材,proxy-groups 是药柜的抽屉,rules 是抓药的先后顺序。三样齐了,方子才煎得出来;缺了 rules,所有流量只走一个组;缺了 proxies,则无药可抓。
订阅链接与本地文件:Profile 的两种来历
按来历分,Profile 只有两种:订阅链接生成的,和本地文件导入的。两者在客户端的配置列表里长得一模一样,脾气却完全不同。分不清楚,是日后一切「改动丢失」的毛病的根源。
| 对比项 | 订阅链接 | 本地文件 |
|---|---|---|
| 来源 | 服务商托管的远程地址 | 自己保存的 YAML 文件 |
| 更新方式 | 客户端手动或定时拉取,整份替换 | 不会自动变化,只能手动编辑 |
| 手工改动 | 更新后被覆盖丢失 | 一直保留 |
| 典型用途 | 服务商分发的节点与规则 | 自写配置、二次加工后的配置 |
订阅链接的本质并不神秘:服务商把一份 YAML 托管在某个网址上,客户端按地址下载,存成配置目录里的一个本地副本。所以订阅配置同样是你硬盘上的一个 .yaml 文件,只是它带一个会定时回去「抄最新版」的机制——这直接引出下一节的症状。
为什么「一改就丢」:订阅更新是整份覆盖
症状:在订阅配置里加了几条规则、改了个端口,当时一切正常;过几天再看,改动全部还原,仿佛没动过手。
病因:更新订阅这个动作,等于按原链接重新下载远端文件,然后整份替换本地副本。客户端不做差异对比,更不会替你保留手工改动。如果设了自动更新间隔(常见 24 或 48 小时),到点即自动覆盖,全程不打招呼。这不是故障,是订阅机制的本分——它的职责就是让你的配置和服务商保持一模一样。
医嘱
凡是来源为订阅链接的配置,一律不要直接在里面改。要改,先按下一节的三条路子选一条,再动手。
保住自定义修改的三条路子
按改动量从小到大,依序抓药:
- 合并 / 覆写机制(首选)。Clash Verge 的「合并(Merge)」处理、Clash for Windows 的 Mixin,思路相同:订阅原文一个字不动,你另写一小段 YAML 补丁,客户端加载配置时把补丁叠上去。订阅更新只换底稿,补丁照常生效。适合改 dns 段、增删几条规则、调端口这类小手术。两点医嘱:补丁里字段名写错会静默失效,改完务必重载配置并翻一眼日志;补丁与原文冲突时的优先级,以各客户端文档为准。
- 复制为本地配置再改。把订阅下载得到的文件另存一份,以本地文件方式导入,从此随意编辑,更新覆盖与你无关。代价是与订阅脱钩:节点增删、规则修订都得自己手动同步回来。适合改动量大、且订阅本身更新不频繁的情形。
- proxy-providers / rule-providers 拆分引用(mihomo 内核)。自建一份本地主配置:节点清单交给 proxy-providers 指向订阅地址,规则集交给 rule-providers 外链。主配置完全由你掌管,订阅只是被引用的药材供应,两边更新互不干扰。
proxy-providers:
我的订阅:
type: http
url: "https://example.com/subscribe.yaml"
interval: 86400
path: ./providers/subscribe.yaml
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
第三条路门槛最高,也最一劳永逸:主配置里只写自己的代理组与规则骨架,节点随订阅自动换新,从此再无「覆盖」一说。
多配置并存:命名、切换与备份
一个人同时备着两三份配置并不稀奇:不同服务商各一份、主备线路各一份、工作与家用分开。多配置的日常管理,抓以下几味:
- 导入即改名。默认名往往是一串看不出所以然的字符,改成「来源 + 用途」的形式,三个月后还认得。
- 统一端口。各份配置里的 mixed-port 保持一致(例如都用 7890)。否则切完配置,系统代理与其他软件里写死的端口会对不上,症状是「切完就没网」。
- 更新间隔别贪短。订阅配置设 24 小时一档即可,拉得太频繁没有收益,只增加改动被覆盖的次数。
- 切换后三查。当前模式是否仍是 rule、系统代理有没有挂上、访问一个境外站点验证链路是否通。切换配置会重建核心,进行中的连接断一下属正常现象。
- 备份两件套。配置目录整个复制一份收好;订阅链接本身单独记下来——链接在手,配置随时能重建,这是最管用的救命药引。
常见症状速查
- 更新订阅后自定义规则消失 → 改用合并覆写或本地副本,方子见第四节。
- 导入订阅提示解析失败 → 链接返回的多半不是 YAML:有些订阅地址要识别客户端标识才返回 Clash 格式,或需先经订阅转换;文件编码异常也会报此类错。
- 切配置时提示端口被占用 → 两份配置的 mixed-port 撞车,或上一个核心进程没退干净,结束残留进程再切。
- 改了配置不生效 → 改完需重载或重启核心;有的客户端保存即重载,有的要手动点一下,别漏这一步。
Profile 的概念到这里就收齐了:一份 YAML、两种来历、一条覆盖铁律、三条保改动的路子。方子开好,照抓即可。客户端本身的获取与首次导入订阅,走下面的入口。