视频加载失败

Clash Verge Rev 扩展脚本实战 JavaScript 预处理与 Merge 规则动态注入指南

1838 字
9 分钟
Clash Verge Rev 扩展脚本实战 JavaScript 预处理与 Merge 规则动态注入指南

很多从旧版 Clash for Windows 迁移到 Clash Verge Rev 的用户,最常遇到的困扰就是如何保留自己的个性化配置。每当机场节点发生变动、用户在客户端点击更新订阅时,远程下发的新文件就会无情冲掉本地手工添加的自定义分流规则、特别策略组以及特定端口设置。如果每次更新后都要重新手工复制粘贴一遍代码,维护成本极其高昂。

Clash Verge Rev 提供了极为强大的扩展配置体系。通过 Merge(合并)与 Script(脚本)两大特性,用户可以在外部订阅落地后、内核正式加载前,挂载一层无损的动态拦截器。无论上游机场如何高频更新,你预设的策略组与规则链条都会像乐高积木一样自动拼接在正确位置。

Merge 合并与 Script 脚本的选型边界#

在 Verge Rev 中,扩展功能分为基于 YAML 结构的 Merge 合并模式,以及基于完整 JavaScript 运行时的 Script 脚本模式。

Verge Rev 动态配置处理管道
[远程机场原始订阅]
┌────────────────────────────────────────────────────────┐
│ 1. 订阅拉取与本地缓存 (Raw Profile) │
└───────────────────────┬────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ 2. 执行预处理扩展 (Merge 合并覆写 / Script JS 逻辑编程) │
│ - 动态插入 ChatGPT 专属策略组 │
│ - 顶部强制置顶本地内网直连规则 │
│ - 正则筛选或剔除不可靠垃圾节点 │
└───────────────────────┬────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ 3. 产出最终运行配置 (Runtime Config) 供内核消费启动 │
└────────────────────────────────────────────────────────┘

如果仅仅需要向配置中简单追加几个静态字段,例如调整本地监听端口 mixed-port: 7890,或者开启 DNS 的 Fake-IP 模式,使用语法直观的 Merge 模式即可轻松搞定。

如果需要遍历节点列表、根据特定地区关键字批量筛选节点、将不同机场的节点按倍率动态分派至不同的新建策略组,或者需要执行条件判断与数组切片,功能完备的 JavaScript Script 模式则是不可替代的最佳选择。

基于 JavaScript 的 Script 扩展实战范式#

Verge Rev 内置了一个轻量安全的 JavaScript 虚拟机。用户编写的每一个脚本文件,都必须导出一个接收 config 参数并返回修改后 configmain 入口函数。

在客户端界面左侧导航栏点击订阅管理,右键点击目标订阅卡片,选择编辑扩展配置,随后在代码编辑区录入脚本。

生产级自定义策略组注入脚本#

以下展示一段经受过实战检验的完整 JavaScript 扩展脚本。它的功能是在任何机场配置中无缝插入 AI 业务策略组,并将符合特定名称的节点自动归类。

// Verge Rev 生产级扩展脚本蓝本
function main(config) {
// 1. 提取原始订阅中的所有代理节点名称
const proxies = config.proxies || [];
const proxyNames = proxies.map(p => p.name);
// 2. 筛选出优质低延迟区域节点作为 AI 备选
const aiCandidateNames = proxyNames.filter(name => {
return /美国|US|United States|日本|JP|Japan|新加坡|SG|Singapore/i.test(name);
});
// 如果没有匹配到合适节点,则回退至所有节点兜底
const targetAiNodes = aiCandidateNames.length > 0 ? aiCandidateNames : proxyNames;
// 3. 构建专属 AI 服务策略组
const aiGroup = {
name: "🤖 AI 国际服务",
type: "select",
proxies: ["⚡ 自动优选", "🎯 全球直连", ...targetAiNodes]
};
// 4. 构建前置高容差自动选优策略组
const autoGroup = {
name: "⚡ 自动优选",
type: "url-test",
url: "http://cp.cloudflare.com/generate_204",
interval: 300,
tolerance: 50,
lazy: true,
proxies: targetAiNodes
};
// 5. 将新策略组注入现有 proxy-groups 列表顶部
config['proxy-groups'] = [aiGroup, autoGroup, ...(config['proxy-groups'] || [])];
// 6. 顶部优先插入精准分流规则
const priorityRules = [
"DOMAIN-SUFFIX,openai.com,🤖 AI 国际服务",
"DOMAIN-SUFFIX,chatgpt.com,🤖 AI 国际服务",
"DOMAIN-SUFFIX,anthropic.com,🤖 AI 国际服务",
"DOMAIN-SUFFIX,claude.ai,🤖 AI 国际服务",
"IP-CIDR,192.168.0.0/16,DIRECT,no-resolve"
];
config.rules = [...priorityRules, ...(config.rules || [])];
// 返回修改后的完整配置对象
return config;
}

脚本核心执行逻辑透析#

在该脚本中,config.proxies 首先被解析为纯内存数组。通过 Javascript 标准的 filter 配合正则表达式,瞬间提取出名称中包含美国、日本与新加坡的节点标签。

