Zero to Pro Handbook

Clash 使用手冊:從零到精通的九個階段

本頁是站內資訊量最大的一份文件:從核心概念講到路由器部署,按階段線性推進,每章可獨立查閱。如果只想在十分鐘內完成第一次連線,請先看快速上手教學——它是「照著做就能連上」的主線;本手冊負責回答教學裡沒有展開的「為什麼」與「還能怎麼設定」。兩頁互為補充,建議先跑通教學,再回到這裡逐章加深理解。

  • 九章 · 階梯式推進
  • 全平台覆蓋
  • 設定範例可直接套用
Stage · Concepts01

核心概念:核心、客戶端、設定與訂閱的關係

在動手安裝之前,先花幾分鐘弄清四個名詞的關係,後面每一章都會反覆用到它們。理解了這一章,遇到任何客戶端介面差異都能自行對應。

Clash 是一條工具鏈,不是單一軟體

日常語境裡說的「Clash」,實際包含三層:最底層是核心,一個以 Go 編寫的命令列程式,負責監聽連接埠、解析規則、轉發流量;中間層是設定檔,一份 YAML 文字,告訴核心要開哪些連接埠、有哪些節點、什麼流量走什麼出口;最上層是客戶端,也就是帶圖形介面的應用程式,它把核心打包進來,替你管理設定、切換節點、開關系統代理。目前生態裡主流核心是 mihomo(由 Clash Meta 核心延續而來),本站下載頁提供的各平台客戶端均以此核心為基礎。換句話說,不同客戶端只是「外殼」不同,底層規則語法與行為是一致的——這也是本手冊內容能跨客戶端通用的原因。

訂閱:託管在遠端的設定檔

訂閱本質上就是一個 URL,存取它會回傳一份完整的 Clash 設定。服務商把節點資訊、推薦規則寫進這份設定並託管在伺服器上,你在客戶端裡貼上 URL 完成導入;服務商更新節點後,客戶端拉取一次訂閱即可同步,不需要手動改任何文字。訂閱連結通常內嵌了身分令牌,外洩等於把帳號交給別人,第四章會專門講導入與保管方式。

代理協定:節點使用的傳輸方式

設定檔的 proxies 段裡,每個節點會宣告自己的協定類型。常見的有 Shadowsocks(結構簡單、歷史最久)、VMess 與 VLESS(V2Ray 系協定,支援多種傳輸層偽裝)、Trojan(模仿 TLS 流量)、Hysteria2(基於 QUIC,訊號不佳的網路下表現較好)。作為使用者不需要深入協定細節,只需知道:協定由服務商決定並寫在訂閱裡,客戶端只要核心支援即可直接使用;mihomo 核心對以上協定均有支援。

一次請求的完整路徑

把流程串起來:應用程式發起請求 → 流量進入 Clash 的入站連接埠(系統代理或 TUN 虛擬網卡)→ 核心按需完成網域解析 → 由上而下比對 rules 規則 → 命中的規則指向某個代理群組或 DIRECT/REJECT → 流量從對應出口發出。後面的第五、六、七章分別對應這條鏈路上「入站」、「規則比對」與「接管方式與 DNS」三個環節,閱讀時可以隨時回到這張路徑圖定位。

Stage · Client02

選客戶端:按平台確定安裝對象

各平台可選客戶端不止一個,但對多數使用者而言選擇路徑很短。下表與下載頁的清單保持一致,按平台給出首選與備選。

平台首選備選說明
WindowsClash PlusClash Verge Rev / FlClash / Clash NyanpasuClash for Windows 已停止維護,僅作為歸檔
macOSClash PlusClash Verge Rev / FlClashClashX Meta 已停止維護,舊使用者可繼續使用
AndroidClash PlusClash Meta for Android / FlClash / Surfboard安裝後需授予 VPN 權限
iOSClash Plus(App Store)透過 App Store 安裝,入口見下載頁 iOS 區塊
LinuxClash Verge RevFlClash提供 deb 套件,伺服器情境可直接跑核心

