Feature Architecture

特性架構
深度解析

從規則分流引擎到 YAML 聲明式配置,從 Fake-IP DNS 防洩漏到多協議無縫相容——本文全面解析 Clash 的核心架構與工作原理,助您充分發揮這款高性能代理客戶端的全部潛力。

Core Capabilities

六大核心能力
構建專業代理生態

Clash 以 Go 語言構建的高性能核心為基礎,集成了代理工具所需的所有核心能力——每一項都經過社群多年打磨,已成為行業標準。

規則分流引擎

基於網域、IP、GeoIP、進程名等多維度精準路由,讓境內外流量各行其道,徹底告別全域代理的頻寬浪費。

深入了解 →

多協議無縫相容

原生支援 Shadowsocks、VMess、Trojan、VLESS、Hysteria 2、TUIC 等全主流協議,單一核心替代所有碎片化客戶端。

查看協議列表 →

YAML 聲明式配置

採用對人類和機器均友好的 YAML 語法,支援版本控制,可透過訂閱連結一鍵同步節點與規則,無需手動維護。

查看配置範例 →

DNS & Fake-IP 防洩漏

透過 Fake-IP 機制接管系統 DNS,徹底杜絕 DNS 查詢洩漏至電信業者,在任何網路環境下保護您的真實位置與數位指紋。

了解工作原理 →

策略組 & 自動測速

支援選擇(select)、自動測速(url-test)、故障轉移(fallback)、負載平衡(load-balance)四種策略組類型,實現高可用代理路由。

詳解策略組 →

RESTful API 外部控制

內建 HTTP RESTful API,允許 Yacd、MetaCubeX 等第三方控制面板即時切換節點、監控流量、管理規則,構建完整視覺化管理體系。

API 文件 →
Rule-Based Routing Engine

規則分流引擎
精準流量路由

Clash 最核心也是最獨特的競爭力在於其強大的規則分流系統(Rule-based Proxy)。與傳統代理工具僅能實現全域代理或簡單 PAC 列表不同,Clash 提供了細粒度的多維度流量路由控制。

規則按優先級從上到下依次匹配,命中即執行對應動作(PROXY / DIRECT / REJECT),最後一條 MATCH 規則作為兜底策略。

DOMAIN
精確網域匹配 匹配完整網域,如 google.com
DOMAIN-SUFFIX
網域後綴匹配 匹配指定網域及所有子網域
DOMAIN-KEYWORD
網域關鍵字匹配 網域中包含指定關鍵字即命中
GEOIP
地理位置 IP 匹配 基於 MaxMind GeoIP 資料庫,精準識別中國大陸 IP(CN)等
IP-CIDR
IP 段精確匹配 匹配指定 CIDR 網段,支援 IPv4 / IPv6
PROCESS-NAME
進程名匹配 針對指定應用程式設置專屬路由,精確到進程級別
RULE-SET
遠端規則集訂閱 從遠端 URL 動態載入規則集,支援定期自動更新
MATCH
兜底規則(必須置末) 未被任何規則命中的流量的最終處理動作
config.yaml · rules 片段
# ── Rule-based routing configuration ── rules: # Exact domain → proxy - DOMAIN,google.com,PROXY - DOMAIN,youtube.com,PROXY - DOMAIN,openai.com,PROXY # Suffix matching → forward all subdomains - DOMAIN-SUFFIX,github.com,PROXY - DOMAIN-SUFFIX,twitter.com,PROXY # Keyword matching → catch CDN variants - DOMAIN-KEYWORD,googleapis,PROXY - DOMAIN-KEYWORD,gstatic,PROXY # Ad/tracker rejection - DOMAIN-SUFFIX,doubleclick.net,REJECT # Remote rule-set subscription (auto-updates) - RULE-SET,proxy-list,PROXY - RULE-SET,cn-domain,DIRECT # GeoIP: mainland China traffic → direct - GEOIP,CN,DIRECT # Final fallback - MATCH,PROXY
💡

