本文目录
切到 Global 后,有的应用恢复了,有的却仍然没有反应,这并不矛盾。运行模式决定连接如何选路,系统代理或虚拟网卡决定哪些程序的请求能够进来。分清这两件事,才能用模式切换做对照,避免把临时测试留成长期设置。
Rule、Global、Direct 决定连接走哪条路
日常使用 Rule 按规则分流。需要临时切换出口或比较访问结果时,再用 Global 或 Direct;切换模式不会提高节点本身的速度。
| 模式 | 怎样处理连接 | 常见用途 |
|---|---|---|
| Rule | 按顺序匹配规则,执行第一条命中规则的策略 | 日常让不同服务使用不同出口 |
| Global | 交给 GLOBAL 组,实际出口取决于该组选择 | 临时统一出口,或指定节点做访问对照 |
| Direct | 使用本地网络出口 | 验证本地网络可达性,或暂时直连 |
这些模式只影响已经进入内核的连接。某个应用的流量没有进入内核时,切到 Global 也不会自动接管它。应用在 Connections 中完全没有记录,可以检查系统代理、应用代理或 TUN 是否生效。
在 Clash Verge Rev 等桌面客户端中,打开主界面的“代理模式”项,或右键托盘图标进入 Mode / 模式子菜单;在移动端则通常位于首页或 Proxies / 代理页的“模式”一行。
在客户端里完成一次真实切换
打开 Mode / 代理模式
从主界面模式项或托盘菜单进入,不要去改远程 YAML 的 mode 字段。
选择 Rule
打开目标网页,到 Connections 记下当前命中规则和出口。
需要对照时选择 Global 或 Direct
保持同一节点和目标,只更改模式并重新建立连接。
对照结束切回 Rule
再次请求目标,确认新的连接已经恢复按规则分流。
系统代理、TUN、策略组和 DNS 的分工
系统代理、TUN 和移动端 VPN 决定流量怎样进入内核;select、url-test、fallback 决定策略组怎样选出口;fake-ip 与 redir-host 则是 DNS 增强模式。这些设置用途不同,都叫作“代理模式”容易让人改错开关。
这些名称分别控制什么
| 设置类别 | 常见选项 | 实际决定 |
|---|---|---|
| 运行模式 | Rule / Global / Direct | 已进入内核的连接最终使用哪个出口 |
| 接管方式 | System Proxy / TUN / 移动端 VPN | 哪些应用或系统流量能够进入内核 |
| 策略组类型 | select / url-test / fallback | 一个策略组内部怎样选择节点或其他策略 |
| DNS 增强模式 | fake-ip / redir-host | 域名解析结果怎样交给规则与连接流程 |
Rule 模式:规则顺序与连接核验
Rule 是 Mihomo 的默认运行模式,适合需要直连、代理、拒绝和不同策略组并存的日常场景。它并不天然等于“国内直连、国外代理”,实际结果完全取决于当前配置里的 rules、rule-providers 及其顺序。
Mihomo 从 rules 顶部向下检查,命中第一条就停止。若域名本应走代理,却先命中了更宽的 DIRECT 规则,后面的规则就不会执行。列表末尾常见的 MATCH 用来处理前面未匹配的连接。
打开 Connections,找到刚才的请求,查看规则类型和策略组。界面显示 DOMAIN-SUFFIX、RULE-SET 或 MATCH,能直接告诉你是哪里做了决定;凭感觉把模式来回切换,反而看不到规则顺序的问题。
rules:
- DOMAIN,api.example.com,DIRECT
- DOMAIN-SUFFIX,example.com,REJECT
- MATCH,DIRECT检查一条实际请求
保持 Rule 模式
需要测试代理时,在主要策略组里固定一条已知可用节点;直连或拒绝规则不要求选择代理节点。
重做目标动作
打开同一网页、刷新同一接口或启动同一应用。
到 Connections 找到它
按域名、进程或时间定位刚产生的连接。
读取规则与出口
确认它是 DIRECT、REJECT 还是某个代理策略组。
如果结果符合预期,Rule 就是正常状态。某个网站失败时,只改与它有关的规则或策略组,不要因为一条连接把全站切到 Global。
Global 模式:GLOBAL 组与节点选择
Global 只改变已经进入 Mihomo 的连接,不会自动接管设备上所有应用。进入该模式后,还要到 GLOBAL 策略组确认当前选中的是具体节点、其他策略组还是 DIRECT;只看顶部显示 Global,无法判断实际出口。
在 Global 模式下,先到 GLOBAL 策略组选择一条具体节点。若目标请求在 Rule 下命中 DIRECT 而失败,切到 Global 后通过该节点成功,说明网络和节点至少可用,重点回到 Rule 的匹配顺序。
Global 下仍然 timeout,规则就不是唯一原因;比较节点、DNS 和本地网络。测试结束后切回 Rule,因为系统更新、局域网和国内服务等原本的直连流量在 Global 下也可能被送到同一出口。
Direct 模式:直连与退出客户端的区别
Direct 模式会让进入 Clash 的请求直接访问。一个本地可达的网站在 Direct 成功、在代理策略失败,问题更可能出在节点或代理连接;Direct 也失败,则检查本地 DNS、网络或目标服务。
Direct 不是“关闭 Clash”的完全等价物。请求仍可能进入内核,只是出口选择 DIRECT。要判断应用有没有经过 Clash,仍然要看 Connections,而不是只看页面是否打开。
- Direct 成功,Rule 失败且走代理
- 检查该代理策略的节点和规则是否应该这样安排。
- Direct 与 Global 都失败
- 分别查看本地网络和代理日志,不要把结果归给模式名称。
- 三种模式都没有连接记录
- 重新发起请求后仍没有记录时,检查系统代理、应用自身代理或虚拟网卡设置是否生效,不要只靠切换模式判断接管。
Script 模式:旧客户端与当前 Mihomo 的差别
部分历史 Clash 客户端、旧内核或特定配置曾提供 Script / 脚本模式,用脚本处理比普通规则更复杂的判断。当前 Mihomo 通用配置文档只把 Rule、Global、Direct 列为运行模式,因此不能把 Script 写成所有现代客户端都具备的第四种通用模式。
旧客户端里能看到 Script,不代表迁移到新客户端后仍有同名开关;新客户端里找不到也不表示安装失败。迁移旧配置时,应先确认脚本实际判断了哪些域名、网络或进程,再按当前内核能力改写为 rules、rule-providers 或客户端支持的覆写。
遇到 Script 时怎么判断
| 看到的位置 | 应怎样理解 | 下一步 |
|---|---|---|
| 历史客户端的模式菜单 | 该版本或内核提供的兼容能力 | 保留旧环境记录并核对对应版本文档 |
| 旧配置中的脚本段 | 可能包含自定义路由逻辑 | 先读清判断条件,再决定是否迁移 |
| 新 Mihomo 客户端没有 Script | 符合当前三种通用运行模式的界面 | 不要强行写入未经当前内核确认的 mode 值 |
| Merge、覆写或 JavaScript 页面 | 属于客户端配置处理能力 | 不要和内核运行模式混为一谈 |
切换模式后,怎样判断连接结果?
Rule 失败,Global 成功
比较两次 Connections 的规则和出口,修正 Rule 匹配。
Global 页面仍显示 DIRECT
检查 GLOBAL 策略组的当前选择,而不是只看顶部模式。
切到 Direct 后局域网恢复
补充本地网段直连规则,避免长期靠切模式。
模式切换后页面结果不变
关闭复用连接并重新请求,再看新产生的记录。
一次对照结束后,把模式切回原计划,再重复同一动作。如果 Rule 中已经命中正确策略且结果正常,就不需要保留 Global 作为“修复”。
