先釐清三個層次:核心、用戶端與設定檔

搜尋 Clash 電腦版時,結果中常會同時出現 Clash、Clash Meta、mihomo、Clash Verge Rev 和 Clash for Windows。這些名稱並非屬於同一個層次:有些是處理網路連線的核心,有些是提供視窗與系統匣選單的用戶端,還有些只是設定檔格式的稱呼。先分清楚,才能判斷該下載什麼,以及發生問題時該檢查哪一層。

  • 核心:讀取設定檔、監聽本機代理連接埠,並執行 DNS 解析、規則比對、策略群組選路與協定連線。即使沒有圖形介面,也能透過命令列執行。
  • 圖形用戶端:負責匯入訂閱、切換設定檔、開關系統代理、管理核心程序、顯示記錄,以及部分需要權限的系統整合功能。
  • 設定檔與訂閱:提供核心節點、策略群組、分流規則和 DNS 參數。訂閱是取得設定或節點資料的一種方式,不等同於用戶端,也不代表一定使用某種核心。

例如,瀏覽器將請求送至本機 127.0.0.1:7890,負責接收請求並依規則轉送的是核心;點選視窗中的「系統代理」開關,則是用戶端在修改作業系統的代理設定。這裡的 7890 只是常見設定範例,實際連接埠請以目前執行中的用戶端設定為準。

專案發展脈絡:原版 Clash、Clash Meta 與 mihomo

原版 Clash 與 Premium 有何不同

原版 Clash 通常是指 Dreamacro/Clash 專案的 Go 語言代理核心。圍繞這個核心,逐漸形成 YAML 設定檔、策略群組、規則清單與控制 API 等使用方式。許多用戶端因相容這些介面而被統稱為 Clash 用戶端。原版專案已於 2023 年 11 月停止公開維護,不應把舊版號視為目前仍持續更新的產品線。

過去也曾有 Clash Premium。它與開源版的功能並不完全相同,Premium 曾提供 TUN、規則提供器等擴充功能。查閱舊教學時,若看到「僅 Premium 支援」的說明,需依當時的核心版本判斷;不能直接推論現在的 mihomo 不支援,也不能反過來認為舊版 Clash 一定支援。

Clash Meta 後續以 mihomo 之名持續發展

Clash Meta 是沿著 Clash 技術路線擴充的核心分支,後續以 mihomo 之名持續發展,專案儲存庫名稱為 MetaCubeX/mihomo。因此,許多教學中的「Meta 核心」與「mihomo 核心」指的是同一條演進路線,並非需要同時安裝的兩套代理程式。

mihomo 保留了許多 Clash 設定檔的使用習慣,同時新增並調整了協定、DNS、規則與 TUN 等功能。不代表任何設定檔都能跨核心直接使用:新版欄位可能無法被舊核心辨識,某些協定或規則行為也可能只在特定版本中實作。判斷時應以目標核心的文件、版本說明及啟動記錄為準,而不是看設定檔名稱中有沒有「Clash」。

原版 Clash ── 衍生與擴充路線 ── Clash Meta → mihomo
                                                  ↑
                                      由 Clash Verge Rev 呼叫

原版 Clash Verge ── 用戶端延續分支 ── Clash Verge Rev

這張關係圖呈現的是程式碼與功能的發展路線。Clash Verge Rev 的用戶端分支源自 Clash Verge,並非將 mihomo 改名後再加上視窗;mihomo 與用戶端也各有獨立的版本及發布時程。

如何區分 Clash Verge Rev、Clash for Windows 等用戶端

名稱 所屬層級 選擇時應確認
原版 Clash 代理核心 舊版設定檔相容性;原專案已停止維護
mihomo / Clash Meta 代理核心 核心版本、協定與設定欄位支援狀況
Clash Verge Rev 圖形用戶端 系統架構、內含的 mihomo 版本、服務與 TUN 設定
Clash for Windows 歷史圖形用戶端 已停止維護;舊教學中的介面不一定適用於其他新用戶端
FlClash、Clash Nyanpasu 等 其他圖形用戶端專案 各專案支援的系統、核心整合方式與發布記錄

Clash Verge Rev 延續 Clash Verge 的用戶端路線,並使用 mihomo 處理代理流量。它主要提供桌面管理功能:將核心設定、策略群組選擇與系統整合集中在同一個視窗中。免費、開源及支援多平台是專案特性,但仍須確認作業系統版本、處理器架構與所需功能。

Clash for Windows 則是已停止維護的歷史用戶端。雖然名稱中有 Windows,過去發布的版本也不只支援 Windows;更重要的是,它並非所有 Clash 電腦版的統稱。舊教學中的 General、Profiles、Proxies 頁面,大致分別對應一般設定、設定檔管理與代理策略頁面,不能要求其他用戶端保留相同選單。

用戶端版本不等於核心版本

排查問題時,至少記下三項資訊:用戶端名稱與版本、核心名稱與版本、作業系統與架構。先到「設定」中的「關於」或版本資訊查看,再檢查核心設定或啟動記錄;不同發行版的選單名稱可能不同。只說「Clash 已更新」,無法判斷更新的是介面、核心,還是只重新整理了訂閱。

訂閱是否通用?請看最後交給核心的設定檔

