生態選型 預計閱讀 11 分鐘

Clash、Meta 與 mihomo 有何關係?開源用戶端專案脈絡整理

整理 Clash 原版核心、Meta 分支與 mihomo 的演進脈絡,並比較 FlClash、Clash Verge 等圖形用戶端採用的核心與支援平台。

先分清核心、圖形用戶端與訂閱設定

搜尋「Clash Android 版」時,結果裡常會同時出現 Clash Meta、mihomo、FlClash 和 Clash Verge Rev。這些名稱並非同一個層級:有些是處理連線的核心,有些是提供按鈕和設定頁面的用戶端,還有些是歷史分支名稱。若把它們當成同一款軟體的不同介面,容易選錯安裝檔,也可能誤判設定檔的相容性。

層級負責的工作常見名稱或內容
代理核心解析設定、執行規則、處理 DNS、建立對外連線Clash、Clash Meta、mihomo
圖形用戶端安裝與更新設定、顯示策略組、呼叫系統網路權限FlClash、Clash Verge Rev、Clash Meta for Android
設定與訂閱提供節點參數、策略組、規則及其他執行設定YAML 設定檔、遠端設定網址、規則集

手機使用者通常安裝的是圖形用戶端,而不是直接執行核心程式。用戶端可能將核心打包在應用程式中,也可能允許獨立更新核心。因此,應用程式版本和核心版本是兩項不同資訊;只看用戶端名稱,無法確定它支援哪些協定或新的設定欄位。

從 Clash、Meta 到 mihomo 的演進時間軸

原版 Clash:規則代理與設定結構的起點

Dreamacro 開發的 Clash 是以 Go 撰寫的規則代理核心。常見的 proxies、proxy-groups、rules 等設定結構,成為許多後續用戶端與訂閱服務沿用的基礎。核心本身不等於 Android 應用程式,也不內建手機上的訂閱管理頁面。

也要分清原版開源 Clash 與歷史上的 Clash Premium。Premium 曾以獨立執行檔形式發布,部分增強功能並不屬於原版開源核心。舊教學提到「需要 Premium」的功能,不能直接套用到所有名稱含有 Clash 的用戶端;閱讀時應確認教學指的是哪個核心與哪個時期。

Clash Meta:在相容基礎上持續擴充

由 MetaCubeX 社群維護的 Clash Meta 源自 Clash,持續擴充協定支援、DNS、規則與 TUN 等功能。它保留許多熟悉的設定結構,但也新增原版核心無法辨識的參數。因此,「採用 Clash 格式」只代表整體結構大致相近,不保證所有舊核心都能載入。

例如,訂閱服務標示「Meta / mihomo」時,可能會使用 type: hysteria2 等較新的出站類型。若將這類設定交給舊核心,可能在解析階段就出現不支援代理類型的提示。此時調整節點順序並無幫助,應先確認目標用戶端實際整合的核心及其版本。

2023 年前後的維護變化與後續命名

2023 年 11 月前後,原版 Clash 與多個相關用戶端的公開維護狀態出現變化。原版儲存庫是否仍可使用、桌面用戶端封存、Android 專案停止維護,是不同專案各自發生的事,不能一概解讀為「所有 Clash 軟體同時停用」。已安裝的軟體可能仍能執行,但後續系統相容性與新協定支援仍須另外確認。

到了 2024 年初,Meta 分支採用 mihomo 這個名稱,專案儲存庫為 MetaCubeX/mihomo。這是同一發展脈絡中的更名與持續演進,並非兩套毫無關聯的核心。設定說明、舊版應用程式標題或記錄中仍可能保留 Meta 字樣,因此至今排查問題時仍會遇到這兩種名稱。

常見圖形用戶端採用哪些核心

以下依各專案通常採用的技術路線整理,適合用來了解專案脈絡,不能取代官方發布說明。第三方重新打包版、開發版與歷史版本可能採用不同組合。實際安裝前,請以專案發布頁及應用程式「關於」頁面的資訊為準。

