Clash Verge Rev 自定义分流规则详细教程
当机场订阅默认分流规则不满足需求时,我们可以通过clash verge rev提供的Script全局脚本配置来自定义分流规则。
通过Script全局脚本方式添加的规则不受机场订阅更新影响,长期生效。
前置条件
👉本教程基于Clash Verge Rev 2.2.4
版本测试,不保证向下版本兼容。
(查看当前版本方法:打开软件首页,左侧点击【设置】,然后拖到最下方,找到Clash Verge版本)
最新客户端下载地址:Clash Verge Rev 下载页
官方github:Clash Verge Rev Github
👉您已对Clash分流规则语法有基本掌握,了解常见分流规则类型。可通过这篇 分流规则语法详细教程 教程快速入门。
了解Script全局脚本配置
Script 脚本配置通过 JavaScript 脚本动态修改 Clash 配置,适合需要复杂逻辑或动态规则的用户。
Script全局脚本的位置
在Clash Verge Rev左侧点击【订阅】,找到【全局扩展脚本】,然后右键编辑文件
Script全局脚本的语法
脚本需定义 main 函数,签名为 main(config, profileName)
,接收 Clash 配置对象 config
和订阅名称 profileName
,返回修改后的配置。 操作 config.rules
数组以添加或修改规则。
以下是默认脚本,不改变原始规则
以下是一个测试脚本,脚本内容是在规则列表开头
添加 baidu.com
直连和 google.com
代理规则。
我们可在prependRule
数组中维护自己的规则,这个规则会首先加到规则列表头部,因此会首先匹配到,保证生效。
👉Script示例脚本:
const prependRule = [
"DOMAIN-SUFFIX,baidu.com,DIRECT",
"DOMAIN-SUFFIX,google.com,节点选择"
];
function main(config, profileName) {
let oldRules = config.rules || [];
config.rules = prependRule.concat(oldRules);
return config;
}
示例 1:设置局域网 IP、内部系统 IP 直连
为避免局域网 IP 、单位内部系统 IP 被代理,需设置直连规则,确保访问速度和安全性。
以下脚本将局域网 IP 段(192.168.0.0/16
、10.0.0.0/8
、172.16.0.0/12
)和单位内部系统 IP 段(202.96.19.0
)设置为直连。
const prependRule = [
"IP-CIDR,192.168.0.0/16,DIRECT",
"IP-CIDR,10.0.0.0/8,DIRECT",
"IP-CIDR,172.16.0.0/12,DIRECT",
"IP-CIDR,202.96.19.0/24,DIRECT"
];
function main(config, profileName) {
let oldRules = config.rules || [];
config.rules = prependRule.concat(oldRules);
return config;
}
示例2:设置adobe域名直连
adobe 产品(如 Photoshop、Premiere 等)走代理可能会出现在某些地区可能因代理导致激活或更新失败,出现非正版弹窗。
为以避免代理导致的非正版验证弹窗(如 "This non-genuine Adobe app has been disabled"),我们需要让adobe相关域名全部直连。
const prependRule = [
"DOMAIN-SUFFIX,adobe.io,DIRECT",
"DOMAIN-SUFFIX,adobe.com,DIRECT",
"DOMAIN-SUFFIX,adobelogin.com,DIRECT",
"DOMAIN-SUFFIX,adobecc.com,DIRECT"
];
function main(config, profileName) {
let oldRules = config.rules || [];
config.rules = prependRule.concat(oldRules);
return config;
}
示例3:steam下载直连,避免消耗机场套餐流量
Steam 下载流量较大,若通过代理可能快速消耗机场套餐流量。以下脚本将 Steam 下载相关域名设置为直连,节省代理流量。
const prependRule = [
"DOMAIN-KEYWORD,steampipe,DIRECT",
"DOMAIN-KEYWORD,steamstatic,DIRECT",
"DOMAIN-KEYWORD,steamserver,DIRECT",
"DOMAIN-KEYWORD,steampowered,DIRECT",
"DOMAIN-KEYWORD,steamcdn,DIRECT"
];
function main(config, profileName) {
let oldRules = config.rules || [];
config.rules = prependRule.concat(oldRules);
return config;
}
注意
请确保clash选择的分流规则是规则
模式,而不是全局
模式。分流规则仅对规则模式生效!