Rule Providers 規則集訂閱:透過 rule-providers 欄位引入遠端 YAML/TEXT 規則文件,Clash 會按設定間隔自動拉取更新,無需手動維護龐大的單體設定檔。

Multi-Protocol Support

全協議支援
一個核心搞定一切

Clash Meta(mihomo)核心在原版 Clash 基礎上持續擴展,現已支援市面上幾乎所有主流代理協議。無論您的機場或服務商使用何種協議,Clash 都能原生相容,徹底告別多客戶端並存的混亂局面。

協議名稱 傳輸層 加密方式 偽裝能力 推薦場景 支援版本
Shadowsocks TCP / UDP AEAD 加密 基礎 相容性最廣,機場標配 原版 + Meta
ShadowsocksR TCP / UDP 多重混淆 混淆 舊版機場相容 原版 + Meta
VMess TCP / WS / H2 / GRPC AES / ChaCha20 WebSocket TLS V2Ray 生態首選 原版 + Meta
VLESS TCP / WS / H2 / GRPC 無內建加密(依賴 TLS) TLS / Reality 輕量高性能,推薦新部署 Meta 專屬
Trojan TCP TLS 原生 偽裝 HTTPS 網站 抗主動探測最強 原版 + Meta
Hysteria 2 UDP (QUIC) TLS 1.3 QUIC 偽裝 高延遲/丟包網路極速傳輸 Meta 專屬
TUIC UDP (QUIC) TLS 1.3 QUIC 多路複用 低延遲場景優化 Meta 專屬
Snell TCP AES-256-GCM 基礎 Surge 生態配套使用 原版 + Meta
Socks5 / HTTP TCP 可選 TLS 區域網路內部中轉 原版 + Meta
Reality TCP XTLS / Vision 偽裝真實網站 TLS 指紋 抗 TLS 指紋檢測最優解 Meta 專屬

新用戶協議選擇建議

對於新建節點,推薦優先選擇 VLESS + Reality 組合(抗檢測性最強)或 Hysteria 2(高延遲網路下速度最快)。兩者均需 Clash Meta (mihomo) 核心支援。如需最廣泛機場相容性,Shadowsocks (AEAD) 仍是最穩妥的選擇。

Configuration Standard

YAML 聲明式配置
完整結構參考

Clash 採用 YAML 作為唯一配置格式。完整的設定檔由以下幾個頂層欄位構成——了解每個欄位的作用,是精通 Clash 配置的第一步。

01 · 基礎網路配置
# ── Basic network settings ── port: 7890 # HTTP proxy port socks-port: 7891 # SOCKS5 proxy port redir-port: 7892 # Transparent proxy port (Linux/macOS) tproxy-port: 7893 # TProxy port (Linux only) mixed-port: 7897 # HTTP + SOCKS5 combined port allow-lan: true # Allow LAN devices to use as gateway bind-address: '*' # Bind to all interfaces # Running mode: rule | global | direct mode: rule # Log level: silent | error | warning | info | debug log-level: info # External controller for dashboard panels (Yacd / MetaCubeX) external-controller: 127.0.0.1:9090 secret: 'your_api_secret'
02 · DNS 配置(含 Fake-IP)
# ── DNS configuration with Fake-IP ── dns: enable: true listen: 0.0.0.0:1053 ipv6: false # Fake-IP mode: prevents DNS leaks enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 # Domains excluded from Fake-IP (LAN / local) fake-ip-filter: - '*.lan' - 'localhost.ptlogin2.qq.com' # Upstream DNS over HTTPS servers nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query # Fallback DNS for non-CN domains (bypasses GFW) fallback: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fallback-filter: geoip: true geoip-code: CN
03 · 代理節點(proxies)
# ── Proxy server declarations ── proxies: # Shadowsocks node - name: "SS-US-01" type: ss server: us1.example.com port: 8388 cipher: chacha20-ietf-poly1305 password: "your_password" udp: true # VLESS + Reality node (Meta only) - name: "VLESS-Reality-HK" type: vless server: hk1.example.com port: 443 uuid: "your-uuid-here" tls: true reality-opts: public-key: "your-public-key" short-id: "abcdef01" # Hysteria 2 node (Meta only) - name: "HY2-JP-01" type: hysteria2 server: jp1.example.com port: 443 password: "your_password" sni: jp1.example.com
04 · 策略組(proxy-groups)
# ── Proxy groups configuration ── proxy-groups: # Manual selection group - name: "PROXY" type: select proxies: ["Auto-Speed", "SS-US-01", "VLESS-Reality-HK"] # Auto url-test: picks lowest latency - name: "Auto-Speed" type: url-test url: "http://www.gstatic.com/generate_204" interval: 300 proxies: ["SS-US-01", "VLESS-Reality-HK", "HY2-JP-01"] # Fallback: switches on node failure - name: "Fallback" type: fallback url: "http://www.gstatic.com/generate_204" interval: 60 proxies: ["SS-US-01", "HY2-JP-01"] # Load balance across multiple nodes - name: "LoadBalance" type: load-balance strategy: round-robin proxies: ["SS-US-01", "VLESS-Reality-HK"]
Strategy Groups Architecture

