Clash 開源生態整理:mihomo 核心與各款 Mac 用戶端的關係

從原版核心停止維護談到 mihomo 接棒,釐清核心、圖形用戶端與規則集專案的分工,協助挑選適合 macOS 的用戶端組合。

Clash 生態的三層架構

搜尋 Mac 版 Clash 時,常會看到 mihomo、Clash Meta、ClashX Meta、Clash Verge Rev 等名稱。它們各自負責的層面不同:有的處理網路流量,有的提供設定介面,有的則只提供網域與 IP 規則。選擇前先釐清各層分工,才能判斷該更換用戶端、升級核心,還是調整設定。

層級主要職責檢查位置
代理核心建立代理連線,處理 DNS、比對規則並選擇策略組核心資訊、啟動記錄、執行設定
圖形用戶端管理訂閱、切換設定、設定系統代理並顯示連線狀態用戶端設定、訂閱管理、服務管理
規則與設定提供比對條件、節點定義與流量出口的對應方式YAML、規則提供者、訂閱內容

實際流量通常會經過「應用程式流量 → 系統代理或 TUN → 核心 → 規則與策略組 → 出口」。圖形介面負責控制這條路徑,但本身並不是代理協定的實作。同一個核心用於不同用戶端時,設定入口、訂閱覆寫方式與權限管理仍可能有所不同。

原版 Clash、Clash Meta 與 mihomo

原版核心與衍生專案

原版 Clash 的公開專案於 2023 年停止公開維護。舊資料也常提到 Clash Premium;它的功能範圍與原版開源核心並不完全相同。舊教學標示為 Premium 的功能,不能只憑「Clash」這個名稱判斷目前使用的核心是否支援。

Clash Meta 是從 Clash 發展而來的分支,後來改用 mihomo 這個名稱。因此,設定說明中的「Meta 核心」與專案文件中的「mihomo」,通常指的是同一條技術演進路線。「Meta」也可能保留在舊用戶端名稱中,不能據此推斷內含核心的新舊。

名稱相近,不代表欄位通用

mihomo 延續了許多 Clash YAML 設定慣例,例如 proxies、proxy-groups、rules,並擴充了協定與規則功能。這種相容性有其範圍:常見的基礎設定可能仍可使用,但採用 mihomo 擴充欄位的設定,不一定能交由舊版核心執行。

  • 匯入訂閱失敗時,先查看記錄是否指出未知代理類型、無效欄位或策略組參照不存在。
  • 設定載入成功,只代表通過目前階段的解析;還需要確認實際請求符合哪條規則,以及使用哪個出口。
  • 若需要特定協定、規則格式或 TUN 功能,請以所用核心的文件與實際版本為準。

別把「更換 GUI」當成一定能升級功能。新安裝的用戶端若採用不同核心,或沿用舊的執行設定,仍可能遇到相同問題。診斷時應分別記錄用戶端名稱、核心名稱與設定來源。

Mac 圖形用戶端的職責範圍

ClashX Meta、Clash Verge Rev、FlClash 等專案都曾提供 macOS 圖形介面,但操作重點與設定管理方式各不相同。下表用於了解彼此分工,不代表目前的維護狀態或完整功能清單;安裝前仍應查看各專案的發行說明與系統需求。

用戶端類型常見使用方式選擇時確認
ClashX Meta透過 macOS 選單列管理代理與設定隨附核心、設定入口、權限安裝方式
Clash Verge Rev在獨立視窗中管理訂閱、連線與執行設定覆寫機制、服務模式、核心設定
FlClash透過跨平台圖形介面管理 mihomo 設定macOS 版本需求、設定管理與 TUN 入口

系統代理需要用戶端與系統配合

macOS 系統代理通常會將支援相關設定的應用程式導向本機監聽連接埠。以 macOS Ventura 及後續版本的介面為例,可前往「系統設定」→「網路」→目前使用的網路服務→「詳細資訊」→「代理」,檢查 HTTP、HTTPS 與 SOCKS 項目。連接埠應與核心實際監聽的數值一致,不要直接照抄其他裝置的設定。

例如核心設定了 mixed-port: 7890,本機代理位址可設為 127.0.0.1:7890。這裡的 7890 僅供示範,不代表所有用戶端的預設值。終端機工具是否使用系統代理,也取決於工具本身,不能只看瀏覽器能否連線來判斷終端機的流量路徑。

TUN 需要核心功能與系統權限

TUN 會透過虛擬網路介面接收路由過來的 IP 流量,涵蓋範圍與系統代理不同。在 Mac 上,用戶端還需要取得權限、設定路由並配合 DNS。核心支援 TUN,不代表每個 GUI 都提供相同的開關、服務安裝流程或故障復原入口。

訂閱、規則集與策略組如何串接

訂閱連結是散布設定的入口,並非固定的內容格式。它可能回傳完整 YAML、節點提供者內容,或需要轉換的其他訂閱格式。某款用戶端能辨識某個訂閱,不代表其他用戶端也能用相同方式匯入。

節點提供者proxy-providers
從檔案或遠端來源載入節點集合,供策略組參照。節點的連線方式由協定參數決定。
規則提供者rule-providers
載入一組比對條件。規則負責判斷請求特徵,本身不會提供代理節點。
策略組proxy-groups
組織節點或其他策略組,提供手動選擇、自動測試或故障切換等出口選擇方式。

