Clash Verge Rev 使用 Script 自定义代理组
Clash Verge Rev 使用 Script 自定义代理组

前言
很多机场都会提供一个默认的 自动选择(url-test) 策略组。
但它通常会将所有节点(香港、日本、新加坡、美国等)一起参与测速。
对于有明确需求的用户来说,这并不理想。
例如:
- 只希望使用日本节点
- 只希望使用新加坡节点
- 日本 + 澳大利亚自动选择
- 排除香港节点
- 自定义测速间隔
如果直接修改订阅文件,每次更新订阅都会被覆盖,因此并不可取。
最开始尝试过 编辑代理组(Merge) 的方式,但对于修改已有策略组的支持有限。最终发现 全局扩展脚本(Script) 才是最灵活、也是最推荐的方案。
为什么使用 Script?
Clash Verge Rev 在每次更新订阅后,会经历大致如下流程:
1 | 机场订阅 |
Script 的作用就是:
在配置加载到内核之前,对整个配置对象进行修改。
因此:
- 不需要修改机场订阅
- 更新订阅不会丢失
- 可以自由修改策略组、节点、DNS、规则等内容
它更像是一个配置后处理器(Post Processor)。
Script 能做什么?
Script 可以访问整个配置对象。
例如:
1 | function main(config, profileName) { |
其中:
config:整个 Clash 配置对象(所有代理组、规则、DNS 等)profileName:当前订阅名称
例如:
使用优惠码
ABING888,可以减免一些费用
因此可以针对不同订阅执行不同逻辑。
1 | 机场A |
示例:仅修改指定机场

例如:
1 | function main(config, profileName) { |
这样脚本仅会作用于 红杏云 这一份订阅,不会影响其它机场。
示例:自动选择仅保留新加坡节点
机场默认:
1 | 自动选择 |
修改后:
1 | function main(config, profileName) { |
最终:
1 | 自动选择 |
测速也改成:
- 300 秒
- 容忍值 50ms
- Lazy 模式
而无需修改机场订阅。
更多玩法
由于 Script 可以直接修改整个配置,因此可以实现很多自定义功能。
日本 + 新加坡自动选择
1 | const re = /(日本|JP|Japan|新加坡|SG|Singapore)/i; |
排除香港节点
1 | group.proxies = group.proxies.filter( |
修改测速间隔
1 | group.interval = 300; |
修改故障转移策略组
1 | const fallback = config["proxy-groups"]?.find( |
为什么推荐 Script?
相比直接修改订阅文件:
- 更新订阅不会丢失修改
- 不依赖机场后台是否支持节点过滤
- 不影响其它机场订阅
- 可以编写任意 JavaScript 逻辑
- 可维护性高,后续扩展方便
对于需要长期维护 Clash Verge Rev 配置的用户来说,Script 比直接修改 YAML 更灵活,也更适合作为个性化配置的统一入口。
Comments