策略組四大類型
高可用路由設計

select 手動選擇

手動切換策略組

由用戶在客戶端介面手動選擇當前啟用的代理節點或子策略組。適用於需要精確控制使用哪個地區節點的場景,如固定使用美國節點存取 Netflix。

  • 支援嵌套其他策略組
  • 支援 proxy-providers 引入機場訂閱
  • 支援包含 DIRECT / REJECT 特殊節點
url-test 自動測速

自動延遲測速策略組

定期對組內所有節點發送 HTTP 探測請求,自動選擇延遲最低的節點作為當前活躍節點。無需手動測速,全程自動化保障最優網路體驗。

  • url:延遲測試地址(推薦 gstatic 204)
  • interval:測速間隔(秒),推薦 300s
  • tolerance:容差值,避免頻繁切換
fallback 故障轉移

故障轉移高可用策略組

按節點排列順序依次使用,當前節點探測失敗時自動切換至下一個可用節點。適合對穩定性要求極高的業務場景,確保服務永不中斷。

  • 有序降級:優先使用隊列首位節點
  • 節點恢復後自動切回
  • 適合串流媒體解鎖專線保障
load-balance 負載平衡

負載平衡策略組

將流量分散至組內多個節點,支援 consistent-hashing(同網域固定節點)和 round-robin(輪詢)兩種策略,充分利用多節點頻寬,提升整體吞吐量。

  • consistent-hashing:同源 IP 固定路由
  • round-robin:輪詢均勻分配
  • 適合大流量多任務下載場景
DNS & Privacy Architecture

Fake-IP 機制
徹底杜絕 DNS 洩漏

為什麼普通代理存在 DNS 洩漏?

傳統代理模式下,瀏覽器會先向在地 ISP(網際網路服務供應商)的 DNS 伺服器查詢目標網域的 IP 地址,再透過代理建立連接。這導致 DNS 查詢記錄會洩漏給 ISP,暴露您的真實存取意圖,即使流量本身經過加密。

Fake-IP 如何解決這個問題?

Clash 的 Fake-IP 模式在在地接管系統 DNS 解析,為每個待查詢的網域立即返回一個虛假的在地 IP 地址(如 198.18.x.x),讓應用程式立刻建立連接請求。Clash 核心識別到該虛假 IP 後,將真實的網域透過加密隧道發送至遠端代理伺服器進行 DNS 解析,從根本上阻斷 DNS 查詢洩漏至 ISP

傳統代理 DNS 流程(有洩漏)
瀏覽器發起請求 在地 ISP DNS 查詢
(洩漏存取意圖)
代理隧道連接
Fake-IP 模式(零洩漏)
瀏覽器發起請求 Clash 在地 Fake-IP
(立即響應 198.18.x.x)
網域透過加密隧道
在遠端解析
fake-ip 模式 推薦

