三种模式对比:日常先选 Rule

Clash 的代理模式决定的是:已经进入 Clash 内核的连接,接下来交给谁处理。它不直接决定哪些应用会把连接交给 Clash。新手日常通常选择 Rule,按订阅中的规则分流;临时排查分流问题时再试 Global;需要让已接管的连接直接访问目标时选择 Direct。

模式 连接如何处理 适用场景 需要检查
Rule/规则 按规则顺序匹配,由命中的规则指定直连、代理策略组或拒绝。 日常浏览、国内外服务分流、局域网访问。 命中哪条规则,以及该规则指向哪个策略。
Global/全局 不按普通分流规则选择出口,统一使用 GLOBAL 策略的当前选择。 临时验证代理路径,比较规则模式的访问差异。 GLOBAL 当前选的是节点、其他策略组还是 DIRECT。
Direct/直连 已进入内核的连接直接访问目标,不通过远端代理节点。 临时恢复直接访问,比较本地网络与代理路径。 本地网络能否访问目标,以及接管和 DNS 设置是否仍生效。

Rule 规则模式:按顺序匹配,再选择出口

规则模式会从配置中的 rules 列表顶部开始检查,命中后使用对应策略,不会继续向下寻找“更合适”的规则。域名规则、IP 规则以及最终兜底规则的顺序,因此会直接影响结果。

一个可以读懂的分流例子

下面是规则片段,不是完整订阅。假设配置中已经存在名为“日常代理”的策略组,example.com 仅用于解释规则匹配。

mode: rule
rules:
  - DOMAIN-SUFFIX,example.com,日常代理
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,日常代理
  • example.com 及其子域名命中第一条,交给“日常代理”处理。
  • 目标地址为 192.168.1.10 时,可命中第二条并直连,适合说明局域网地址的去向。
  • no-resolve 表示不为匹配这条 IP 规则主动触发域名解析,不是关闭整个客户端的 DNS。
  • MATCH 是兜底规则,应放在末尾;放到第一条会让后面的普通规则失去匹配机会。

规则命中代理组,不代表一定使用远端节点

策略组可能允许选择 DIRECT。即使规则指向“日常代理”,如果该组当前选中直连,最终仍然是直接访问。排查时要顺着“规则 → 策略组 → 实际出口”检查,不能只看模式按钮是否显示 Rule。

订阅更新也可能改变规则和策略组结构。需要长期增加自定义分流时,应先确认客户端支持的覆写、Mixin 或配置处理方式;直接改订阅生成的文件,修改可能在下次更新时被覆盖。不同客户端的覆写语法并不完全相同。

Global 全局模式:统一出口,不是全设备接管

全局模式适合临时验证:某个网站在 Rule 下打不开,换成 Global 并明确选择一个可用节点后,访问结果是否变化。若 Global 正常而 Rule 异常,规则命中、策略组选择或两种路径涉及的 DNS 行为就值得进一步检查,但这还不足以直接认定“订阅规则坏了”。

  1. 打开客户端的代理页面,将模式切到 Global。
  2. 找到全局策略 GLOBAL,明确选择一个已知可用的节点;部分客户端会显示本地化名称。
  3. 重新发起连接,再到 Connections(连接)页面确认实际出口。
  4. 测试结束后恢复 Rule,避免把日常局域网或本可直连的请求长期送往代理节点。

“全局”描述的是进入内核后的策略选择,不是操作系统范围的承诺。例如只打开 Windows 系统代理时,遵循该设置的浏览器通常会使用代理,而自行建立连接、忽略系统代理的程序可能仍然直连。这类程序不会因为切换 Global 就自动被接管。

Direct 直连模式:不走节点,但客户端仍可能参与连接

Direct 会让已经进入 Clash 的连接直接访问目标。它适合比较“本地网络能否访问”和“代理路径能否访问”,但不等于退出客户端。系统代理若仍指向本地监听端口,应用仍会先连接 Clash,再由内核直接连接目标。

同理,启用 TUN 后切换 Direct,虚拟网卡、路由接管以及已配置的 DNS 处理可能仍在工作。因此,Direct 下出现域名解析问题时,不能直接排除 Clash 的 DNS 配置。