构建完成的 🤖 AI 国际服务⚡ 自动优选 被解构并插入在 proxy-groups 数组的最前端,确保用户打开客户端时第一时间在界面顶部看到这些分组。

在分流规则维度,将 OpenAI 与 Claude 的域名路由通过解构赋值无缝置于 rules 列表最上方。这完美利用了 Clash 自顶向下的短路匹配机制,杜绝了下游默认规则的误判干扰。

Merge 模式轻量级配置覆写实战#

如果不想编写 JavaScript 代码,仅希望覆盖或增补部分基础键值,可以在扩展配置中选择 Merge 格式。

# Merge 覆写示范
prepend-rules:
- DOMAIN-SUFFIX,github.com,🚀 节点选择
- DOMAIN-KEYWORD,google,🚀 节点选择
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
mixed-port: 7890
allow-lan: true
log-level: info
tun:
enable: true
stack: mixed
dns-hijack:
- any:53

在 Merge 语法中,prepend-rules 关键字允许用户向原有的规则列表顶端前置添加规则,而不会抹掉订阅自带的其他数百条常规规则;mixed-portallow-lan 则能强行锁定本地端口与局域网共享行为。

运行期配置预览与语法排障指南#

脚本编写完成后,如何验证它是否真正生效并正确输出了预期的 YAML 结构。

技巧一 善用 Diff 差异比对窗口#

在 Verge Rev 订阅卡片下方,点击右侧的三个点菜单,选择查看运行时配置(View Runtime Config)。

客户端会并排弹出一个高亮代码视窗。左侧展示从机场服务器直接下载的纯原始文件,右侧展示经过扩展脚本处理加工后的实际交付运行文件。通过直观的色块差异,能够一眼看出自定义策略组是否成功插入、首行规则是否准确置顶。

技巧二 捕获 JavaScript 运行时异常#

如果脚本中存在语法错误(例如变量未声明、拼写失误或试图读取 undefined 属性),Verge Rev 在点击保存或刷新订阅时会弹出明确的红色气泡提示。

脚本排查日志范例
TypeError: Cannot read properties of undefined (reading 'map')

遇到此类提示时,检查原始订阅中是否存在 proxies 字段。某些机场在节点维护期间可能下发空文件,因此在脚本中养成使用可选链(?.)或空数组兜底(config.proxies || [])的防守型编程习惯至关重要。

多脚本链式调用编排逻辑#

对于复杂的高级玩家,Verge Rev 还支持同时挂载多个独立的扩展脚本。系统会按照勾选顺序从上到下像流水线一样依次执行。

通常的编排规范是把清洗剔除垃圾节点的脚本放在首位,把重命名与打标签的脚本放在第二位,最后挂载注入策略组与高级分流规则的业务脚本。清晰的单一职责划分能让未来的脚本维护变得极度从容。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Clash Verge Rev 扩展脚本实战 JavaScript 预处理与 Merge 规则动态注入指南
https://clashjichang.run/posts/clash-verge-rev-advanced-scripts/
作者
Clash机机
发布于
2026-04-13
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Clash Verge Rev 内存泄漏与高 CPU 占用排查修复 WebView2 渲染优化与日志治理指南
Clash客户端深度剖析 Clash Verge Rev 长期挂机运行后内存狂飙突破 1GB 与 CPU 异常占满的根源。从 WebView2 渲染加速调优、内核日志级别收敛到 P2P 活跃连接治理,全方位复原丝滑轻盈的运行状态。
2
Clash Verge Rev 客户端安装、内核切换与分流规则全景实操手册
Clash客户端全面解析新一代主流开源代理客户端 Clash Verge Rev 的跨平台架构。涵盖 Windows 与 macOS 安装包选型、Mihomo 现代内核切换、TUN 虚拟网卡底层接管、系统代理与规则覆写实战及常见故障急救。
3
从 Clash 平滑迁移至 Sing-Box 客户端 核心概念对照规则集转换与混合部署实战
Clash客户端深度解析从 Clash 生态平滑迁移至 Sing-Box 全能核心的实战指南。系统对比 Inbound/Outbound 模型、JSON 路由编排与 SRS 二进制规则集,破解迁移过程中的语法断层。
4
Clash for Android 衍生版与替代客户端选型实战 后台保活电池白名单与应用分流指南
Clash客户端详尽梳理后 CFA 时代安卓科学上网客户端生态。深入拆解 Flclash、CMFA 与 Surfboard 核心差异,彻底攻克国产定制系统后台休眠杀进程、网银应用冲突与耗电异常难题。
5
Clash Verge Rev与Clash Nyanpasu与Mihomo Party横向测评 2026全平台客户端选型
机场对比基于Mihomo内核的新一代GUI客户端百花齐放。本文从内存占用、扩展脚本编写、界面交互设计以及多平台兼容性出发,深度横向测评三大顶流开源客户端的优缺点与选型指南。
随机文章随机推荐
Profile Image of the Author
Clash机机
专注 Clash 客户端指南、订阅节点配置与机场网络评测
2026 网络测速通报
欢迎访问 Clash机机!2026 全球机场测速数据库与专线选路指南已全面更新,全天候监控 18 家主流商业机场运行状态与晚高峰丢包。
分类
标签
最新动态
站点统计
文章
98
分类
10
标签
338
总字数
258,151
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录