技術參考文件 · 官方權威資料

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 分鐘內即可上手使用。