需要完全退出代理链路时怎么做

  • 仅想临时不使用远端节点:切到 Direct,再重新建立连接。
  • 想让遵循系统代理的应用恢复原路径:关闭 System Proxy,并检查应用是否另外配置了手动代理。
  • 想撤销 TUN 接管:在客户端关闭 TUN,确认虚拟网卡相关路由已恢复,再按需退出客户端。
  • 退出后浏览器反而无法联网:检查系统代理是否还指向已经停止监听的本地端口。

例如应用仍使用 127.0.0.1:7890,但 Clash 已退出,该端口没有其他代理服务监听,请求就可能失败。这里的 7890 只是常见配置值,实际应以当前客户端显示的端口为准。

Clash for Windows 在哪里切换模式

以 Clash for Windows 0.20.39 的常见英文界面为例,先在 Profiles 中选中已导入的配置,再进入左侧 Proxies 页面,在顶部选择 Rule / Global / Direct。切到 Rule 后检查订阅中的策略组;切到 Global 后检查 GLOBAL 的当前选择。

系统代理开关位于 General → System Proxy。它与 Proxies 页的三种模式分开设置。界面语言、衍生版本及使用 mihomo 内核的其他客户端,可能将入口放在“代理”或“设置 → 代理模式”,应以实际界面为准。

首次导入订阅后的检查顺序

  1. 在 Profiles 确认配置已下载并处于选中状态,不只是列表中存在一个订阅名称。
  2. 进入 Proxies,选择 Rule,并在主要代理组中选中可用节点或合适的自动策略组。
  3. 在 General 查看实际监听端口,按需求开启 System Proxy;需要接管更多应用时,再单独了解 TUN 的权限与路由设置。
  4. 打开目标网页,到 Connections 查看目标地址、规则和策略链;具体展示字段随客户端版本不同而变化。

切换后没变化:按四步检查连接

第一步:确认请求确实进入 Clash

保持 Connections 页面打开,再访问目标。若没有出现对应连接,先检查系统代理、应用自己的代理选项和 TUN 接管范围。连接页也可能因请求过短而来不及显示,可结合日志核对。此时反复切换三种模式,通常解决不了入口问题。

第二步:新建连接,不只刷新旧会话

模式变更主要影响新建立的连接。浏览器可能复用 HTTP/2 长连接,聊天软件或下载工具也可能维持已有会话。可关闭相关网页或暂停任务后重试;必要时只关闭目标连接。关闭全部连接会中断其他下载和通话,应先确认影响。

第三步:查看命中的规则与最终策略

Rule 下检查规则是否指向预期策略,策略组是否意外选中 DIRECT;Global 下检查 GLOBAL 是否确实选中目标节点。如果连接已经使用预期节点但仍失败,应进一步检查节点可用性、认证状态与目标服务限制,而不是继续更换模式。

第四步:把 DNS 问题单独处理

域名解析失败不等同于代理节点连接失败。Global 不会自动修复不可达的 DNS 服务器,Direct 也不保证使用系统原来的解析链路。TUN 场景还需检查 DNS 劫持与浏览器安全 DNS 的实际路径。涉及 fake-ip、nameserver 等字段时,保留原配置,一次只改一项并记录结果。

常见选择:浏览、游戏与局域网访问

日常上网应该一直开全局模式吗?

通常先用 Rule,让订阅规则区分直连与代理流量。只有明确需要统一出口,或正在做短时排查时,再使用 Global。若某个站点总是走错出口,应检查对应规则,而不是长期靠全局模式绕过问题。

游戏开启 Global 就一定经过代理吗?

不一定。游戏可能不遵循系统代理,也可能使用 UDP。首先确认流量是否进入内核,再检查节点和接管方式是否支持相关协议。TUN 可以扩大接管范围,但不保证延迟降低,也不替代游戏服务本身的网络要求。

打印机、NAS 或路由器后台打不开,先检查什么?

先检查是否正在使用 Global,以及目标局域网地址是否被送往远端节点。恢复 Rule 后核对私有地址的直连规则,同时检查 TUN 的路由排除设置。不要只添加一个域名规则就假定所有局域网访问都已恢复。

切到 Direct 后还能打开某个网站,说明什么?

只能说明当前访问在该条件下成功,不能单凭页面显示判断出口。页面缓存、旧连接和应用绕过代理都可能影响观察。重新建立连接,并结合 Connections 中的策略记录判断,结果才更可靠。

记住一个顺序:先确认连接进入 Clash,再看模式,再看策略组,最后检查节点和 DNS。日常用 Rule,排查时短暂使用 Global 或 Direct,比把“能否访问”全部归因于模式更容易定位问题。