為什麼首推 Clash Plus

Clash Plus 是目前唯一覆蓋 Windows、macOS、Android、iOS 全平台的選項,介面結構與操作邏輯在各端保持一致:在電腦上學會的訂閱管理、節點切換、模式選擇,換到手機上不需要重新適應。它內建 mihomo 核心並隨版本更新,提供中文介面,對剛接觸 Clash 的使用者來說學習成本最低。多裝置使用者尤其建議全平台統一使用同一客戶端,排查問題時只需記一套介面。

備選客戶端的定位

Clash Verge Rev 與 FlClash 均為持續維護的開源客戶端:前者在桌面端功能全面,支援設定覆寫與腳本擴充,適合喜歡鑽研設定的使用者,也是 Linux 桌面的推薦選擇;後者跨 Windows、macOS、Android、Linux,介面簡潔。Clash Nyanpasu 僅提供 Windows 版。至於 Clash for Windows 與 ClashX Meta,兩者均已停止維護,不再取得核心與安全性更新,下載頁保留歸檔僅供舊設定遷移過渡之用,新使用者不應從它們開始。關於停更背景,可參閱站內資訊的相關討論。

確定目標後,前往下載頁對應分區取得安裝檔:Windows 客戶端macOS 客戶端,其餘平台在同頁下方。

Stage · Install03

安裝:五個平台的注意事項

安裝本身不複雜,但每個平台各有一處容易卡住的系統機制。本章逐平台說明,按你的裝置跳讀對應小節即可。

Windows

執行下載的安裝程式,按照嚮導完成即可。兩處提示:其一,Windows 的 SmartScreen 可能彈出「已保護您的電腦」的攔截視窗,這是系統對下載量較低的可執行檔的通用提示,點選「其他資訊」→「仍要執行」即可繼續;其二,安裝路徑避免使用含中文或空格的目錄,部分核心功能(如服務模式)對路徑敏感。安裝完成後首次啟動,客戶端會在系統匣常駐一個圖示,主視窗關閉不等於退出,後續開關代理都透過系統匣或主介面進行。若計畫使用第七章的 TUN 模式,建議在設定中提前安裝系統服務,以便核心以足夠權限執行。

macOS

開啟 dmg 映像檔,把應用程式圖示拖入「應用程式」資料夾。首次開啟時 Gatekeeper 可能提示開發者驗證,若遭攔截,前往「系統設定 → 隱私權與安全性」,在頁面底部找到「仍要打開」。客戶端首次開啟系統代理或 TUN 時,系統會請求安裝網路擴充功能或修改網路設定的授權,需要輸入管理員密碼放行——這一步是 macOS 的正常權限流程,拒絕後代理將無法生效。Apple Silicon 與 Intel 晶片對應不同安裝檔,下載頁已分別列出,依「關於本機」裡的晶片型號選擇。

Android

安裝 apk 時系統可能要求允許「安裝未知來源應用程式」,在彈出的設定頁為瀏覽器或檔案管理器授權一次即可。首次啟動代理時,系統會彈出 VPN 連線請求,必須允許——Android 客戶端透過 VpnService 接管流量,拒絕該權限則完全無法運作。另外建議把客戶端加入電池最佳化白名單(設定 → 電池 → 不受限制),否則部分廠商系統會在螢幕關閉後砍掉背景程式,表現為「手機放一會兒代理就斷線」。

iOS

iOS 端透過 App Store 安裝 Clash Plus,商店入口與說明見下載頁的 iOS 分區。安裝後首次啟動代理時,系統會請求新增 VPN 設定,在彈出視窗中允許並驗證一次即可,之後的開關不再需要重複授權。

Linux

桌面發行版以 deb 套件為例,下載後在終端機執行:

sudo apt install ./clash-verge-rev_amd64.deb