專案核心關係主要平台與辨識要點
FlClash以 mihomo 為核心的圖形用戶端Android、Windows、macOS、Linux;使用 Flutter 建構介面
Clash Meta for Android延續 Clash for Android 的介面設計,整合 Meta / mihomo 核心Android;不能只憑介面與舊版相似就判斷核心
Clash Verge Rev以 mihomo 為核心的桌面用戶端Windows、macOS、Linux;是 Clash Verge 的後續分支專案
原版 Clash Verge歷史版本曾提供 Clash / Clash Meta 核心選擇桌面平台;與 Rev 是不同專案,原專案已封存
原版 Clash for Android歷史版本採用 Clash 系列核心,須依具體版本確認Android;原專案已停止維護,不能視為目前的 mihomo 用戶端

FlClash 和 Clash Verge Rev 並非手機版、電腦版的版本號

兩者都能使用 mihomo,但介面、設定儲存方式、系統代理設定與更新機制皆由各自用戶端實作。把桌面版「系統代理」開關的位置直接套用到 Android,往往找不到相應選單。Android 通常透過系統 VPN 介面接管流量;桌面版則可能分別提供系統代理與 TUN 設定。

Android 名稱相近,不代表可以直接覆蓋安裝

Clash for Android 與 Clash Meta for Android 名稱相似,但應用程式套件名稱、簽章和資料目錄可能不同。系統能否覆蓋安裝,取決於套件名稱與簽章等條件,而非圖示或應用程式標題。更換用戶端前,請先保存訂閱網址、本機覆寫設定與策略組選擇紀錄,不要預設新應用程式會讀取舊應用程式的資料。

iOS 應另行確認應用程式與設定格式

上表中的 FlClash、Clash Meta for Android 和 Clash Verge Rev,不能據此推論有可安裝的 iOS 版本。iOS 用戶端須配合系統的 Network Extension 等功能,安裝管道也與 Android 不同。某款 iOS 應用程式支援匯入部分 Clash 設定,不代表它一定執行 mihomo,更不代表支援完整的 mihomo YAML 欄位。

為 iPhone 挑選用戶端時,請先確認應用程式支援的協定、訂閱格式、規則形式與安裝方式,再判斷現有訂閱能否沿用。Android 的 APK 無法安裝在 iOS;桌面核心的執行檔也不是 iPhone 安裝套件。可在用戶端選型指南中依作業系統進一步比較。

為什麼同一份訂閱會有不同的匯入結果

完整設定檔與節點清單並不相同

完整的 YAML 設定檔可以同時包含節點、策略組、DNS、規則和監聽連接埠。只含節點的訂閱,則可能需要用戶端範本補齊其他內容。若一款應用程式會自動產生策略組,另一款則要求匯入完整設定檔,即使兩者採用相同核心,也不一定能接受完全相同的輸入。

訂閱服務也可能依匯出選項或請求特徵傳回不同內容。因此,比較時應確認選擇的是「Clash」、「Clash Meta / mihomo」還是用戶端專用格式,並核對匯入後的實際設定。訂閱網址通常含有存取權杖,排查問題的截圖應遮住權杖與節點憑證。

設定能解析,不代表功能已完整啟用

以下片段用於了解設定層級,並非可直接取代訂閱的完整設定檔。7890 是混合代理連接埠範例,9090 是控制介面連接埠範例;用戶端可能會覆寫這些設定,也可能使用其他連接埠。

mixed-port: 7890
allow-lan: false
mode: rule
external-controller: 127.0.0.1:9090

rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - MATCH,DIRECT

mixed-port 用來接收本機 HTTP / SOCKS 代理請求,external-controller 則用於管理介面,兩者用途不同。手機應用程式透過 VPN 介面接管裝置流量時,通常不需要使用者為每個應用程式手動填入 7890。也不要為了解決連線問題,就任意將控制介面改成監聽整個區域網路。

手機用戶端選型:檢查維護狀態、相容性與系統整合