「Clash 訂閱」可能回傳完整 YAML 設定檔,也可能只回傳節點清單,甚至可能因連結失效而顯示登入網頁。用戶端能儲存連結,不代表核心已接受其內容。完整設定檔通常包含 proxies、proxy-groups、rules 等欄位;透過 proxy-providers 引用的節點提供器檔案,則不必具備完整設定檔的所有結構。

  1. 先確認訂閱輸出的格式。服務商若提供多種格式,請選擇與目標核心相容的選項。在瀏覽器看到 Base64 文字或 HTML 頁面時,不要直接把它當成完整的 YAML 設定檔。
  2. 接著確認協定與欄位。若訂閱使用新協定、新的 DNS 欄位或 mihomo 擴充規則,舊版核心可能直接回報解析錯誤,也可能到連線階段才失敗。
  3. 最後檢查用戶端合併後的設定。用戶端的覆寫、設定合併或指令碼可能會改動連接埠、DNS 與規則。訂閱原始內容正確,不代表最後執行的設定仍然相同。

遇到 unsupported proxy type 之類的提示時,優先確認節點類型與核心支援範圍;若是 YAML 解析錯誤,先檢查縮排與內容格式。盲目更換用戶端,可能只是把同一份錯誤設定交給另一套介面處理。

連接埠、系統代理與 TUN 分別由誰負責

用最精簡的設定檔了解本機連線入口

以下是用來說明欄位關係的最精簡設定檔,不含遠端代理節點,所有符合規則的流量都會直接連線。這不是可取代訂閱的代理方案,也不建議直接覆蓋目前使用中的設定檔。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

rules:
  - MATCH,DIRECT
  • mixed-port: 7890:讓核心在同一個連接埠接受 HTTP 與 SOCKS 代理連線;連線位址通常寫作 127.0.0.1:7890。
  • allow-lan: false:不向區域網路中的其他裝置開放代理入口;這與「允許本機應用程式使用代理」並非同一個開關。
  • mode: rule:依規則決定流量策略。切換模式本身不會自動產生遠端節點。
  • MATCH,DIRECT:未符合其他規則的流量會直接連線。實際訂閱通常會將部分請求交給策略群組,再由策略群組選擇節點。

開啟系統代理不代表所有應用程式都會走代理

用戶端開啟「系統代理」後,通常會將系統的 HTTP 代理位址設為核心入口。只有遵循系統代理設定的應用程式才會使用此入口;自行管理網路連線的程式、部分遊戲及某些 UDP 流量,不一定會套用這項設定。連接埠正在監聽、系統代理已開啟,以及某個程式確實透過代理連線,是三件需要分別確認的事。

TUN 模式則由核心搭配虛擬網路介面與路由設定來接收流量,用戶端負責權限、服務與開關管理。這可能需要管理員權限或已安裝服務元件。TUN 不是「全域模式」的另一種說法:TUN 決定流量如何進入核心,規則模式或全域模式則決定流量進入後如何選路,兩者可分開設定。

遇到 TUN 問題時,應一併檢查用戶端服務狀態、核心啟動記錄、DNS 與路由設定。只替換同名核心檔案,不一定能解決權限或虛擬網卡問題,反而可能破壞用戶端與核心之間的相容性。

實際選擇與轉移:分四步確認

  1. 先確認作業系統與架構。Windows 常見 x64 與 ARM64;macOS 則需區分 Apple 晶片與 Intel。先在系統資訊中確認,再選擇安裝檔;不要只因檔名中有 Windows 或 macOS 就下載。
  2. 接著確認使用方式。需要系統匣、設定檔管理與系統代理開關時,請選擇圖形用戶端;只有在伺服器或已有程序管理環境中使用時,才考慮直接執行 mihomo。
  3. 確認維護狀況與相依項目。查看用戶端近期的發布說明及其整合的核心資訊,尤其要確認所需協定、TUN 與 DNS 功能。新用戶端不代表核心永遠會自動更新至最新版本。
  4. 轉移時一次只啟用一套。先備份原有設定檔,退出舊用戶端並關閉其系統代理與 TUN,再啟動新用戶端,避免連接埠與路由互相干擾。

匯入成功後,如何確認連線路徑

先在設定檔頁面啟用目標設定檔,再到代理頁面確認策略群組選擇,最後檢查記錄中是否有連接埠占用或解析失敗。若實際混合連接埠為 7890,可在 Windows 終端機使用以下命令,明確指定 HTTP 代理入口:

curl.exe --proxy http://127.0.0.1:7890 --connect-timeout 10 -I https://example.com

這個命令不受瀏覽器是否讀取系統代理設定影響,但目標網站仍須可連線。收到回應標頭只能證明這次請求透過指定入口完成,不能單憑此點證明使用了遠端節點;還應在用戶端的連線頁面查看目標網域、符合的規則與所選策略鏈。若提示無法連線至本機連接埠,請先確認連接埠與核心狀態,不要立刻更換訂閱。

最後可歸納為兩點:日常桌面使用應優先考量用戶端的系統整合與維護狀況;設定能力和網路行為則應確認實際執行的核心。分開記錄「介面名稱」與「核心支援項目」,日後查閱教學、升級與排除問題都會更清楚。若要進一步確認欄位,請參閱本站的進階設定;初次使用則可依照使用指南完成匯入與系統代理設定。