Clash for Windows 停止維護後的替代方案:遷移至 mihomo 核心用戶端與設定
Clash for Windows 停止維護後,該換哪款用戶端?比較熱門的 mihomo 圖形用戶端,了解如何遷移訂閱、規則與覆寫腳本,以及遷移後的設定檢查重點。
先遷移訂閱與規則,再恢復系統代理和 TUN
Clash for Windows 已停止維護。遷移的重點不是找一款介面一模一樣的安裝程式,而是分別搬移訂閱來源、自訂規則、覆寫邏輯和系統接管設定。建議先透過新用戶端的系統代理完成基本測試,確認規則和 DNS 正常後,再啟用 TUN 模式。不要讓兩款用戶端同時修改系統代理或接管路由。
Clash for Windows 是圖形用戶端,mihomo 則是代理核心,兩者並非同一層。mihomo 延續 Clash 設定架構,並擴充了通訊協定與設定功能;採用此核心的用戶端,設定合併順序、服務管理方式和腳本介面仍可能各不相同。舊 YAML 能順利解析,不代表舊用戶端的所有設定都已遷移完成。
如何挑選 Clash for Windows 替代用戶端
Windows 桌面使用者可以先比較 Clash Verge Rev 與 Clash Nyanpasu。兩者都是圖形用戶端,但不能因為都支援 mihomo,就假設設定目錄、覆寫格式或服務元件可以互通。下載前請確認專案名稱、最新發行說明、作業系統需求,以及實際啟用的核心。
| 用戶端 | 建議優先確認的功能 | 遷移時的檢查重點 |
|---|---|---|
| Clash Verge Rev | mihomo 設定、訂閱管理、規則與腳本覆寫、系統代理及 TUN 管理 | 確認訂閱層級與全域覆寫的適用範圍;使用 TUN 前,確認服務元件與所需權限 |
| Clash Nyanpasu | 圖形化設定管理、設定處理流程與代理狀態檢視 | 確認所用版本支援並已選用 mihomo;重新檢查設定處理順序與腳本入口 |
依現有設定的複雜程度選擇
- 只有一組訂閱:優先確認匯入、更新、選擇策略組和檢視記錄是否順手;不必為目前用不到的功能增加遷移步驟。
- 已有規則與覆寫設定:優先確認規則能否插入最前面、全域設定和訂閱設定如何合併,以及能否檢視最終生效的設定。
- 需要使用 TUN:優先檢查服務安裝、管理員權限、虛擬網卡及與 VPN 並用的情況。能開啟 TUN,不代表所有應用程式都已正確接管。
不要只因下載檔案名稱相似,就認定是同一個專案;也不要只看介面版本號。圖形用戶端版本和核心版本是兩項不同資訊,排查相容性時應一併記錄。安裝檔請至下載中心取得,本文不提供舊用戶端安裝檔作為遷移方案。
遷移前先備份:區分訂閱原始內容與實際生效設定
以下以常見舊版 Clash for Windows 0.20.39 的介面名稱為例:先檢查 Profiles 中的設定來源,再到 Proxies 記錄策略組選擇,最後確認 General 中的連接埠、System Proxy、Allow LAN 與 TUN 狀態。其他版本的選項位置可能不同,請勿只依照截圖尋找按鈕。
- 保存訂閱來源。記下訂閱 URL、設定名稱、更新間隔,以及是否經過轉換服務。URL 中的權杖等同存取憑證,請勿放進記錄截圖。
- 保存訂閱 YAML。這是重新匯入及離線比對的基礎。只保存 URL,無法保留之後新增在本機的規則。
- 保存最終生效設定。可用來比對實際生效的欄位,但其中可能已包含用戶端產生的連接埠、控制介面和快取路徑,不適合直接覆蓋新用戶端的設定。
- 另存 Parsers、Mixin 與腳本。記錄哪些修改只套用於特定訂閱,哪些適用於所有設定。不要只備份一份看似完整的 YAML。
- 記錄外部相依項目。包括
rule-providers、proxy-providers、本機規則檔、自訂 DNS 與控制面板連線參數。
不要將舊設定資料夾整個覆蓋到新資料夾。用戶端自己的資料庫、快取、服務狀態和核心快取可能不相容。應搬移的是已確認的設定與規則檔,而不是舊程式的整套執行環境。
匯入訂閱:先讓原始設定獨立運作
- 在舊用戶端關閉 System Proxy 與 TUN,退出程式,並確認舊服務已停止接管網路。
- 開啟新用戶端,在訂閱或設定管理頁面匯入原有的訂閱 URL。若只有本機 YAML,請先以本機設定匯入,不要以為它會自動取得更新網址。
- 暫時不要加入自訂覆寫,先更新一次訂閱並啟用該設定,確認是否顯示節點和策略組。
- 確認運作模式為 Rule(規則),並在策略組中重新選擇節點。舊用戶端的選擇快取通常不會隨 YAML 一起遷移。
- 確認本機監聽連接埠,再開啟新用戶端的系統代理,測試一般網頁及預期透過代理連線的網站。
以目前實際使用的連接埠為準,別憑印象沿用舊值
舊環境可能使用 7890,新用戶端也可能使用其他連接埠。若終端機、瀏覽器擴充功能或開發工具仍指向舊位址,即使系統代理正常,這些程式仍可能連線失敗。以下是連接埠覆寫片段,並非完整設定;若用戶端可透過介面管理連接埠,請優先在介面中調整。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
mixed-port 提供 HTTP 與 SOCKS 共用的監聽入口。在 Windows PowerShell 中,可使用以下指令明確透過該 HTTP 代理測試連線;若實際連接埠不是 7890,請改用目前生效設定顯示的值。
curl.exe --proxy http://127.0.0.1:7890 --head https://example.com/
這項測試只會確認指定的代理入口能否處理一次要求,無法證明 TUN、生效規則和所有應用程式都正常。若回傳 407 Proxy Authentication Required,請檢查本機代理的驗證設定;若顯示無法連線至 127.0.0.1,請先檢查連接埠與核心運作狀態。
規則與覆寫腳本:遷移處理邏輯,不要照搬介面
Clash for Windows 的 Parsers、Mixin,與新用戶端的合併設定、腳本覆寫並非同一套介面。尤其是 JavaScript 腳本,輸入物件、進入點函式、可用 API 和執行階段都可能不同。不要只改副檔名就直接啟用舊腳本,也不要假設用戶端腳本能使用瀏覽器或 Node.js 的所有功能。
將舊設定變更分成三類
- 欄位覆寫:例如
log-level、allow-lan。先確認用戶端是否會接管這些欄位,再決定使用介面設定或覆寫。 - 清單修改:例如新增規則、DNS 伺服器或策略組成員。確認新工具是取代整份清單,還是支援插入最前面與附加項目。
- 程式化處理:例如依節點名稱篩選、批次重新命名、動態建立策略組。請依目標用戶端目前的腳本介面重新撰寫,並比對輸出設定。
規則會由上而下比對。原本應直連的公司網域,若新增在 MATCH 之後,就不會比對到。以下只示範兩條應放在兜底規則之前的規則,並非可獨立運作的完整設定:
rules:
- DOMAIN-SUFFIX,corp.example,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
corp.example 僅用於示範內部網域比對,實際使用時請填入自行管理的網域。不要用上述兩行取代訂閱中的整份 rules 清單;正確做法是透過目標用戶端支援的前置規則或腳本介面合併,並保留原有規則與兜底策略。
一併檢查規則集與本機路徑
rule-providers 中的 type、behavior、format 必須與檔案內容相符。舊的絕對路徑在新安裝目錄下可能失效,相對路徑也應依新用戶端實際使用的核心工作目錄核對。若出現 proxy group not found 之類的提示,請檢查規則右側引用的策略組名稱是否存在,名稱中的空格與大小寫也必須一致。
DNS、TUN 與外部控制:最後再恢復的三類設定
DNS:保留用途,不要機械式複製所有欄位
比對舊設定中的 dns.enable、enhanced-mode、nameserver 和 fake-ip-filter。使用 Fake-IP 時,198.18.0.0/16 是常見的映射範圍,不是遠端節點位址。更換核心或 DNS 模式後,瀏覽器與系統可能仍快取舊結果;請先關閉再重新開啟測試用的應用程式,必要時在 Windows 執行 ipconfig /flushdns。
不要只為了排除一則解析錯誤,就把所有 DNS 設定改成公用伺服器。公司內網網域可能需要內部 DNS;遷移時請分別測試一個內部網域和一個一般公網網域,並根據記錄確認要求是否經過預期路徑。
TUN:先處理權限,再檢查路由
確認系統代理測試通過後,先關閉其他 VPN 或會接管網路的虛擬網卡程式,再依新用戶端的要求安裝服務元件或授予管理員權限。檢查 tun.enable、stack、auto-route 與 dns-hijack 的最終值。不同通訊協定堆疊和系統環境各有差異,不宜把某個 stack 值當成適用所有裝置的修復方案。
分別在關閉與開啟 TUN 時測試:網頁、內部網站、區域網路裝置,以及需要 UDP 的應用程式。網頁能正常載入,不代表 UDP 轉送也正常;後者還取決於節點通訊協定、節點服務與規則。若發生斷網,請先關閉 TUN,回到已驗證的系統代理基準,再逐項排查。
外部控制:不要一併公開舊的監聽位址
若有使用外部面板,請重新檢查 external-controller 和 secret。僅供本機存取時,可使用 127.0.0.1:9090 這類迴圈監聽位址;不要為了讓舊面板立即連線,就直接設定為監聽所有網卡。舊面板保存的連接埠與金鑰也需要同步更新。一般桌面使用不需要將控制介面開放給區域網路。
遷移後無法連線:依症狀逐項排查
| 症狀或錯誤訊息 | 優先檢查項目 | 下一步 |
|---|---|---|
address already in use |
新舊核心是否同時占用代理或控制連接埠 | 結束舊用戶端及殘留服務,或為新設定選擇未使用的連接埠 |
| 訂閱更新回傳 401 或 403 | 訂閱權杖、帳戶狀態、要求網址與伺服器限制 | 確認原始訂閱來源,先別修改 DNS 或 TUN |
| YAML 解析失敗 | 匯入內容是否其實是 HTML、節點連結清單,或含有縮排錯誤 | 檢視回應內容;YAML 使用空格縮排,不可使用定位字元 |
| 系統代理正常,終端機卻失敗 | 終端機是否仍使用舊連接埠或環境變數 | 檢查 HTTP_PROXY、HTTPS_PROXY 與工具本身的代理設定 |
| 規則模式失敗,全域模式可用 | 比對到的規則、策略組選擇與 DNS 結果 | 在連線記錄中找出特定要求,不要長期依賴全域模式掩蓋問題 |
| 開啟 TUN 後完全無法連線 | 服務權限、其他 VPN、路由與 DNS 接管衝突 | 先關閉 TUN 恢復基準,再分別測試服務與路由設定 |
回報問題時,請提供作業系統版本、用戶端版本、核心版本、錯誤發生時間和最小重現步驟。設定與記錄請先刪除訂閱 URL、節點密碼、控制金鑰及敏感內部網域。進一步排查可參考說明中心與進階設定。
驗收與回復:更新一次,再重新啟動一次
- 訂閱更新成功,節點與策略組完整,自訂規則也沒有被覆蓋。
- 運作模式符合預期,常用策略組已重新選擇,連線記錄顯示的規則比對結果正確。
- 瀏覽器、終端機和內部網站分別通過測試;需要使用 TUN 時,另測區域網路與 UDP 應用程式。
- 重新啟動用戶端後,連接埠與覆寫設定仍正確;重新啟動系統後,服務與開機啟動行為也符合預期。
- 舊用戶端的系統代理、TUN 和自動啟動都已關閉,沒有兩個程式輪流修改系統設定。
需要回復時,先關閉新用戶端的系統代理與 TUN,再結束新用戶端及其服務,接著還原舊環境。不要同時啟動兩套網路接管設定來比較。驗收完成後再移除舊程式,並保留一份已移除敏感資訊的遷移紀錄,記下訂閱來源、覆寫檔位置和最終使用的連接埠,方便日後更換裝置時參考。