使用 apt install 而非 dpkg -i 的好處是自動補齊依賴套件。安裝後從應用程式選單啟動;若使用 TUN 模式,客戶端會引導安裝帶特權的服務程序。伺服器或無桌面環境不需要 GUI 客戶端,直接執行 mihomo 核心即可,方法見第九章。

Stage · Subscribe04

訂閱導入:讓客戶端拿到節點

裝好客戶端後介面是空的——沒有任何節點,因為節點資訊由你的服務商透過訂閱提供。本章涵蓋導入、更新與常見失敗三個環節。

三種導入方式

最常用的是 URL 導入:在服務商的用戶面板複製訂閱連結(形如 https://sub.example.com/token/clash.yaml),開啟客戶端的「設定」或「訂閱」頁,點選新增/導入,貼上連結確認。客戶端會立即請求該 URL,下載設定並列出全部節點。其次是剪貼簿導入:部分客戶端偵測到剪貼簿裡有訂閱連結時會主動詢問是否導入,本質與 URL 導入相同。最後是本地檔案導入:如果你手上有一份現成的 YAML 設定(比如自己維護的,見第九章),可以直接以檔案方式載入,這種設定不會自動更新,更改需要手動完成。

更新機制

URL 導入的訂閱支援更新:手動點選訂閱條目上的重新整理按鈕,客戶端會重新請求 URL 並用回傳內容整體取代本地設定;多數客戶端還支援設定自動更新間隔(常見取值為 12 或 24 小時)。服務商更換節點位址後,更新一次訂閱即可恢復可用,遇到「所有節點突然全部逾時」時,更新訂閱永遠是第一個動作。需要注意:更新是整份取代,直接改在訂閱設定裡的手動修改會被覆蓋,持久化的客製化應透過客戶端的覆寫功能或獨立本地設定實現。

導入失敗的三類原因

其一,連結複製不完整:訂閱 URL 通常很長,從聊天工具轉發時容易被截斷或混入換行,失敗時先回到服務商面板重新複製。其二,網路不通:部分訂閱伺服器本身需要一定網路條件才能存取,可嘗試更換網路環境後重試。其三,格式不符:訂閱分 Clash 格式與其他格式,導入報「解析失敗」多半是拿了非 Clash 格式的連結,服務商面板一般提供多種格式入口,認準標註 Clash 的那一個。

注意:訂閱連結內嵌了你的身分令牌,任何拿到連結的人都可以消耗你的流量額度。不要在公開場合張貼,截圖時務必打碼。若懷疑外洩,到服務商面板重設訂閱位址。

導入成功後即可進行首次連線:選擇節點分組、測延遲、開啟代理並驗證,操作主線見教學頁的連線步驟,更細的延遲數值解讀與驗證方法見文章《Clash 首次連線全流程》

Stage · Mode & Ports05

代理模式與連接埠:流量從哪裡進、按什麼走

節點連上之後,決定體驗的是兩件事:核心以什麼模式決定流量去向,系統流量透過什麼入口交給核心。

三種運作模式

模式行為適用情境
規則(Rule)逐條比對 rules,按命中結果決定直連或走代理日常預設,兩地流量自動分流
全域(Global)忽略規則,所有流量走目前選中節點臨時排查、或確認某網站必須走代理時
直連(Direct)所有流量不經代理直接發出臨時停用代理但保留客戶端運行

多數時間應停留在規則模式:中國大陸流量直連確保速度,其他地區流量按規則走代理。全域模式是排查工具而非日常選擇——長期開全域意味著中國大陸流量也繞道節點,速度與流量額度雙輸。模式切換的具體入口見教學頁模式選擇一步

入站連接埠

核心透過監聽本機連接埠接收流量,設定檔頂部的連接埠段決定了監聽行為:

mixed-port: 7890        # HTTP 與 SOCKS5 混合連接埠,建議統一走它
allow-lan: false        # 是否允許區域網路其他裝置接入
mode: rule              # 啟動時的預設模式
log-level: info         # 日誌等級:silent / error / warning / info / debug
external-controller: 127.0.0.1:9090   # RESTful 控制介面,供面板類工具呼叫

mixed-port 是目前的主流寫法,同一連接埠同時接受 HTTP 與 SOCKS5 兩類代理請求,取代了舊設定裡分開的 portsocks-port。7890 是習慣預設值而非強制,若該連接埠被其他程式佔用(客戶端日誌會回報 bind 失敗),改成任意空閒連接埠即可,注意系統代理設定需要同步更新。allow-lan 開啟後,同一區域網路內的手機、電視可以把閘道代理指向這台電腦的 IP 與連接埠,共享代理出口;在公共網路環境應保持關閉。

系統代理:讓應用程式把流量交出來

開啟「系統代理」開關時,客戶端把作業系統的代理設定指向 127.0.0.1:7890,瀏覽器等遵守系統代理設定的應用程式會自動把請求交給核心。它的侵限也在這裡:只有「遵守系統代理」的應用程式會被覆蓋,許多命令列工具、部分桌面軟體會無視該設定——這正是第七章 TUN 模式要解決的問題。如果開了系統代理卻發現瀏覽器或終端機沒有走代理,按瀏覽器與終端機兩條線分別排查,方法見《Clash 系統代理不生效怎麼排查》

Stage · Rules06

規則分流:設定檔的核心機制

規則模式的全部行為由設定檔裡的 proxy-groupsrules 兩段定義。訂閱設定已經寫好了這兩段,理解它們的語法後,你能讀懂訂閱在做什麼,也能開始做自己的客製化。設定檔的完整逐段解析見《Clash 設定檔結構詳解》,本章聚焦分流機制本身。

代理群組:把節點組織成可選策略

規則不會直接指向某個節點,而是指向代理群組;代理群組再決定用組內哪個節點。常用四種群組類型:select 手動選擇,組內節點由你在介面上點選;url-test 自動測速,週期性向測試位址發請求,選延遲最低的節點;fallback 故障轉移,按清單順序使用第一個可用節點,失效自動切下一個;load-balance 負載平衡,把連線分散到多個節點。範例:

proxy-groups:
  - name: 節點選擇
    type: select
    proxies:
      - 自動測速
      - 香港節點
      - 日本節點
      - DIRECT
  - name: 自動測速
    type: url-test
    url: https://www.example.com/generate_204
    interval: 300
    proxies:
      - 香港節點
      - 日本節點

這種「手動群組裡嵌自動群組」的寫法很常見:日常掛在「自動測速」上省心,需要固定出口(比如登入對地區敏感的服務)時手動切到具體節點。interval 單位為秒,300 表示每五分鐘重測一次。

規則:由上而下,首條命中即停

rules 段是一個有序清單,每條格式為「類型,比對值,出口」。核心對每個連線從第一條開始逐條比對,命中即停止,後面的規則不再參與——因此規則順序即優先度,精確規則放前、兜底規則放最後。常用類型:

  • DOMAIN:完整網域精確比對;
  • DOMAIN-SUFFIX:比對網域及其全部子網域,日常最常用;
  • DOMAIN-KEYWORD:網域包含關鍵字即命中,覆蓋面大,慎用;
  • IP-CIDR:按 IP 網段比對,常搭配 no-resolve 參數避免為純網域請求觸發解析;
  • GEOIP:按 IP 歸屬地比對,GEOIP,CN,DIRECT 是「中國大陸 IP 直連」的標準寫法;
  • MATCH:無條件命中,必須且只能作為最後一條兜底規則。
rules:
  - DOMAIN-SUFFIX,example.com,節點選擇
  - DOMAIN-KEYWORD,tracker,REJECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - GEOIP,CN,DIRECT
  - MATCH,節點選擇

出口除了代理群組名稱,還有兩個內建值:DIRECT 直連、REJECT 直接拒絕連線(常用於攔截遙測類網域)。讀訂閱自帶的規則時抓住主線即可:前段是各類服務的網域/IP 歸類,倒數第二條通常是 GEOIP 直連,最後一條 MATCH 把剩餘流量交給主要選擇群組。

提示:想給某個網站強制指定出口,不必重寫整份設定——在規則清單最前面加一條 DOMAIN-SUFFIX 即可,利用「首條命中即停」的特性覆蓋後續所有規則。透過客戶端的覆寫功能新增,可避免被訂閱更新沖掉。

Stage · TUN & DNS07

TUN 與 DNS:接管全部流量

第五章說過系統代理的邊界:不遵守代理設定的程式管不到。TUN 模式從網路層解決這個問題,是桌面端進階使用的分水嶺。

TUN 的運作方式

開啟 TUN 後,核心在系統裡建立一塊虛擬網卡,並調整路由表把它設為預設出口。此後所有網路流量——無論應用程式是否支援代理設定——都會先進入這塊虛擬網卡,由核心按規則處理。效果上等同於「裝置層級接管」:命令列工具、遊戲、系統元件的流量全部納入分流。代價是需要更高權限:Windows 上要求以服務模式安裝核心元件,macOS 上需要授權網路擴充功能,Linux 上需要特權服務,各客戶端的設定頁都提供了對應的一鍵安裝入口。開啟 TUN 後應關閉系統代理開關,兩者同時啟用沒有意義且可能造成回圈。

DNS 接管與 Fake-IP

TUN 模式下 DNS 必須交給核心處理,否則會出現「流量走了代理、網域解析卻在本地明文發出」的洩漏,同時基於網域的規則也可能失效。設定檔的 dns 段控制這部分行為:

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "+.local"
  nameserver:
    - https://doh.example.com/dns-query

enhanced-mode 有兩個取值。redir-host 走傳統路徑:先真實解析網域,再按結果轉發,行為直觀但多一次解析延遲,且解析結果可能被汙染。fake-ip 則在應用程式查詢網域時立刻回傳一個保留網段(預設 198.18.0.0/16)內的虛構位址,核心記錄「虛構 IP ↔ 網域」的對應關係;應用程式連線該虛構 IP 時,核心按網域比對規則並轉發。好處是回應快、規則比對始終基於原始網域;副作用是少數依賴真實 IP 的情境(區域網路裝置發現、部分內部網路服務)會異常,把相關網域加入 fake-ip-filter 排除即可。nameserver 建議使用加密 DNS(DoH/DoT),避免上游解析被干擾。

注意:在 fake-ip 與 redir-host 之間切換後,作業系統與瀏覽器可能仍快取著舊的解析結果,表現為部分網站短暫打不開。Windows 下執行 ipconfig /flushdns,或重新啟動瀏覽器/裝置,讓快取失效即可。

什麼時候需要 TUN

判斷標準很簡單:如果你的需求全部發生在瀏覽器裡,系統代理已經夠用,不必引入 TUN 的權限複雜度;一旦涉及終端機命令列、開發工具、遊戲或其他不讀取系統代理的程式,TUN 是比逐個軟體設定代理環境變數更徹底的方案。驗證 TUN 是否生效,可在終端機直接發起請求觀察出口 IP,方法見教學頁的驗證步驟

Stage · Maintain08

日常維護:更新、日誌與故障對照

設定跑通之後,日常需要做的事不多,但做對能省去絕大多數突發排查。

三樣東西保持更新

訂閱:開啟自動更新或養成每隔幾天手動重新整理的習慣,服務商側的節點變動只有更新後才會同步。客戶端與核心:客戶端更新通常一併帶來核心更新,新核心會跟進協定與規則能力的演進,建議在客戶端提示新版本時及時升級。Geo 資料庫:GEOIP 等規則依賴的地理資料庫,多數客戶端提供一鍵更新入口,資料庫過舊會導致部分 IP 歸屬判斷偏差。

學會看日誌

客戶端的日誌/連線面板是最直接的排錯入口:連線頁能看到每條活動連線命中了哪條規則、走了哪個出口——「這個網站為什麼直連了」這類問題看一眼就有答案;日誌頁則記錄核心事件,啟動失敗、連接埠佔用、訂閱拉取錯誤都會在這裡留下明確資訊。各面板的功能分區詳見《Clash 客戶端介面速覽》。排查任何問題前,先把日誌等級暫時調到 debug 取得完整資訊,解決後再調回 info

常見故障速查

現象優先檢查
全部節點逾時先更新訂閱;再確認本機網路本身可用;最後換節點分組測試
瀏覽器不走代理系統代理開關是否開啟;瀏覽器是否裝有自帶代理設定的擴充功能在搶占
終端機不走代理終端機不讀系統代理,需設定 http_proxy 環境變數或改用 TUN 模式
客戶端啟動回報連接埠錯誤7890/9090 被佔用,改 mixed-port 或退出佔用程式
部分網站打不開、其餘正常連線面板查該網域命中的規則;嘗試切換節點;fake-ip 切換後清 DNS 快取
手機螢幕關閉後斷線Android 電池最佳化白名單;確認 VPN 權限未被系統回收

備份與開機自動啟動

訂閱 URL、覆寫腳本、自己維護的本地設定,建議在密碼管理器或私人筆記裡留一份副本,換機或重新安裝時幾分鐘即可恢復原狀。桌面端在設定裡開啟「開機啟動」與「自動連線」,搭配 TUN 或系統代理,重新啟動後無需手動介入;伺服器情境的自啟方案見下一章。

Stage · Beyond09

進階路線:從用設定到管理設定

走到這裡,客戶端層面的能力已經完整。進階方向是把對設定的控制權逐步收回到自己手裡,大致分三步。

第一步:覆寫與手動微調

訂閱更新會整體覆蓋設定,所以持久化客製化的正確姿勢是客戶端的覆寫(Override)機制:把你的修改(追加規則、調整 DNS、改連接埠)寫成獨立片段,客戶端在每次訂閱更新後自動合併。等你對第六章的語法足夠熟悉,可以進一步維護一份完全手寫的本地設定:proxies 段從訂閱擷取,其餘各段按自己的需求組織。寫 YAML 時最大的坑是縮排——層級只能用空格,同級欄位必須嚴格對齊,一個 Tab 就足以讓整份設定解析失敗,細節參見設定結構詳解一文。

第二步:直接執行核心

脫離 GUI、直接跑 mihomo 核心,適合伺服器與長期無人值守情境。從下載頁核心區取得對應架構的二進位檔,解壓後指定設定目錄執行:

# 設定檔放在 ~/.config/mihomo/config.yaml
./mihomo -d ~/.config/mihomo

# 僅檢查設定語法,不啟動
./mihomo -t -d ~/.config/mihomo

-t 參數值得記住:改完設定先跑一次檢查,比啟動失敗後翻日誌高效。Linux 下搭配 systemd 寫一個服務單元即可實現開機自動啟動與當機自動拉起;external-controller 開啟後,還可以用網頁面板遠端查看連線與切換節點,彌補沒有 GUI 的不便。

第三步:路由器與旁路由部署

把核心跑在路由器或旁路由上,家裡所有裝置——包括不能裝客戶端的電視、遊戲機——接入網路即自動獲得分流能力,裝置端零設定。這條路線涉及硬體選型、透明代理、DNS 接管與自啟守護等一整套議題,主路由與旁路由兩種拓撲的取捨與完整部署思路,見《路由器與旁路由直跑 Clash 核心:mihomo 部署方案概覽》

建議的學習順序:先在桌面端把規則模式與 TUN 用順(第五到七章),再嘗試覆寫與手寫設定(本章第一步),最後才考慮核心直跑與路由器部署——每一步都建立在上一步的排錯經驗之上,跳級只會把簡單問題變複雜。

Get Clash

下載 Clash 客戶端

手冊對應的各平台客戶端均可在下載頁取得,首推全平台一致體驗的 Clash Plus;首次使用建議搭配快速上手教學完成第一次連線。

下載 Clash 客戶端