🤖 声明:本文由 AI 辅助整理生成,并经作者严格人工审阅校对。
前言
很多人用 Clash 时最困惑的是:机场、订阅和软件到底是什么关系?出问题除了换节点还能干嘛?
本文剔除繁杂参数,通过 4 张核心架构图 和 3 分钟快速阅读 帮你搞懂它的核心逻辑。
1. 角色拆解:谁是干嘛的?
可以通过下图一目了然搞懂控制面与数据面的分工:
flowchart TD
subgraph 控制面 ["控制面(更新配置时参与)"]
A[机场面板 / 订阅服务] -->|1. 提供链接| B[订阅链接]
B -->|2. 下载配置| C[配置文件 YAML]
C -->|3. 加载规则| D[Clash Verge Rev 界面]
end
subgraph 数据面 ["数据面(每一次上网访问都经过)"]
E[浏览器 / 应用] -->|4. 发起请求| F[Mihomo 内核]
D -.->|配置指挥| F
F -->|5. 规则分流| G{选择出口}
G -->|直连| H[目标网站]
G -->|代理| I[代理节点] --> H
G -->|拒绝| J[拦截 REJECT]
end
- 机场:线路供应商;
- 节点:具体的通行出口;
- 订阅链接:线路信息的下载地址(更新配置时才用到,平时上网不经过它);
- Clash Verge Rev:控制台 GUI 界面;
- Mihomo:真正看路牌、选出口、转发流量的内核发动机。
2. 核心主线:打开网页的 4 步旅程
当你在浏览器中访问一个网站(如 video.example)时,流量在本地经历了下面 4 步:
flowchart LR
A[浏览器请求] -->|Step 1| B[流量接管]
B -->|Step 2| C[Fake-IP 识别域名]
C -->|Step 3| D[按表匹配规则]
D -->|Step 4| E[策略组选节点]
E --> F[建立实际连接]
Step 1: 流量接管(系统代理 vs TUN)
graph TD
App1[普通应用 / 浏览器] -->|设置代理端口| Proxy[系统代理 7890] --> Mihomo
App2[终端 / 游戏 / 传统软件] -->|忽略系统代理| NIC[真实网卡出口]
subgraph TUN模式 ["TUN 虚拟网卡模式 (强行接管)"]
NIC2[虚拟网卡] --> Mihomo[Mihomo 内核]
end
App2 -.->|开启 TUN 后| NIC2
- 系统代理:通知浏览器把流量发给内核。(部分游戏或命令行不听通知)
- TUN 模式:创建虚拟网卡,强行接管所有网络流量。(解决应用不走代理的问题)
Step 2: Fake-IP 域名识别
Mihomo 的 Fake-IP 机制解决了传统 DNS 污染和慢速解析的问题:
sequenceDiagram
autonumber
participant 浏览器
participant Mihomo内核
participant 代理节点/目标
浏览器->>Mihomo内核: 询问 video.example 的 IP
Mihomo内核-->>浏览器: 返回假 IP (例如 198.18.0.25)
Note over Mihomo内核: 记住映射: 198.18.0.25 ↔ video.example
浏览器->>Mihomo内核: 向 198.18.0.25 发起连接请求
Note over Mihomo内核: 反查映射得到原域名 video.example
Mihomo内核->>代理节点/目标: 按域名分流规则,建立真正连接
⚠️ 注意:
198.18.x.x是本地占位符号,不是真实的目标服务器 IP。
Step 3: 按表分流与策略组选择
规则是拿着规则表从上往下匹配,首条有效命中即停止:
flowchart TD
Req[捕获请求域名/IP] --> R1{1. 是否匹配直连规则?}
R1 -->|是| Direct[DIRECT 直连]
R1 -->|否| R2{2. 是否匹配拒绝规则?}
R2 -->|是| Reject[REJECT 拒绝]
R2 -->|否| R3{3. 是否匹配代理规则?}
R3 -->|是| Group[交给策略组]
R3 -->|否| Match[MATCH 兜底策略组]
Group --> Select{策略组类型}
Match --> Select
Select -->|手动选择 Select| Node1[用户指定节点]
Select -->|自动选择 URL-Test| Node2[自动选最低延迟节点]
Select -->|故障转移 Fallback| Node3[优先使用主线路,故障切备用]
3. 故障排查:一张表定位 80% 问题
遇到网络不通时,沿着流水线方向反向查找:
| 现象 | 原因与解决 |
|---|---|
| 浏览器能翻,命令行/游戏不行 | 流量未进入内核,尝试开启 TUN 模式。 |
| 全节点显示超时/红点 | 检查本地网络,或订阅是否过期、测速 URL 是否失效。 |
| 个别网站走错线路 | 检查规则顺序,或更新规则集。 |
看到 198.18.x.x IP |
正常现象!这是 Fake-IP 占位符,不需要慌张。 |
| 改了配置刷新订阅后还原了 | 远程配置会覆盖本地修改,请使用 Verge 的 合并/覆写 功能。 |
总结
Clash 并不复杂,它的核心逻辑就是一条可视化的流水线:
[接住流量] ──> [识别域名 (Fake-IP)] ──> [匹配规则 (Rules)] ──> [挑选节点 (Proxy Group)]