Clash 用戶端停止更新後:轉移至 mihomo 用戶端的替代方案
整理 Clash 原版核心停止更新後的生態變化,分別介紹仍在維護的 Android 與桌面版 mihomo 用戶端,並說明設定檔轉移時需調整的欄位與注意事項。
先分清停止更新的是用戶端還是核心
開啟舊用戶端的「關於」頁面,先記下應用程式名稱、應用程式版本與核心版本,再決定要替換哪個部分。用戶端負責匯入訂閱、顯示節點及啟動服務;核心則負責讀取設定、比對規則及建立代理連線。兩者並非同一個專案,更新狀態也不一定相同。
原版 Clash 相關專案於 2023 年停止公開維護後,舊安裝檔不會因此自動失效。現有節點可能仍可連線,但無法據此保證支援新協定、修正系統相容性問題或處理後續問題。Clash for Windows、原版 Clash for Android 與 mihomo 也不能只因名稱相似,就視為同一條更新路線。
mihomo 是由 Clash.Meta 專案延續而來的代理核心。舊教學中的「Meta 核心」通常指這條技術路線,並不是另一種訂閱服務。轉移的重點是選擇仍持續更新且能執行 mihomo 的用戶端,再分開轉移訂閱與本機設定。
Android 與桌面版分別該選哪種方案
先依作業系統篩選,再查看專案的正式發布紀錄、支援架構與核心說明。以下列出 mihomo 生態中的轉移選項,並不代表任何舊安裝檔會持續獲得維護。專案狀態可能變動,安裝當天仍應確認近期發布與問題處理情況,不要只憑下載檔案的修改日期判斷。
| 裝置平台 | 轉移選項 | 安裝前檢查 |
|---|---|---|
| Android | Clash Meta for Android、FlClash | Android 最低版本、ARM 架構、核心版本與 VPN 授權 |
| Windows | Clash Verge Rev、Clash Nyanpasu、FlClash | 系統架構、實際使用的核心、TUN 服務安裝需求 |
| macOS | Clash Verge Rev、FlClash、ClashX Meta | Apple Silicon 或 Intel 安裝檔、網路權限與輔助服務 |
| Linux | Clash Verge Rev、FlClash | 發行版套件格式、桌面環境、TUN 權限與服務執行方式 |
Android:先轉移設定,再接管流量
如果習慣原版 Clash for Android 的設定、代理與記錄頁面,可以先評估 Clash Meta for Android;若希望手機與電腦使用相近的介面,則可考慮 FlClash。兩者的選單、備份格式與內建設定不盡相同,請勿直接互換整個應用程式資料夾。
多數較新的 Android 手機採用 ARM64,但不能只看手機上市年份。請先在下載說明中確認裝置支援的 ABI,也就是應用程式二進位介面;確認支援 arm64-v8a 後,再選擇 ARM64 套件。Android 版本需求也應以相應發行版的說明為準。
桌面版:先用系統代理測試,再考慮 TUN
Windows 與 macOS 使用者可以先匯入訂閱、選擇節點,只啟用系統代理來測試瀏覽器。Clash Nyanpasu 等支援多種核心選項的用戶端,還要在核心管理頁面確認執行的是 mihomo。請勿把用戶端版本號當成核心版本號。
TUN 是接收裝置網路流量的虛擬網路介面,涵蓋範圍通常比只修改系統代理更廣,但會涉及路由、DNS 與系統權限。舊用戶端若透過系統代理正常運作,轉移的第一輪也應用相同方式測試,避免同時引入多個變因。
先從舊用戶端備份這四類資料
- 訂閱來源:保存原始訂閱 URL、更新間隔與服務提供者的說明。訂閱 URL 通常含有帳號權杖,請勿貼在公開筆記、截圖或線上轉換頁面中。
- 設定副本:匯出目前可用的 YAML 檔案。YAML 是以縮排表示層級的文字設定格式,編輯時請保留空格縮排,勿混用定位字元。
- 本機變更:記下自訂規則、覆寫、指令碼與 DNS 設定。用戶端可能在啟動時才將這些內容合併至執行設定,若只複製訂閱檔案就會漏掉這些資料。
- 系統設定:記下代理連接埠、區域網路分享開關、應用程式分流與自動啟動設定。Android 的應用程式排除清單,以及桌面版的系統代理開關,通常都不屬於通用訂閱的一部分。
如果舊介面提供「檢視執行設定」,可以另外保存一份作為比對,但不要直接覆蓋新用戶端的整個工作目錄。執行設定可能包含暫存路徑、控制介面金鑰及已展開的節點密碼,不但不適合跨裝置重複使用,也不宜公開求助時分享。
設定轉移:逐項檢查欄位與名稱引用
在新用戶端的訂閱或設定頁面,優先使用原始 URL 新增設定,再手動更新一次。若只有本機檔案,請使用「從檔案匯入」之類的功能。名稱會因用戶端而異,重點是分清「訂閱來源檔案」與「應用程式設定備份」,兩者不可混用。
逐一檢查代理、策略群組與規則的關聯
proxies儲存直接寫入設定的節點;proxy-providers儲存外部節點提供者。使用後者時,也要確認下載網址可連線,且本機快取路徑可寫入。proxy-groups定義策略群組,例如手動選擇群組。群組引用的節點名稱、其他群組名稱與提供者名稱都必須存在,大小寫與空格也要完全一致。rules依序比對連線。排在前面的規則會先比對,不要將範圍廣泛的MATCH規則放在仍需繼續比對的規則之前。rule-providers用來引用外部規則集。請檢查其type、behavior、format是否與實際檔案內容相符;網域清單不能直接當成完整的 classical 規則集。
遇到「策略群組不存在」時,先核對錯誤訊息中的名稱,不要立刻更換節點。用戶端覆寫將「代理」改成「節點選擇」,但自訂規則仍引用舊名稱,也會造成設定載入失敗。
連接埠與控制介面不要整段照搬
mixed-port 是同時接受 HTTP 與 SOCKS 代理連線的本機連接埠;external-controller 則是供介面或管理工具呼叫的控制介面,不是代理連接埠。以下僅為本機設定片段,不能直接當成完整訂閱執行:
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
這段範例使用 7890,不代表所有用戶端的預設值都是這個連接埠。如果終端原本連線至 127.0.0.1:7890,但新用戶端實際監聽 7897,就必須同步修改終端設定,或透過用戶端支援的設定入口調整連接埠。
不要將舊檔案中的 external-controller、secret、external-ui 與絕對路徑直接搬到手機。新用戶端可能會自行管理控制介面與資源目錄;將監聽位址改為 0.0.0.0,也可能擴大介面的可存取範圍。若無明確需求,請保留由應用程式管理的本機設定。
DNS、TUN 與舊指令碼分開處理
DNS:先使用新用戶端提供的預設方案
DNS 是將網域名稱轉換為 IP 位址的過程。轉移後若出現「節點延遲正常,網頁卻無法開啟」,未必是節點協定不相容,也可能是網域解析路徑改變。請先保留新用戶端建議的 DNS 設定,確認可用後再逐項轉移原有的自訂解析伺服器。
fake-ip 是透過分配合成 IP 協助分流的模式。如果舊設定使用 198.18.0.1/16 這類位址範圍,請勿誤認為節點的真實 IP。切換 DNS 模式後,應重新建立測試連線;必要時重新啟動應用程式或清除系統 DNS 快取,避免舊結果影響判斷。
TUN:手機與電腦的路由參數不要照搬
Android 用戶端通常透過 Android 的 VpnService 介面接收流量,首次連線時會出現系統 VPN 授權對話框。桌面版則可能需要安裝輔助服務或授予管理員權限。兩者都能接管流量,但系統授權方式、路由實作與可用選項各不相同。
tun.stack、auto-route 與 dns-hijack 應依目標用戶端與作業系統逐一檢查。不要因為舊電腦設定寫了某個虛擬網卡名稱,就把該名稱寫入手機設定。Android 也要檢查「設定」→「網路和網際網路」→「VPN」中的舊應用程式設定;部分廠牌會將入口放在「連線與分享」中。
指令碼:先確認由哪一層執行
舊設定中的 script:、舊介面裡的 JavaScript 覆寫,以及第三方訂閱轉換範本,屬於不同機制。不要假設 mihomo 會執行舊版 Clash Premium 指令碼,也不要將桌面用戶端的覆寫指令碼直接匯入 Android。請先停用指令碼,以標準規則建立可用的基準設定,再將必要邏輯改寫為目標用戶端明確支援的規則或覆寫。
用五個步驟確認轉移結果
- 檢查設定載入:開啟記錄,確認沒有 YAML 縮排錯誤、未知代理類型或找不到策略群組的提示。載入失敗時,先處理第一個錯誤;後續錯誤可能只是連帶結果。
- 檢查訂閱更新:手動更新一次,核對節點數量與帳號有效期限。HTTP
401或403應先檢查權杖與存取權限,不要將這類回應誤認為代理連接埠衝突。 - 檢查單一節點:在策略群組中手動選擇一個節點並執行連線測試。延遲測試只表示指定測試請求的結果,不代表所有網站或所有協定都能正常使用。
- 檢查實際分流:保持
Rule規則模式,分別前往預期直連與預期代理的目標,並在連線清單中確認命中的規則、策略群組與最終節點。 - 檢查系統接管:桌面版分別測試瀏覽器與終端;Android 則分別測試瀏覽器、目標應用程式,以及鎖定螢幕後重新喚醒時的連線狀態。
例如,確認桌面版本機 HTTP 代理連接埠為 7890 時,可使用下列命令單獨測試代理請求。這只會影響該次請求,不會替你啟用系統代理,也無法證明 TUN 路由運作正常。
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 -I https://example.com/
此處的連線逾時為 10 秒,總耗時上限為 20 秒,這些是疑難排解參數,不是實測速度。如果記錄出現 address already in use,先確認舊服務是否仍占用連接埠;若出現 no such host,優先檢查相關網域的解析過程;若出現 context deadline exceeded,還需搭配目標位址與連線階段判斷,不能直接認定訂閱已失效。
保留還原方式,避免訂閱更新覆蓋修正
完成第一輪測試後,再恢復自動啟動、背景執行與自訂規則。Android 可至「設定」→「應用程式」→目標用戶端→「電池」檢查背景限制;各系統的選項名稱可能不同。若已啟用「一律開啟 VPN」或「封鎖未使用 VPN 的連線」,請確認綁定的是新用戶端,否則停用舊應用程式後,整台裝置可能無法連線。
訂閱下次更新後,再確認一次自訂規則是否仍存在。直接編輯訂閱下載產生的 YAML,通常會在更新時被覆蓋。長期修改應放入用戶端支援的覆寫、合併設定或獨立規則提供者中,並確認最終執行設定中的規則順序。
- 分別保存舊設定與新設定,並在檔名加上日期,以免混淆。
- 記下用戶端版本、mihomo 核心版本與問題重現步驟,方便找出相容性問題。
- 尋求協助時只分享已去除敏感資料的記錄,並移除訂閱權杖、節點密碼與控制介面金鑰。
- 需要還原時,先關閉新用戶端的系統代理或 VPN,再恢復舊服務,避免殘留路由。
判斷轉移是否完成,不能只看新介面能否開啟;訂閱必須能更新、規則能命中、目標應用程式能連線,而且重新啟動或解除鎖定後仍符合預期。先完成這條最短驗證流程,再調整 DNS、TUN 與複雜覆寫,疑難排解的範圍會更明確。