例如,某個網域規則集收錄了工作服務的網域,RULE-SET 會將符合條件的請求交給「工作出口」策略組,再由策略組決定使用哪個節點。下載規則集不會自動取得代理線路;若只有規則,卻沒有對應的策略組或節點,流量路徑仍不完整。

規則集格式必須相符

在 mihomo 中,規則提供者常見的 behavior 包含 domain、ipcidr、classical。網域清單、IP 網段清單與含規則類型的清單不能任意混用。format 則用來描述 YAML、文字或 MRS 等儲存格式;MRS 支援的行為類型也有限制,請依照所用核心的文件確認。

  • 先查看規則儲存庫的檔案內容與使用說明,再填寫提供者欄位。
  • 規則儲存庫中的分類名稱只是整理方式,不保證符合個人的使用情境。
  • 規則會依序比對;前面的寬泛規則可能導致後面的細項規則無法符合。
  • 最後的 MATCH 會決定未符合前面規則的請求去向,應明確指定目標。

從一份設定看懂核心與用戶端的分工

以下是用於本機驗證的最精簡結構範例。它只使用 DIRECT,不會建立遠端代理連線,適合用來觀察監聽連接埠、策略組與規則之間的關係。若需要遠端出口,請透過可信任的設定加入實際節點,不要將範例當成可用的訂閱。

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

proxy-groups:
  - name: 手動出口
    type: select
    proxies:
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.com,手動出口
  - MATCH,DIRECT
  1. mixed-port 由核心負責監聽,使用同一個連接埠接收 HTTP 與 SOCKS 代理請求;它不會自行變更 macOS 系統代理。
  2. allow-lan: false 用來限制區域網路存取代理入口;若確實需要共用,還要一併檢查監聽位址與防火牆。
  3. mode: rule 表示依規則選擇出口;用戶端切換模式後,實際執行狀態可能與原始檔案不同。
  4. 「手動出口」是策略組名稱。規則中的名稱必須完全一致,否則設定可能無法載入。
  5. MATCH,DIRECT 是兜底規則;此處讓其餘請求直接連線,並非通用的遠端代理方案。

用戶端可能會在啟動前合併訂閱、本機覆寫與介面設定,因此「下載的 YAML」與「核心最後收到的 YAML」可能不同。排除問題時,優先尋找用戶端的執行設定預覽或匯出功能,再比對記錄,不要只檢查訂閱原文。欄位說明可參閱YAML 設定手冊。

Mac 用戶端選擇與遷移檢查

依實際用途選擇

  • 主要使用瀏覽器:先確認系統代理、設定切換,以及結束用戶端後能否還原代理;不一定需要啟用 TUN。
  • 經常使用命令列與開發工具:先確認工具支援的代理參數與環境變數,再決定是否需要透過 TUN 統一接管流量。
  • 多個訂閱與複雜分流:優先確認本機覆寫、規則提供者管理、執行設定檢視與記錄篩選功能。
  • 偏好使用選單列操作:確認常用策略組與設定能否直接切換,同時保留查看核心資訊的方式。

分四步驗證遷移

  1. 備份原始設定與本機修改。記下規則順序、策略組選擇、連接埠與 DNS 設定;分享診斷資料前,請移除訂閱權杖與節點憑證。
  2. 確認架構與系統需求。在蘋果選單的「關於這台 Mac」查看晶片與 macOS 資訊,依專案提供的 Apple Silicon、Intel 或通用版本選擇安裝檔。
  3. 避免兩個核心爭用連線入口。先結束舊用戶端並關閉它的系統代理或 TUN,再啟動新用戶端。若記錄顯示位址已被使用,請確認舊處理程序是否仍在監聽。
  4. 先基礎,再進階。先確認設定能載入、系統代理運作正常,再啟用 TUN、DNS 覆寫與自動更新;每次只變更一類設定,並保留可還原的設定。

訂閱更新會取代哪些內容,取決於用戶端的設定管理方式。直接修改下載的檔案,可能在下次更新時被覆蓋;若要長期保留本機規則,較適合放在用戶端明確支援的覆寫層,並確認合併順序。

開源專案來源與問題歸屬

開源儲存庫、用戶端安裝檔與訂閱服務是三種獨立來源。能查看核心原始碼,不代表某個同名安裝檔就來自該專案;訂閱可以正常匯入,也不代表提供者與用戶端開發者有關。下載前應核對專案組織、儲存庫連結、發行說明,以及安裝檔對應的作業系統。

狀況優先檢查項目回報問題時附上
視窗無法開啟或訂閱按鈕發生錯誤用戶端介面與設定管理層系統資訊、操作步驟、已去除敏感資訊的錯誤訊息
未知協定或設定解析失敗核心支援範圍與設定格式核心資訊、最小設定、啟動記錄
特定網域使用了錯誤出口規則順序、DNS 解析與策略組符合的規則、目標位址、所選出口
只有特定節點無法連線節點參數、遠端服務與線路錯誤類型、連線時間、已去除敏感資訊的節點類型

提供最小重現案例,比貼上整份設定更有幫助。先只保留一個策略組與必要規則,移除無關的覆寫後再試一次。公開記錄前,請確認其中沒有訂閱連結、驗證資訊、區域網路位址或瀏覽紀錄;通常不需要完整公開這些內容。

最後的選擇可從三個問題著手:核心能否處理所需協定與規則、用戶端能否穩定管理這份設定,以及 macOS 是否依預期轉送流量。分別驗證這三個層面,比單看用戶端名稱更容易整理出可重複使用的設定方案。

下載Clash