在地返回虛假 IP,網域隨加密隧道傳遞至遠端解析。徹底防止 DNS 洩漏,應用連接延遲最低。

redir-host 模式 相容模式

先在在地進行 DNS 解析獲取真實 IP,再根據 IP 規則判斷路由。相容性好,但存在 DNS 洩漏風險。

⚠️

Fake-IP 過濾器(fake-ip-filter):部分在地服務(如 WeChat、QQ 的登入網域)不適合 Fake-IP,應透過 fake-ip-filter 欄位將其排除,避免影響正常使用。

🔒

DoH 上游 DNS 推薦:大陸推薦 https://doh.pub/dns-query(騰訊 DNSPod)或 https://dns.alidns.com/dns-query;Fallback 推薦 https://1.1.1.1/dns-query(Cloudflare)。

RESTful API & External Control

內建 RESTful API
構建視覺化管理面板

Clash 核心內建 HTTP RESTful API,透過 external-controller 配置開放控制通訊埠後,第三方控制面板(Yacd、MetaCubeX、clash-dashboard)可透過該 API 實現即時節點切換、流量監控、連接管理等所有核心操作,無需重啟核心即可動態調整一切。

GET 代理與節點管理
GET /proxies 獲取所有代理節點與策略組資訊
PUT /proxies/:name 切換指定策略組的當前節點
GET /proxies/:name/delay 測試單個節點的即時延遲(ms)
GET 流量監控與連接
GET /traffic WebSocket 即時流量速率推送
GET /connections 獲取當前所有活躍連接列表
DELETE /connections/:id 關閉指定連接
PUT 配置熱更新
PUT /configs 熱載入設定檔(無需重啟核心)
PATCH /configs 動態修改單個配置欄位
PUT /rules 熱更新路由規則集
WS 即時日誌串流
GET /logs WebSocket 即時日誌串流,支援級別過濾
GET /version 獲取當前核心版本資訊
GET /memory 獲取核心即時記憶體使用情況
推薦第三方管理面板
Yacd 輕量極簡,載入速度最快,新手首選 GitHub →
MetaCubeX 功能最全,支援 Meta 專屬特性,進階用戶推薦 GitHub →
Clash Dashboard 官方經典面板,穩定相容所有版本核心 GitHub →
Performance Architecture

Go 語言核心
極致性能基礎

~5MB
核心進程記憶體佔用
遠低於 Electron 類客戶端的 200MB+
10k+
並行連接處理能力
Go 協程模型,高並行無壓力
<1%
空閒時 CPU 佔用率
事件驅動架構,零流量時幾乎不消耗資源
ARM
全架構原生支援
x86 · ARM64 · ARMv7 · MIPS 軟路由全覆蓋

Go 協程並行模型

每個連接由獨立 goroutine 處理,無執行緒切換開銷,在高並行場景下性能隨 CPU 核心數線性擴展。

規則匹配 O(1) 哈希查找

網域規則採用哈希表存儲,無論規則數量多少,單次匹配始終在常數時間內完成,配置再龐大也不影響性能。

DNS 緩存與預解析

內建 DNS 結果緩存,Fake-IP 模式下無需等待遠端 DNS 響應即可立即建立連接,大幅降低首包延遲感知。

跨平台單一執行檔

Go 語言編譯為單一可執行文件,無需安裝依賴,支援 Windows / macOS / Linux / Android,部署零門檻。

Quick Start Guide

新手五步入門
從安裝到暢遊全球網路

無論您使用哪款作業系統,按照以下步驟操作,大約 5 分鐘內即可完成 Clash 的全部配置,開始穩定流暢的國際網路存取。

01

選擇並下載適合您平台的客戶端

根據您的作業系統選擇對應的圖形化客戶端(GUI)。Windows 用戶推薦 Clash Verge Rev;macOS 用戶推薦 Clash Verge Rev (macOS) 或 ClashX Pro;Android 用戶推薦 Clash Meta for Android;Linux 用戶推薦直接使用 Clash Meta 核心配合 Yacd 面板。

前往下載頁 →
02

