一、Profile、订阅与运行配置的关系

Clash 客户端里的 Profile,通常指一份可保存、选择并交给内核加载的配置记录。它可能来自订阅地址,也可能来自本地 YAML 文件。列表里有三张配置卡片,不等于三个代理同时启用;常见桌面客户端同一时刻只选择一份主配置,再叠加客户端设置和覆写,生成交给内核的运行配置。

本文以 Clash Verge Rev 一类使用 mihomo 内核的桌面客户端为操作参照。不同客户端可能把入口写成「订阅」「配置」或「Profiles」;下文会同时说明应找的功能。旧 Clash 内核与 mihomo 支持的字段并不完全相同,不能只看文件扩展名是 .yaml 就认定可以通用。

对象保存的内容更新方式
远程 Profile订阅地址、下载的配置及客户端记录手动拉取或定时拉取
本地 Profile手动创建或导入的 YAML自行编辑,外部文件是否同步取决于客户端
覆写配置对基础配置追加或修改的字段、规则由客户端合并功能或脚本处理
运行配置实际提交给内核的最终结果选择配置、应用设置或重载时生成

订阅也有内容类型之分:有的返回完整配置,有的只返回节点信息。完整配置通常包含代理、代理组和规则;只含节点的数据可能需要通过客户端支持的转换方式或 proxy-providers 接入,不能直接当作完整 Profile 使用。不要把带令牌的订阅地址提交给不可信的在线转换服务。

二、导入两份订阅,先命名再启用

管理多份配置时,首先解决的是识别问题。仅用「订阅 1」「订阅 2」命名,过一段时间很难判断哪份可以编辑、哪份会被远程更新。建议把用途、来源代号和配置类型分开记录,显示名称不要包含访问令牌、邮箱或完整订阅地址。

建立可辨认的配置记录

  1. 打开左侧「订阅」或「Profiles」,找到订阅链接输入框,粘贴服务方提供的 Clash 兼容地址,点击「导入」。等待配置卡片出现,不要把粘贴成功当作下载成功。
  2. 打开卡片的右键菜单或更多菜单,进入「编辑信息」一类入口,将名称改为「日常-A-远程」。确认记录中仍保留正确的远程地址,再保存。
  3. 用相同方法导入第二份,命名为「备用-B-远程」。如果导入时报格式错误,先确认返回内容是 YAML,而不是网页登录页或过期提示。
  4. 点击「日常-A-远程」卡片。看到选中标记后,进入「代理」页面,确认出现了这份配置定义的代理组和节点。

上述名称只是客户端显示名,不会自动改写 YAML 中代理组的 name。如果规则指向名为 PROXY 的代理组,单独把组名改成「日常代理」却没有同步修改引用,可能导致配置加载失败。初次整理时只改卡片名称,暂时保留内部组名。

三、多订阅切换后,按四项验证生效

从 A 切到 B,改变的不只是节点列表。DNS、规则、代理组名称、监听端口和 TUN 相关字段也可能随主配置变化;但客户端全局设置又可能覆盖其中一部分。因此,不能只凭「节点名称变了」判断整个配置已经按预期运行。

  1. 看加载结果:选择 B 后打开「日志」,查看是否出现配置解析或代理组引用错误。若新配置加载失败,内核可能继续保留旧配置,也可能停止服务,具体取决于客户端处理方式。
  2. 看代理模式:在主页确认当前是 Rule、Global 还是 Direct。准备验证分流时选择 Rule;Global 会让流量走全局策略,不能用于证明规则顺序正确。
  3. 看实际出口:进入「代理」,为 B 的主要代理组选择一个可用节点,再打开测试网页。若 B 的组名与 A 不同,之前保存的节点选择未必能够沿用。
  4. 看新连接记录:进入「连接」,对照新请求命中的规则与代理链。长连接可能仍沿用原出口,先关闭测试网页再重新打开;必要时只断开对应测试连接。

端口变化为什么会造成“切换后断网”

假设应用手动填写了本地 HTTP 代理 127.0.0.1:7890,而 B 的有效监听端口变成 7897,应用仍向旧端口发送请求就会失败。这两个数字是排查示例,不是所有客户端的默认值。请在客户端「设置」中的端口设置处读取当前值,再到应用的代理设置中逐项对照。

系统代理、TUN 和 Profile 是三个不同层面:Profile 提供内核运行所需的配置,系统代理影响遵循系统代理设置的应用,TUN 则负责接管符合路由条件的流量。选中一份配置,不代表系统代理或 TUN 已自动开启。

四、自动更新间隔:区分订阅更新与节点健康检查

远程 Profile 的定时更新由客户端管理,通常可以在配置卡片的「编辑信息」中找到「更新间隔」或「自动更新」。先确认输入框旁的单位,再填写数值。若单位是分钟,填 720 表示每 12 小时;若单位是秒,同样的 12 小时应填 43200。不要仅凭其他客户端的截图照填。

  • 日常配置:可以从每 24 小时一次开始;若界面单位是分钟,对应 1440。服务方有明确频率建议时以其要求为准。
  • 备用配置:也要定期更新,避免真正切换时才发现地址过期。更新后检查节点数量及一次实际连接。
  • 本地配置:不具备远程来源时,无须设置订阅拉取间隔;不要为了出现自动更新按钮而随意填入其他地址。

客户端退出后通常不会继续执行其内部定时任务;电脑休眠期间也不应期待准点拉取。客户端恢复运行后是否立即补更,取决于实现。需要出门使用备用配置时,提前打开卡片菜单点击「更新」,确认成功时间,再完成一次连接测试更可靠。

不要混淆三个 interval

