技术参考文档 · 官方权威资料

Clash 技术文档中心

核心架构原理 · 规则语法完整手册 · 协议支持一览
助你从入门到精通,掌握 Clash 每一个配置细节

核心架构

Clash(Mihomo)是基于 Go 语言开发的高性能规则分流代理核心引擎,理解其架构有助于编写出更精准高效的配置。

架构概览

Mihomo(原 Clash.Meta)核心由以下几个核心子系统协同工作:

入站监听器 (Inbound)
监听本地端口,接收来自应用程序的流量。支持 HTTP / HTTPS / SOCKS5 / TUN / Transparent Proxy 等多种入站类型,mixed-port 可同时提供 HTTP+SOCKS5 混合端口。
规则引擎 (Rule Engine)
顺序匹配配置文件中的 rules 列表,对每条连接决策走代理还是直连。支持 DOMAIN、IP-CIDR、GeoIP、PROCESS-NAME 等 20+ 种匹配条件,命中即停止。
代理出站 (Outbound / Proxy)
通过配置的代理节点转发流量。支持 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 等协议。策略组(proxy-groups)实现自动测速、故障转移、负载均衡等智能选路。
DNS 子系统
内置高性能 DNS 解析器,支持 DoH(DNS over HTTPS)、DoT(DNS over TLS)、DoQ(DNS over QUIC)。FakeIP 模式可彻底杜绝 DNS 泄漏,确保代理流量无法被嗅探。
RESTful API 与 Dashboard
通过 external-controller 暴露 RESTful API,可实时切换代理节点、查看流量统计、刷新配置。兼容 Clash Dashboard、Yacd、MetaCubeXD 等 Web 控制面板。

流量处理流程

一条网络请求从应用发出,到最终由 Clash 转发,经历以下处理链路:

应用程序
浏览器 / 游戏 / 命令行
入站监听
HTTP / SOCKS5 / TUN
DNS 解析
FakeIP / RealIP
规则匹配
顺序匹配,命中即停
策略出站
PROXY / DIRECT / REJECT
FakeIP 原理:启用 FakeIP 模式时,Clash DNS 对每个域名分配一个假 IP(如 198.18.x.x),应用发起连接时携带此假 IP,Clash 入站识别后还原域名,再走规则引擎匹配,彻底防止真实 IP 暴露给本地应用,从根本上杜绝 DNS 泄漏。

代理模式

Clash 支持四种工作模式,通过配置文件的 mode 字段或客户端界面切换:

日常推荐
Rule 规则模式

根据 rules 列表逐条匹配,决定每个连接走代理还是直连。国内网站直连保速,境外网站自动走代理,兼顾速度与隐私,是绝大多数用户的最佳选择。

mode: rule
全局代理
Global 全局模式

所有流量(包括国内)均通过代理服务器转发。适合需要完整出口 IP 一致性的场景(如海外账号操作),但会导致国内访问速度下降。

mode: global
调试测速
Direct 直连模式

所有流量不经过任何代理,直接发出,相当于关闭代理功能。通常用于排查代理本身是否影响连接,或临时关闭代理而不退出客户端。

mode: direct
进阶用户
Script 脚本模式

用 JavaScript 编写完全自定义的路由逻辑,可访问请求的域名、IP、端口、进程名等所有属性,实现远超规则列表的灵活控制。

mode: script
TUN 模式 vs 系统代理
特性 系统代理(System Proxy) TUN 模式
工作层级 应用层(Layer 7) 网络层(Layer 3)
覆盖范围 仅支持代理的应用(浏览器等) 全部流量(游戏、命令行、所有 APP)
所需权限 普通用户权限 需要管理员 / root 权限
配置复杂度 简单,客户端一键开启 需要安装网络驱动(自动)
推荐场景 日常浏览器上网 游戏加速、Steam、全局代理

DNS 机制

Clash 内置 DNS 解析器,通过精细控制 DNS 查询来防止泄漏并实现更精准的分流:

FakeIP 模式
为域名分配虚假 IP(198.18.0.0/16),完全杜绝 DNS 泄漏,规则匹配在域名层面进行(最精准)。推荐大多数用户使用。
RealIP 模式
先解析真实 IP 再匹配规则,IP-CIDR 规则可生效。对于 CDN 域名可能因 IP 归属不同导致分流不精准,适合需要精确 IP 路由的场景。
config.yaml · DNS 配置示例
dns:
  enable: true
  enhanced-mode: fake-ip   # fake-ip | redir-host
  fake-ip-range: 198.18.0.1/16
  listen: 0.0.0.0:1053
  nameserver:
    - https://doh.pub/dns-query    # DoH 国内
    - https://dns.alidns.com/dns-query
  fallback:
    - https://1.1.1.1/dns-query   # DoH 境外备用
    - tls://8.8.8.8:853
  fallback-filter:
    geoip: true
    geoip-code: CN

规则语法

Clash 规则系统是其最强大的功能之一,通过 YAML 格式精确控制每一条流量的走向。

规则格式

每条规则由三个部分组成,中间用英文逗号 , 分隔:

规则类型
DOMAIN-SUFFIX
,
匹配条件
google.com
,
目标策略
🚀 节点选择

规则按从上到下的顺序逐一匹配,命中第一条即停止,未命中任何规则则使用最后一条 MATCH 兜底。

规则类型详解

域名 DOMAIN
精确匹配完整域名,区分大小写。
DOMAIN,www.google.com,PROXY
域名 DOMAIN-SUFFIX
匹配域名后缀(含子域名)。最常用的域名规则类型。
DOMAIN-SUFFIX,google.com,PROXY
域名 DOMAIN-KEYWORD
域名中包含关键词即匹配,覆盖范围最广。
DOMAIN-KEYWORD,googleapis,PROXY
域名 DOMAIN-REGEX
使用正则表达式匹配域名,灵活强大。
DOMAIN-REGEX,^(www\.)?google\.com$,PROXY
IP 地址 IP-CIDR
匹配 IPv4 CIDR 地址段。添加 no-resolve 参数可跳过 DNS 解析。
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP 地址 IP-CIDR6
匹配 IPv6 CIDR 地址段。
IP-CIDR6,2400:3200::/32,DIRECT
地理位置 GEOIP
根据 IP 归属国家/地区匹配,使用 GeoIP 数据库。
GEOIP,CN,DIRECT
地理位置 GEOSITE
使用 Geosite 域名数据库匹配(v2ray-rules-dat),覆盖大量预置域名分类。
GEOSITE,cn,DIRECT
进程 PROCESS-NAME
根据发起连接的进程名匹配(Windows/macOS/Linux)。
PROCESS-NAME,steam.exe,DIRECT
进程 PROCESS-PATH
根据进程完整路径匹配,比进程名更精确。
PROCESS-PATH,/usr/bin/curl,PROXY
网络 NETWORK
按协议类型匹配,tcpudp
NETWORK,udp,REJECT
网络 PORT / DST-PORT
匹配目标端口或端口范围。
DST-PORT,443,PROXY
规则集 RULE-SET
引用外部规则集文件(.yaml / .list),支持远程 URL 订阅,可自动更新。
RULE-SET,gfw,PROXY
兜底 MATCH
匹配所有流量,必须放在规则列表最后,作为未命中所有规则的兜底策略。
MATCH,🚀 节点选择
策略关键字:规则的目标策略除了自定义的策略组名称(如 🚀 节点选择)外,还有三个内置关键字:
  • DIRECT — 直接连接,不走任何代理
  • PROXY — 走默认代理(等效于使用 proxies 中第一个节点)
  • REJECT — 拒绝连接(广告过滤常用)

策略组(proxy-groups)

策略组是 Clash 规则体系的核心,将多个节点组合成具有不同选路行为的逻辑组:

select 手动选择
用户手动在客户端界面选择节点或子策略组,最灵活,也是最常见的策略组类型。客户端需打开才能切换。
type: select
url-test 自动测速
定期对所有节点发起 HTTP 测速请求,自动选择延迟最低的节点。interval 设置测速间隔(秒),tolerance 设置切换容差(ms)。
type: url-test
fallback 自动故障转移
按顺序优先使用第一个可用节点,当第一个节点不可达时自动切换到下一个。适合需要稳定主节点 + 备用节点的场景。
type: fallback
load-balance 负载均衡
将连接分散到多个节点上,有 consistent-hashing(同域名固定节点)和 round-robin(轮询)两种策略。
type: load-balance
relay 链式代理
将流量依次经过多个节点转发(节点 1 → 节点 2 → ... → 目标),实现多跳代理。注意每跳都会增加延迟。
type: relay

完整配置示例

以下是一个包含核心配置、代理节点、策略组和规则列表的完整 config.yaml 示例:

config.yaml · 完整参考示例
# ── 基础配置 ──────────────────────────────────────
mixed-port: 7890        # HTTP + SOCKS5 混合端口
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

# ── DNS ──────────────────────────────────────────
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://doh.pub/dns-query

# ── 代理节点 ────────────────────────────────────
proxies:
  - name: 香港 01
    type: vmess
    server: hk1.example.com
    port: 443
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: /ws
      headers:
        Host: hk1.example.com

# ── 策略组 ──────────────────────────────────────
proxy-groups:
  - name: 🚀 节点选择
    type: select
    proxies:
      - ♻️ 自动选择
      - 香港 01
      - DIRECT
  - name: ♻️ 自动选择
    type: url-test
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies:
      - 香港 01

# ── 规则列表 ────────────────────────────────────
rules:
  - GEOSITE,cn,DIRECT          # 国内域名直连
  - GEOIP,CN,DIRECT            # 国内 IP 直连
  - DOMAIN-SUFFIX,local,DIRECT  # 局域网直连
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,🚀 节点选择          # 其余流量走代理

协议支持列表

Clash(Mihomo)原生支持 20+ 种主流代理协议,兼容绝大多数机场订阅与自建节点方案。

支持协议一览

