Clash Verge Rev 四种代理模式详解 | Rule/Global/Direct/Script

博客资讯 204 2026-9-30

打开 Clash Verge Rev 的“代理”页面,右上角有四个选项:规则、全局、直连、脚本。新手最常问的问题就是“我该选哪个”。选错了不会把软件弄坏,但会出现“明明开着代理却打不开国外网站”或者“访问国内网站反而变慢了”的情况。这篇教程针对 Clash Verge Rev 四种代理模式 展开,把它们各自做什么、什么时候用、出了问题怎么排查讲清楚。四种模式解决的是同一个问题的不同侧面:流量进入本地代理程序之后,应该走哪条路出去。规则模式让配置文件的规则表来决定,全局模式让所有流量走同一个节点,直连模式让所有流量绕过代理,脚本模式则用 JavaScript 动态生成前三种模式所依赖的规则。

Clash Verge Rev

01. Clash Verge Rev 四种代理模式:位置与基本区别

四种模式的切换入口在“代理”页面右上角,不同版本的按钮文字可能略有差异,但名称基本固定为 Rule/规则、Global/全局、Direct/直连、Script/脚本。

它们最核心的区别在于 流量出口的决策方式:

模式 决策方式 一句话概括
Rule(规则) 读取配置文件中的规则表,逐条匹配 按规则分流,国内直连、国外走代理
Global(全局) 忽略所有规则,全部走选中的节点 一切流量都从同一个代理出口出去
Direct(直连) 忽略所有节点,全部走本地网络 代理程序仍在运行,但不转发任何流量
Script(脚本) 用 JavaScript 动态生成/修改配置 不直接决定出口,而是改写规则本身

这里的“出口”指的是本地代理程序收到流量之后,把流量送到哪里。流量怎么进入本地代理程序(系统代理还是 TUN 模式)是另一个维度的问题。系统代理依赖应用主动读取系统设置,TUN 模式则通过虚拟网卡拦截流量,不依赖应用是否支持代理。

02. Rule 模式:规则表决定出口

Rule 模式是默认模式,也是日常使用中最合理的模式。它的工作方式是:流量进入内核后,从规则表的顶部开始逐条匹配,命中第一条就停止,然后按照该规则指定的动作处理流量。

规则表长这样:

rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - IP-CIDR,192.168.1.0/24,DIRECT
  - MATCH,PROXY

DOMAIN-SUFFIX,google.com,PROXY 的意思是:域名以 google.com 结尾的请求,走 PROXY 策略组。DOMAIN-SUFFIX,baidu.com,DIRECT 则让百度走直连。MATCH 是兜底规则,没有任何条件,放在最后,所有前面没匹配到的流量都走它指定的出口。

匹配顺序是从上到下,命中即停。 这意味着规则的位置比规则本身更重要。如果你想强制某个网站走代理,但订阅里的规则在它前面有一条匹配范围更宽的规则(比如 DOMAIN-KEYWORD,google,DIRECT),你的规则永远不会生效。这也是社区推荐用 prepend-rules 添加自定义规则的原因——prepend 会把你的规则插到所有规则的最前面,优先级最高。

新手最常踩的一个坑是“规则模式打不开某个网站”。原因通常不是规则模式坏了,而是那个网站的流量匹配到了某条 DIRECT 规则,或者落到了 MATCH 后面的策略组,而那个策略组里选的是一个不可用的节点。排查方法在第五节展开。

03. Global 模式:所有流量走同一个节点

Global 模式的行为非常直白:忽略规则表里的所有条件判断,把进入内核的全部流量都送到你手工选中的那个节点或策略组。

这个模式的价值不在于“日常使用”,而在于两个特定场景。

第一个场景是排查规则问题。 如果你在规则模式下访问某个网站失败,切到全局模式,用同一个节点再访问一次。如果全局模式下能正常打开,说明节点本身是通的,问题出在规则匹配上——可能是目标域名没有被任何代理规则覆盖,落到了直连;也可能是某条规则把它错误地指到了不可用的策略组。如果全局模式下也打不开,说明节点或订阅本身有问题,和规则无关。

第二个场景是临时统一出口。 注册某些对 IP 一致性敏感的账号时,你希望浏览器、命令行、后台应用全部从同一个出口出去,避免部分流量走直连暴露真实 IP。全局模式能快速做到这一点,但它只对“遵循系统代理”的应用有效。命令行工具、某些游戏和桌面应用如果不读系统代理设置,全局模式对它们不起作用——这种场景需要 TUN 模式来接管。