安裝完成,首次啟動

Windows 按兩下 .exe 安裝包,按精靈完成安裝。macOS 將 .dmg 內的應用程式拖入 Applications 資料夾。Android 允許安裝來自未知來源的 APK 後安裝。首次啟動時,部分客戶端會提示授予系統代理權限,請允許。

03

匯入機場訂閱連結

在客戶端介面找到「配置(Profiles)」或「訂閱」頁面,將您的機場服務商提供的訂閱 URL 貼上進去,點擊「下載」或「更新」按鈕。Clash 會自動解析所有節點資訊和策略組配置,無需手動填寫任何伺服器參數。

04

選擇節點並進行延遲測試

進入「代理(Proxies)」頁面,對各策略組內的節點執行「延遲測試(Latency Test)」,選擇延遲最低(通常綠色顯示)的節點。如果機場訂閱包含 url-test 自動測速組,Clash 會自動為您選擇最優節點。

05

開啟系統代理,立即享用

在客戶端主介面開啟「系統代理(System Proxy)」開關。此時 Clash 已自動接管您系統的全部網路流量,打開瀏覽器存取 Google、YouTube、GitHub,即可感受到速度提升。建議同時開啟「開機自啟」選項,下次重啟後無需重新設置。

Frequently Asked Questions

配置常見問題
快速排查指南

Clash 開啟後瀏覽器無法上網怎麼辦?

請檢查:① 是否已在客戶端開啟「系統代理」開關;② 訂閱配置是否已成功下載(配置頁面顯示節點列表);③ 選中的節點延遲測試是否正常(非 timeout);④ 防火牆是否阻止了 Clash 的網路存取。Windows 用戶還需確認乙太網路或 Wi-Fi 屬性中代理設定已被 Clash 正確接管(通常顯示為 127.0.0.1:7890)。

如何判斷 DNS 是否存在洩漏?

造訪 dnsleaktest.com 或 ipleak.net 進行檢測。如果檢測結果中的 DNS 伺服器歸屬於您的大陸 ISP(如電信、聯通、移動),則存在洩漏——此時建議在設定檔中將 DNS enhanced-mode 改為 fake-ip 模式並重啟核心。

訂閱連結更新後節點沒有變化?

部分客戶端存在在地快取。請在「配置(Profiles)」頁面手動點擊訂閱條目旁的「強制重新整理」或「Update」按鈕(而非直接切換到已有配置)。如仍無效,嘗試刪除該訂閱後重新加入訂閱連結,或檢查訂閱 URL 是否已過期需要機場重新生成。

如何配置 Clash 的 TUN 模式接管全部流量?

在設定檔中加入 tun: enable: true 並設置 stack: mixed(或 system),同時需要客戶端以管理員/root 權限執行。TUN 模式可接管不走系統代理的程式(如某些遊戲或 CLI 工具),實現真正的全域透明代理。注意 Windows 需額外安裝 Wintun 驅動。

Clash Meta 和原版 Clash 的設定檔通用嗎?

大部分通用。原版 Clash 的合法設定檔均可在 Clash Meta(mihomo)上正常執行。Meta 在此基礎上擴展了 VLESS、Reality、Hysteria 2、TUIC 等新欄位,如果您使用這些新協議節點,設定檔將無法在原版核心上載入(原版核心已於 2023 年停止維護,推薦全面遷移至 Meta 核心)。

如何在 Linux 伺服器上部署 Clash 作為透明代理閘道?

① 下載對應架構的 Clash Meta 核心二進制檔案;② 編寫 YAML 配置,開啟 tproxy-port: 7893 和 allow-lan: true;③ 使用 iptables / nftables 將流量轉發至 7893 通訊埠;④ 透過 systemd 配置開機自啟守護進程。區域網路內其他設備將閘道指向該伺服器即可享用代理。

已了解架構特性?

立即下載對應平台的 Clash 客戶端,三分鐘完成配置,開始暢享穩定快速的國際網路存取體驗。

免費下載最新版本 GitHub 原始碼倉庫