Skip to content

自定义配置与覆写 (Override / Mixin):兼顾节点自动更新与私有规则

核心导读:很多进阶玩家都会遇到这个痛苦的矛盾:
“我想加几条自己公司的特定域名分流规则,或者换一套更干净的 DNS。但如果我直接修改下载下来的配置文件,一旦点击‘更新订阅’,机场的新文件就会瞬间把我辛辛苦苦写的自定义规则全部覆盖冲掉!
优雅解决这个痛点的神技,就是 “配置覆写 (Override / Mixin / 扩展脚本)”
本文手把手教你如何编写解耦的覆写逻辑,实现“节点天天自动更新,我的私有规则雷打不动”。


一、为什么传统手动修改配置注定失败?

在现代翻墙架构中,机场订阅与本地私有规则的关系如下:

mermaid
graph TD
    subgraph 错误做法:直接修改订阅文件(死循环)
        Sub1["机场服务器下发 config.yaml"] --> Edit1["用户手动添加自定义规则"]
        Edit1 --> Update1["三天后点击‘更新订阅’"]
        Update1 --> Overwrite1["🛑 机场全新文件直接覆盖本地!自定义修改瞬间归零!"]
    end

    subgraph 正确姿势:运行时动态覆写注入(解耦共存)
        Sub2["机场订阅配置 (动态节点数据源)"] --> Engine["客户端内核加载管道"]
        MyCode["用户的独立私有覆写层<br/>(Mixin / JavaScript 脚本)"] --> Engine
        Engine --> Final["合并生成最终运行态配置 (Run-time Config)<br/>✅ 节点最新 + 私有规则永不丢失!"]
    end

覆写机制的核心逻辑是:将“订阅文件”作为纯粹的只读数据源,在客户端启动或更新配置的瞬间,通过代码逻辑动态将你自己的规则“注入”进去


二、Clash Verge Rev 覆写实战(基于 YAML Merge 方式)

这是最简单、最不易出错的方式,适合给配置追加特定端口或特定策略。

实操步骤:

  1. 打开 Clash Verge Rev,点击左侧菜单栏 “订阅 (Profiles)”
  2. 在右上角点击 “新建 (New)” -> 类型选择 “Merge (合并配置)”
  3. 名称填入 我的私有规则补丁
  4. 右键点击新建的卡片,选择 “编辑 (Edit)”,在编辑器中粘贴以下 YAML 片段:
yaml
# 在此写入你想强制锁定的私有配置
prepend-rules:
  # 强制让公司内部域名走特定节点
  - DOMAIN-SUFFIX,mycompany.com,🚀 节点选择
  # 强制拦截某流氓软件
  - DOMAIN-SUFFIX,adtracker.com,REJECT

# 强制开启本地局域网共享与统一外部控制端口
mixed-port: 7890
allow-lan: true
log-level: info
  1. 保存文件,右键该 Merge 卡片,勾选 “启用 (Enable)”
  2. 此时无论你如何刷新机场订阅,你定义的规则都会永远置顶生效!

三、进阶:基于 JavaScript (Script) 动态编程覆写

如果你使用的是复杂规则,或者需要动态过滤节点(例如只保留名字带“专线”的节点),可以使用 JavaScript 扩展脚本

在 Clash Verge Rev 中新建一个类型为 “Script” 的扩展文件,内容如下:

javascript
// main 函数接收从机场拉取的 raw config,返回修改后的 config
function main(config) {
  // 1. 在规则列表的最顶部,插入自己的私有规则
  const customRules = [
    "DOMAIN-SUFFIX,cursor.sh,🚀 节点选择",
    "DOMAIN-SUFFIX,github.com,🚀 节点选择"
  ];
  config.rules = [...customRules, ...config.rules];

  // 2. 动态过滤:剔除所有倍率大于 2.0x 的高消费节点
  config.proxies = config.proxies.filter(proxy => {
    return !proxy.name.includes("3.0x") && !proxy.name.includes("5.0x");
  });

  // 3. 强制覆盖 DNS 为最高性能 Fake-IP 模式
  config.dns = {
    enable: true,
    ipv6: false,
    "enhanced-mode": "fake-ip",
    "fake-ip-range": "198.18.0.1/16",
    nameserver: [
      "https://223.5.5.5/dns-query",
      "https://1.1.1.1/dns-query"
    ]
  };

  return config;
}
  • 威力展示:这段几行的小脚本,不仅自动将 Cursor 和 GitHub 的访问优先级拉到最高,还顺手帮你在内存中把所有扣费超过 2 倍的坑爹高倍率节点自动屏蔽过滤,彻底杜绝误选偷跑流量!

🧭 延伸阅读与下一步指引

掌握了配置覆写技术后,最后来看如何将规则精细化控制到具体的操作系统应用进程:

本站所有评测数据均基于独立实测与客观网络遥测。