配置管理

跨端配置一致性:桌面与移动端 Profile 对比调优

2024年11月15日 约12分钟 Profile 管理

桌面端调好的配置,搬到手机端经常行为不一致:有的规则集不生效、有的组切不了、 有的 TUN 开关对不上。这篇从 Profile 结构入手,讲跨端差异的来源,以及用 override 和版本管理实现「一份配置,多端一致」。

Profile 的三层结构

proxies:      # 节点定义
proxy-groups: # 策略组(选择/负载均衡/自动)
rules:        # 分流规则(自上而下匹配)

三层可以独立更新:订阅只动 proxies,override 只动 groups 与 rules。 保持三者分离,是跨端一致性的前提。

跨端差异的主要来源

差异点 原因 对策
规则集路径 本地路径移动端不存在 全部改用 URL 规则集
DNS 配置 移动网络下 DoH 可达性不同 fallback 配多组 DoH
进程规则 PROCESS-NAME 仅桌面有效 用域名规则替代进程规则
TUN 参数 移动端 TUN 栈实现不同 关键差异用 override 覆盖

用 override 实现端侧差异

# 主 Profile 保持通用;手机端加一个 override 覆盖 DNS 与 TUN
dns:
  enhanced-mode: fake-ip
  fallback:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query
tun:
  enable: true
  stack: gvisor

主 Profile 永远只含「两端都成立」的内容,端侧差异全部下沉到 override。 这样更新订阅不会冲掉本地调优。

用 Git 管理 Profile

# 把主 Profile 与各端 override 放进仓库
git init
git add clash-base.yaml override-ios.yaml override-win.yaml
git commit -m "feat: 拆分端侧差异"

# 每次改动前先 diff 再提交,避免悄悄改坏配置
git diff

Git 的价值在可追溯:规则改动引发问题,可以快速回滚到上一版本,而不是靠记忆重写。

校验工具

结论

跨端一致性的核心是「分层」:订阅管节点、主 Profile 管通用、override 管端差、 Git 管历史。分层清晰后,多端维护成本从「维护 N 份配置」降为「维护 1 份 + N 个补丁」。

相关阅读