日常使用不建议常驻全局模式。国内网站也走代理会增加节点负担,流量消耗会明显上升。社区中有用户报告,流量消耗突然增加的原因就是误用了“TUN + 全局模式”。

04. Direct 模式:关闭代理流量转发

Direct 模式让所有进入内核的流量都不经过任何代理节点,直接走本地网络出去。效果上约等于把代理功能关掉了,但 Clash Verge Rev 的主程序和内核仍在运行,托盘图标还在,只是不转发流量。

这个模式的主要用途是排查“是不是代理本身导致的问题” 。如果某个网站打不开,切到 Direct 模式。如果 Direct 模式下网站能正常打开,说明问题出在代理链路上——节点、规则或 DNS 配置;如果 Direct 模式下也打不开,说明问题不在代理,可能是目标网站本身不可达、DNS 解析异常,或者系统防火墙拦截。

Direct 模式在切换时有一个容易被忽略的细节:系统代理开关不会自动关闭。如果你之前开着系统代理,切到 Direct 模式后,系统代理设置仍然指向 127.0.0.1:7897,只是内核不再把流量转发到节点。如果某些应用在 Direct 模式下出现连接异常,检查一下系统代理开关的状态,必要时手动关闭系统代理再测试。

05. Script 模式:用 JavaScript 改写配置

Script 模式和其他三种模式不在同一个层面上。Rule、Global、Direct 决定的是“流量往哪走”,Script 模式决定的是“规则长什么样”。它允许你用一个 JavaScript 函数处理当前的完整配置对象,返回修改后的配置。这个脚本处理发生在配置被送到内核之前,脚本改了什么,内核就按什么执行。

脚本的入口函数签名是固定的:

function main(config, profileName) {
  // config 是当前 Clash 配置的 JavaScript 对象
  // profileName 是当前激活的配置名称(v1.7.3 之后可用)
  return config;
}

config 对象包含了配置文件的全部内容:proxies、proxy-groups、rules、rule-providers 等字段都可以读写。一个常见的用法是过滤高倍率节点:

function main(config) {
  if (!config.proxies) return config;
  config.proxies = config.proxies.filter(p => {
    return !/(?:[4-9](?:\.5)?x)/i.test(p.name || "");
  });
  return config;
}

这段脚本把节点名称中带“4x”到“9.5x”倍率标记的节点从配置中移除,让代理组里只保留低倍率节点。脚本运行时环境基于 QuickJS,不支持文件系统访问等操作,所以不能在脚本里下载远程规则或读取本地文件。部分社区文档中提到了 boa_engine,官方文档目前明确的是 QuickJS。如果遇到脚本执行异常,可以优先参考官方文档的说明。

Script 模式对新手来说不是必选项。如果你只是想让某个网站走代理或直连,用 Rule 模式配合 prepend-rules 更简单直接。Script 模式适合需要批量处理、按条件动态生成配置的场景,比如根据节点名称自动分组、按配置文件名称区分规则等。

06. 模式选择与排查思路

日常默认用 Rule 模式。 如果你的订阅规则质量正常,规则模式能自动处理国内直连、国外代理的分流,流量消耗和访问速度都是最优的。

怀疑规则有问题时用 Global 模式做对照。 规则模式访问失败 → 切全局用同一个节点再试 → 全局正常说明是规则问题,全局也不通说明是节点或订阅问题。

怀疑代理本身有问题时用 Direct 模式做对照。 所有模式都访问失败 → 切 Direct → Direct 正常说明代理链路有问题,Direct 也不正常说明基础网络或 DNS 有问题。

Script 模式在需要动态生成配置时使用。 如果你发现自己在反复手动修改同一批规则,或者需要根据节点特征自动过滤,可以开始考虑写脚本。

一个实用的排查顺序是:先确认 Direct 模式下基础网络正常,再确认 Global 模式下节点可用,最后回到 Rule 模式排查规则匹配。三个步骤走完,问题大致就能定位到具体环节。

如果排查过程中发现规则模式有特定域名走错出口,可以参考 Merge 与 Script 指南了解如何用 prepend-rules 添加自定义规则;如果全局模式下节点仍然超时,常见问题页面中有节点和订阅排查的详细步骤。

上一篇:Clash Verge Rev 首次启动配置向导完整说明

开始使用 Clash Verge Rev

下载最新版本 v2.5.2,体验更轻量、更快速的代理客户端。

立即下载