挑選時先看手機作業系統,再看訂閱需求,最後考量操作習慣。應用程式名稱是否含有「Clash」並不足以作為判斷依據。若設定依賴較新的協定,核心版本資訊比圖示相似度更有參考價值;若裝置需要長時間在背景執行,系統相容性與記錄檢視入口也同樣重要。

  1. 確認平台與安裝管道。Android 使用者先確認 APK 的裝置架構;iOS 使用者則先確認目前可用的安裝方式。不要把桌面用戶端下載頁當成手機版入口。
  2. 查看應用程式版本與核心版本。分別在應用程式的「關於」、「核心」頁面或啟動記錄中確認兩者。選單名稱由各用戶端決定,沒有適用於所有應用程式的統一路徑。
  3. 確認訂閱格式。若服務提供者明確要求 Meta / mihomo,請優先選用說明中明確採用該核心的用戶端,並確認所需功能對應的最低版本。
  4. 確認日常操作入口。應能輕鬆找到訂閱更新、策略組選擇、執行記錄與本機覆寫設定。只會切換節點,還不足以排查後續問題。
  5. 確認系統整合。Android 使用者應確認 VPN 授權,並依實際需求調整電池最佳化、背景活動或自動啟動設定;這些選項的名稱會因手機品牌而異。

更新頻繁不代表每個版本都適合立即升級。升級前請閱讀發布說明並備妥可還原的設定,尤其留意 DNS、TUN、規則語法與設定遷移方面的變更。長期停止維護的用戶端即使暫時還能使用,也應評估其在新系統相容性與安全修補上的不足。

更換用戶端前的遷移檢查清單

使用同一 mihomo 生態只能降低部分設定的遷移成本,不能保證應用程式資料能直接互通。較穩妥的做法是先在新用戶端獨立測試,確認無誤後再移除舊用戶端資料。不要讓兩款都需要系統 VPN 介面的應用程式同時爭用連線。

  1. 保存輸入資料。記下訂閱來源、更新方式、本機規則、覆寫檔案及手動指定的 DNS 設定。只複製遠端訂閱,通常不會包含本機修改。
  2. 先保留預設值。在新用戶端匯入設定,檢查記錄是否出現未知欄位、不支援的代理類型或找不到策略組參照等錯誤。
  3. 確認流量分流。切換至規則模式,確認策略組指向預期的出站。規則會由上往下比對,尤其要檢查最後一條 MATCH 指向的目標。
  4. 測試網路切換。分別測試 Wi-Fi 與行動數據,並觀察切換網路或鎖定螢幕後能否恢復連線。單次連線成功只代表當下的網路路徑可用。
  5. 再遷移覆寫設定。逐項還原本機修改,每次只調整一類設定,避免同時更換 DNS、規則與 TUN 參數,導致問題無法定位。

若「舊應用程式正常,新應用程式無法連線」,建議依序檢查設定解析、策略組選擇、DNS 記錄、VPN 權限與背景執行限制,而不是直接認定 mihomo 與 Clash 設定完全不相容。DNS 與規則欄位的相關說明,請參閱技術參考中的 DNS 說明。

常見專案名稱問題

Clash Meta 和 mihomo 需要安裝兩份嗎?

通常不需要。兩者屬於同一分支的發展脈絡,手機使用者安裝整合相應核心的用戶端即可。只有在明確比較不同用戶端時才需要分別安裝;日常使用應避免同時啟動多款 VPN 用戶端。

Clash Verge Rev 可以當作 Android 版 Clash 使用嗎?

Clash Verge Rev 是桌面專案,支援 Windows、macOS 和 Linux。Android 使用者應選擇明確提供 Android 版本的用戶端,例如 FlClash 或相應的 Android 專案;採用相同核心,不代表安裝檔可以跨作業系統使用。

訂閱標示 Clash,就一定相容所有用戶端嗎?

不一定。還須確認服務傳回的是完整設定檔還是節點清單、是否包含 Meta / mihomo 擴充功能,以及用戶端內建核心的版本。遇到匯入錯誤時,保留移除憑證後的錯誤訊息,比反覆更換同一個訂閱網址更有效。

更換 mihomo 用戶端後,原有規則還能保留嗎?

核心支援的規則通常可以遷移,但用戶端覆寫格式與合併順序不一定相同。遷移後須確認規則已實際寫入執行中的設定,並檢查所參照的策略組名稱是否仍存在。

了解這條專案脈絡後,判斷順序就很清楚:先確認作業系統與用戶端,再確認核心及版本,最後核對訂閱與系統權限。Clash、Meta 和 mihomo 的關係可以解釋設定為何相似;至於手機上的安裝、更新與背景執行體驗,則取決於各用戶端的實作。

下載ClashAndroid / iOS 用戶端