返回
Featured image of post 从订阅链接到自动分流:小白也能看懂的 Clash Verge 原理

从订阅链接到自动分流:小白也能看懂的 Clash Verge 原理

3 分钟用一次网页访问串起机场、订阅、分流规则与 Fake-IP

🤖 声明:本文由 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)]