Profile 更新间隔属于客户端记录;YAML 中 proxy-providers 下的 interval 控制对应远程节点资源的更新;health-check.interval 控制健康检查频率。在 mihomo 的这些 provider 字段中,间隔以秒计。把健康检查改成 300 秒,只是改变探测频率,不会让主订阅每五分钟重新下载。

五、本地 YAML:适合保留快照,不会自动跟随订阅

本地 Profile 适合实验规则、保留故障前的配置,或者管理自行维护的完整配置。常见导入流程是「订阅」→「新建」或「导入文件」,选择本地 YAML 后保存为「实验-规则-本地」。有的客户端会把文件复制到自己的数据目录,并不会持续读取原文件;导入后在外部编辑原文件,不一定会影响这张卡片。

建立本地副本的操作顺序

  1. 在远程卡片菜单中寻找「编辑文件」或「打开文件」,复制已下载的基础配置;也可以使用客户端提供的导出功能。
  2. 将副本保存到受保护的本地目录,再通过文件导入功能新增一张卡片,不要覆盖原来的远程记录。
  3. 只修改一个目标项,保存后选中本地卡片,检查日志。确认成功后再改下一项。
  4. 保留可回退的远程卡片。实验失败时切回它,再确认代理模式、代理组选择和新连接记录。

下面是用于识别字段的基础片段,不是可直接替换订阅的完整代理配置。其中最后一条规则把所有剩余请求交给直连;它没有提供任何代理节点。测试规则时必须先理解这一结果,不能把它当作连接修复方案。

mixed-port: 7890
mode: rule
log-level: info

rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - MATCH,DIRECT

YAML 缩进使用空格,不要用 Tab;同级字段保持相同缩进。编辑现有文件时不要重复添加第二个顶层 rules 或 dns 键,重复键可能被拒绝或导致内容被覆盖。保存文件前,优先使用客户端的配置检查功能。

本地副本中的节点凭据仍可能失效,复制一次不代表以后无需更新。若目标是“节点继续自动更新,但个人规则长期保留”,应该使用覆写或 provider 结构,而不是长期依赖冻结的订阅副本。

六、覆写不被订阅冲掉:把来源与个人修改分开

直接编辑远程订阅下载得到的 YAML,下一次拉取时很可能被新内容替换。更稳妥的结构是:远程 Profile 保留服务方内容,个人规则保存在客户端的覆写、合并或脚本配置里。客户端每次生成运行配置时,再按自己的处理顺序叠加这些修改。

在支持该功能的客户端中,从「订阅」页寻找「全局扩展配置」「全局扩展脚本」,或在单张卡片菜单寻找「扩展配置」。不同版本的名称与作用域有区别:全局项可能影响所有 Profile,单配置扩展通常只绑定对应记录。先在实验副本中确认作用范围,再用于日常配置。

先确认合并规则,再添加分流规则

  • 映射项:修改某个 DNS 子字段时,要确认客户端是递归合并还是整段替换,避免丢失原有解析设置。
  • 列表项:rules、proxies、proxy-groups 都包含列表。普通 YAML 片段并不天然具备“追加”含义,具体行为由客户端决定。
  • 规则位置:Clash 规则按顺序匹配,个人规则一般需要放在兜底 MATCH 前。追加到 MATCH 后面通常不会获得匹配机会。
  • 策略引用:全局覆写若引用只存在于 A 的代理组,切换到 B 后可能加载失败。跨配置复用前,统一约定组名,或改为分别绑定扩展。

例如,需要让 example.com 及其子域直连时,规则本身可以写作 DOMAIN-SUFFIX,example.com,DIRECT。这只说明规则语法;应使用当前客户端明确支持的“前置规则”入口,或按其扩展脚本接口插入,不能假定所有客户端都接受相同的 prepend-rules 字段。

用一次更新验证持久性

  1. 保存覆写并应用配置,在最终运行配置中搜索目标域名,确认只出现预期次数,且位于兜底规则之前。
  2. 重新发起该域名的请求,在「连接」中检查是否命中目标规则和 DIRECT 策略。
  3. 手动更新远程 Profile,等待配置重新加载,再重复前两项。
  4. 切换到备用 Profile,确认全局覆写不会引用缺失的代理组;若出现错误,将它改为单配置绑定。

只有“更新后仍存在、请求确实命中、切换后不报错”三项都成立,才算完成了持久化配置。查看基础订阅文件时看不到个人规则,不一定是丢失;覆写可能只存在于最终运行配置中。

七、备份与恢复:保留能重新启用的最小集合

备份不能只保存一张代理页截图。建议保留配置显示名、远程地址、个人覆写、必要的本地 YAML,以及当前端口和模式记录。若使用 proxy-providers、rule-providers 或相对文件路径,还要确认依赖资源能重新获取,或一并保留对应文件。

现象优先检查恢复动作
更新后自定义规则消失是否直接修改了远程文件从备份取回规则,迁移到独立覆写
切换后提示代理组不存在全局覆写中的策略名称停用相关覆写,改用单配置扩展
配置选中但应用无法联网监听端口、系统代理、TUN 状态按有效端口重设应用代理,再测试新连接
本地文件修改后没有变化导入是否复制了文件编辑客户端实际使用的副本并重新应用

订阅地址和配置文件可能包含可直接使用的访问凭据。不要放入公开代码仓库;向他人提供排障内容时,移除订阅令牌、节点密码和私钥,截图中也要遮住完整地址。迁移到新设备后,先导入一份已知可用的配置完成连接,再恢复覆写,最后开启定时更新,便于定位每一步的问题。

若还需要梳理订阅导入、规则与 TUN 的关系,可以继续阅读Clash 配置手册;首次安装后的操作顺序见使用文档。