1. 为什么需要脚本扩展与链式代理?
对于追求极致网络定制的高阶玩家,单纯依赖机场提供的默认订阅配置往往面临三大痛点:
- 订阅更新覆盖配置:每次机场更新节点,自己手动改的规则全被冲掉。
- 节点命名混乱:数百个节点混杂在一起,难以快速按国家、倍率和协议分类。
- 特定需求无法满足:例如需要让国内直连极慢的自建纯净 VPS 挂载在优质 IEPL 专线后端出海(链式代理)。
Clash Verge Rev 提供的 Script 扩展系统 和 Relay 链式代理 正是解决这些痛点的终极武器。
+-------------------------------------------------------------------------------+
| 链式代理 (Chain Relay) 拓扑模型 |
+-------------------------------------------------------------------------------+
| [客户端] ──► [第一跳:高速 IEPL 专线节点] ──► [第二跳:纯净原生住宅 VPS] ──► [OpenAI]
| (本地发起) (提供 0 丢包高速传输) (提供 100% 纯净出口 IP) (完美解锁)
+-------------------------------------------------------------------------------+
2. JavaScript 扩展脚本核心原理
在 Clash Verge Rev 中,每个 Profile 在渲染给 Mihomo 核心之前,都会被管道传递给 main(config, profileName) 函数:
/**
* Clash Verge Rev 核心扩展脚本入口
* @param {Object} config - 原始解析后的 YAML 配置对象
* @param {string} profileName - 当前订阅配置名称
* @returns {Object} 修改后的最终配置对象
*/
function main(config, profileName) {
// 对 config 对象进行任意 JavaScript 增删改查
return config;
}
3. 实战:打造自动化分类与过滤的高级脚本
以下是一份可以直接复制使用的生产级 JavaScript 脚本,具备以下强大功能:
- 自动按地区分类节点(香港、日本、新加坡、美国等)。
- 自动剔除高倍率节点(如排除名称中包含 3x, 5x, 10x 的烧流量节点)。
- 注入专属 AI 与流媒体分流策略组。
// clashlab-verge-smart-script.js
function main(config, profileName) {
const proxies = config.proxies || [];
// 1. 过滤掉 3 倍率以上的高消耗节点
const regularProxies = proxies.filter(p => !/(?:[3-9]|\d{2,})x/i.test(p.name));
const proxyNames = regularProxies.map(p => p.name);
// 2. 按国家/地区正则提取节点名称
const getProxiesByRegex = (regex) => proxyNames.filter(name => regex.test(name));
const hkNodes = getProxiesByRegex(/香港|HK|Hong Kong/i);
const jpNodes = getProxiesByRegex(/日本|JP|Japan|东京|大阪/i);
const sgNodes = getProxiesByRegex(/新加坡|SG|Singapore|狮城/i);
const usNodes = getProxiesByRegex(/美国|US|United States/i);
// 3. 构建高度结构化的策略组
const customGroups = [
{
name: '🚀 节点选择',
type: 'select',
proxies: ['♻️ 自动优选', '🇭🇰 香港节点', '🇯🇵 日本节点', '🇸🇬 新加坡节点', '🇺🇸 美国节点', ...proxyNames]
},
{
name: '♻️ 自动优选',
type: 'url-test',
url: 'https://www.gstatic.com/generate_204',
interval: 300,
tolerance: 50,
proxies: proxyNames
},
{
name: '🤖 AI 服务',
type: 'select',
proxies: ['🇺🇸 美国节点', '🇸🇬 新加坡节点', '🇯🇵 日本节点', '🚀 节点选择']
},
{
name: '🎬 国际流媒体',
type: 'select',
proxies: ['🇭🇰 香港节点', '🇸🇬 新加坡节点', '🇯🇵 日本节点', '🚀 节点选择']
},
{
name: '🇭🇰 香港节点',
type: 'select',
proxies: hkNodes.length ? hkNodes : ['DIRECT']
},
{
name: '🇯🇵 日本节点',
type: 'select',
proxies: jpNodes.length ? jpNodes : ['DIRECT']
},
{
name: '🇸🇬 新加坡节点',
type: 'select',
proxies: sgNodes.length ? sgNodes : ['DIRECT']
},
{
name: '🇺🇸 美国节点',
type: 'select',
proxies: usNodes.length ? usNodes : ['DIRECT']
}
];
config['proxy-groups'] = customGroups;
// 4. 追加高优先级前置规则
const priorityRules = [
'DOMAIN-SUFFIX,openai.com,🤖 AI 服务',
'DOMAIN-SUFFIX,anthropic.com,🤖 AI 服务',
'DOMAIN-SUFFIX,claude.ai,🤖 AI 服务',
'GEOSITE,category-ai-chat-!cn,🤖 AI 服务',
'GEOSITE,netflix,🎬 国际流媒体',
'GEOSITE,disney,🎬 国际流媒体',
'GEOSITE,youtube,🎬 国际流媒体',
'GEOIP,CN,DIRECT,no-resolve',
'MATCH,🚀 节点选择'
];
config.rules = [...priorityRules, ...(config.rules || [])];
return config;
}
4. 进阶实战:配置 Relay 多级链式代理
场景诉求
你拥有一台位于美国的低配纯净 VPS(落地出口,解锁极好,但公网直连延迟高且经常丢包),同时你拥有一个延迟极低但 IP 被 OpenAI 屏蔽的香港 IEPL 专线节点。
通过 Relay 策略组,可以让流量先经过香港 IEPL 专线中继,再由香港节点转发至美国 VPS:
# Merge 扩展配置示例
proxies:
# 自建美国纯净落地节点
- name: "🇺🇸 自建纯净 VPS"
type: ss
server: "us-vps.example.com"
port: 8388
cipher: "aes-256-gcm"
password: "YourPassword"
proxy-groups:
# 创建 Relay 链式代理策略组
- name: "🔗 链式加速-美国AI"
type: relay
proxies:
- "🇭🇰 香港 IEPL 专线" # 第一跳:国内低延迟专线中转
- "🇺🇸 自建纯净 VPS" # 第二跳:终点落地出口
rules:
- DOMAIN-SUFFIX,chatgpt.com,🔗 链式加速-美国AI
- DOMAIN-SUFFIX,claude.ai,🔗 链式加速-美国AI
5. 调试与排错技巧
- 利用
console.log打印日志:在 Script 脚本中可以随时调用console.log('Total Proxies:', proxies.length);,并在 Clash Verge 的「控制台 (Logs)」中实时查看输出。 - 检查数据类型:确保
config.rules是数组对象,属性名遵循 YAML 的 kebab-case 规范(如proxy-groups、auto-detect-interface)。 - 备份原配置:在修改复杂脚本前,建议右键导出 Profile 备份。
6. 结语
通过 JavaScript 扩展脚本与 Relay 链式代理,你能够将静态的节点列表转化为智能化、自动化、动态容灾的企业级网络分流系统,充分释放 Clash Verge Rev 的全部潜能。
本文基于实验室特定硬件环境及网络拓扑进行客观记录与测试,网络指标会随地域运营商、骨干网 QoS 波动而变化。所有内容仅供技术探索与合规网络研究。
需要稳定低延迟的 2026 优质跨境网络支持?
ClashLab 实验室针对全球 30+ 主流机场进行多轮 20:00-23:00 晚高峰吞吐与抗丢包实测,严选真 IPLC 专线与多线 BGP 容灾节点。