Shadowsocks
SS
最广泛使用的代理协议之一,经过多年实战验证,支持 AEAD 加密(AES-256-GCM / ChaCha20-Poly1305),配置简单,兼容性极佳。
✓ AEAD 加密 ✓ 简单配置 ✓ 高兼容性
VMess
V2Ray
V2Ray 核心协议,支持 WebSocket、gRPC、HTTP/2、QUIC 等多种传输方式,可配合 TLS 实现流量伪装,穿透能力强。
✓ TLS 伪装 ✓ WS/gRPC ✓ HTTP/2
VLESS
V2Ray Next
VMess 的下一代精简版本,去除了对称加密开销,性能更高。支持 Reality TLS 指纹伪装,是目前抗封锁能力最强的协议之一。
✓ Reality ✓ 极低开销 ✓ TLS 指纹
Trojan
Trojan-GFW
通过将代理流量伪装成 HTTPS 443 端口的合法 TLS 流量实现穿透,在防火长城检测面前几乎无异于正常 HTTPS,稳定性极高。
✓ HTTPS 伪装 ✓ 443 端口 ✓ 高稳定性
Hysteria2
下一代
基于 QUIC/UDP 的高性能代理协议,专为高丢包、高延迟网络环境优化,在 3G/4G/跨洋链路上速度远超传统 TCP 协议。
✓ QUIC/UDP ✓ 弱网加速 ✓ 超低延迟
TUIC
v5
同样基于 QUIC/UDP 的现代代理协议,设计理念类似 Hysteria2,支持 0-RTT 连接复用,有效降低握手延迟,适合高频短连接场景。
✓ QUIC/UDP ✓ 0-RTT ✓ 连接复用
WireGuard
VPN 级
下一代 VPN 协议,内核级实现,极简设计,性能出色,密码学现代。Clash 通过用户态实现支持 WireGuard 节点出站,无需安装内核模块。
✓ 内核级性能 ✓ 现代密码学 ✓ UDP 原生
ShadowsocksR
SSR
Shadowsocks 的分支版本,增加了混淆和协议插件。已较少见于新建节点,Mihomo 保留兼容支持。
✓ 混淆支持 向后兼容
SOCKS5
本地代理
经典代理协议,支持 TCP 和 UDP(SOCKS5 UDP)。常用于本地节点中转或链接其他代理工具。
✓ TCP/UDP ✓ 认证支持
HTTP / HTTPS
HTTP 代理
标准 HTTP 代理协议(CONNECT 隧道),兼容性最广,适合公司内网代理场景。仅支持 TCP 流量。
✓ 广泛兼容 HTTP CONNECT
SSH
安全隧道
通过 SSH 隧道转发流量,无需额外配置服务端,只需一台能 SSH 访问的服务器即可。适合临时使用或测试场景。
✓ 零配置服务端 OpenSSH 兼容
Hysteria
v1 / 旧版
Hysteria2 的前一代版本,依然可用。建议新建节点使用 Hysteria2,Mihomo 保留对 v1 的兼容支持。
向后兼容

传输层选项(Transport)

VMess、VLESS、Trojan 等协议支持在底层协议之上叠加多种传输方式,进一步增强流量伪装能力:

WebSocket (ws)
最通用的传输方式,可配合 CDN(CloudFlare 等)使用,穿透能力强,延迟略高于原生 TCP。
HTTP/2 (h2)
基于 HTTP/2 的多路复用传输,并发性能好,需要 TLS,适合大流量场景。
gRPC
基于 gRPC 框架的传输,同样支持 CDN,多路复用,延迟较低,需要 TLS。
Reality
VLESS 专属,将流量伪装成真实网站的 TLS 指纹,无需域名也能正常工作,抗封锁能力最强。
TCP (原生)
最基础的 TCP 直连传输,延迟最低,无额外伪装。适合无严格封锁的网络环境。
Split HTTP
将请求拆分为多个 HTTP 分段以绕过深度包检测,兼容性好,可配合 CDN 使用。

主流协议对比

根据速度、抗封锁能力和配置复杂度综合对比,帮助您选择最适合的协议:

协议 速度 抗封锁 配置难度 适合场景 推荐度
VLESS + Reality ★★★★★ ★★★★★ 中等 自建节点首选 极力推荐
Hysteria2 ★★★★★ ★★★★ 简单 弱网 / 高延迟环境 极力推荐
Trojan ★★★★ ★★★★ 简单 日常翻墙主力 推荐
VMess + WS + TLS ★★★★ ★★★★ 中等 CDN 中转场景 推荐
TUIC v5 ★★★★★ ★★★ 中等 低延迟小包场景 推荐
Shadowsocks ★★★★ ★★★ 极简 机场订阅 / 入门 常用
WireGuard ★★★★★ ★★ 较难 企业 VPN / Warp 场景适用
机场用户提示:如果您使用的是付费机场(VPN 服务商),节点协议由机场决定,通常无需手动选择。订阅后直接导入到 Clash 客户端即可,客户端会自动识别每个节点所用的协议类型。如需了解具体导入步骤,请参阅 安装使用教程

准备好开始了吗?

下载 Clash 客户端,按照教程配置好订阅,5 分钟内即可上手使用。