先分清用戶端、核心與訂閱

Clash for Windows 通常簡稱 CFW,雖然名稱有 Windows,也曾推出 Linux 與 macOS 版本。它負責管理訂閱、選擇代理群組及切換桌面設定;實際處理連線的是隨用戶端執行的代理核心。CFW 停止維護後,舊版仍可能啟動,但不代表它會持續支援新系統、新協定或安全性修補。

遷移不等於重新購買訂閱,也不是把整個舊資料夾直接覆蓋到新資料夾。應分別處理三類內容:用戶端的操作設定、核心讀取的 YAML 設定,以及服務商提供的訂閱網址。三者彼此相關,但不能互相取代。

  • 用戶端設定:開機啟動、系統代理、快速鍵、介面偏好與背景服務,通常都需要在新程式中重新設定。
  • 核心設定:節點、代理群組、規則、DNS 與 TUN 欄位,都要確認新核心是否支援。
  • 訂閱網址:用來重新取得遠端內容。只保留下載後的 YAML 檔案,不代表仍能自動更新。

依作業系統選擇替代方案

如果原本主要使用 Clash YAML,優先選擇能讀取這類設定的用戶端,通常能降低遷移成本。mihomo 是原 Clash Meta 專案延續使用的名稱,支援更多協定與規則功能;不過用戶端是否提供相關開關、內含哪個核心版本,仍須以實際安裝內容為準。選擇前可先查看用戶端比較,再確認專案近期的發布紀錄與對應作業系統的安裝套件。

裝置系統 可評估的方案 遷移前先確認
Linux 桌面 Clash Verge Rev、FlClashs CPU 架構、DEB 或 RPM 套件格式、系統匣支援與服務權限
Windows Clash Verge Rev、Clash Nyanpasu 系統版本需求、核心類型,以及舊的系統代理是否已停用
macOS Clash Verge Rev、ClashX Meta Apple Silicon 或 Intel 架構、系統版本與網路權限
Android FlClash 等仍持續更新支援的用戶端 Clash 設定支援、VpnService 權限與背景省電限制
iOS 支援所需協定與設定匯入功能的 iOS 用戶端 當地 App Store 是否提供、訂閱格式與規則語法是否相容

Linux 使用者先確認安裝套件格式

Ubuntu、Debian 等發行版通常選擇 DEB;Fedora 等系統通常選擇 RPM。套件格式相同,也不代表相依套件一定符合需求。在終端機執行 uname -m,輸出 x86_64 通常代表 x64,aarch64 通常代表 ARM64。不要把「下載得到」當成「適合目前裝置」。

行動裝置不要直接套用桌面端的流量接管方式

Android 的 VpnService 是系統提供的流量接管介面,不能直接照搬 Linux 的服務模式。iOS 用戶端也可能採用不同的設定格式;支援相同節點協定,不代表能完整匯入 Clash 的代理群組與規則。先用一份設定測試匯入,再決定是否遷移全部設定。

舊版 Clash for Android 同樣屬於需要留意維護狀態的封存方案,不宜只因名稱熟悉就當成長期替代品。上表提供的是選擇方向,不代表未來一定持續維護。

備份訂閱與本機修改

先保留舊用戶端作為回復方案,不必急著解除安裝。在 CFW 的 Profiles 頁面逐一確認設定,記下名稱、來源、目前選取項目與更新間隔。訂閱連結應從原服務商後台或用戶端的複製功能保存;如果只有本機檔案,請註明「本機匯入」,避免誤以為它能自動更新。

  1. 匯出原始設定:保存目前使用的 YAML,也保留尚未經用戶端處理的原始訂閱內容,並在檔名加上備份日期。
  2. 另外保存加工邏輯:檢查 CFW 的 Parsers、Mixin,以及手動新增的規則。這些用戶端層級的設定不一定包含在訂閱檔案中。
  3. 記錄執行參數:記下 HTTP、SOCKS 或混合連接埠、是否允許區域網路連線,以及目前模式與 DNS 設定。
  4. 保存外部相依檔案:本機規則集、憑證檔案及設定引用的其他檔案都要備份,別只複製主 YAML 而漏掉它們。
  5. 記錄代理群組選擇:記下常用群組與節點名稱。舊快取可能無法由新用戶端讀取,最好另外準備一份文字清單。

在 Linux 上可先建立只有目前使用者能存取的備份資料夾,再將匯出的檔案放入其中。以下指令只會建立資料夾並限制權限,不會自動尋找或匯出舊設定:

mkdir -p "$HOME/cfw-migration"
chmod 700 "$HOME/cfw-migration"
# 將匯出的設定與遷移紀錄放入此資料夾後,再收緊檔案權限:
find "$HOME/cfw-migration" -type f -exec chmod 600 {} \;

匯入設定,不要覆蓋整個舊資料夾

新用戶端首次啟動後,先關閉 TUN 與系統代理,再匯入一份設定並檢查解析結果。如果有訂閱連結,優先重新匯入連結;只有本機 YAML 時,則選擇匯入本機設定。若用戶端提供不同的匯入類型,請分清「遠端設定」與「本機檔案」,避免更新按鈕看似可用,實際上卻沒有更新來源。

先處理欄位相容性,再調整規則

多數常見的 proxies、proxy-groups、rules 結構仍可沿用,但仍須檢查解析記錄。原版核心專屬的指令碼功能、CFW 專用加工語法與舊版實驗欄位,不能假設在 mihomo 中也會照常運作。遇到錯誤時先找出回報的欄位,不要只為了載入檔案就大量刪除所有未知內容。

  • 節點協定:VLESS、Hysteria2 等功能取決於目標核心;設定載入成功,不代表每個節點都已成功連線。
  • 規則提供者:rule-providers 的下載網址、行為類型與格式都必須相符,並留意記錄中的下載或解析失敗訊息。
  • 本機路徑:Windows 磁碟機路徑不能直接用於 Linux;相對路徑的解析位置,應以新用戶端的設定資料夾與核心行為為準。
  • 規則順序:規則通常由上往下比對。自訂規則若放在最後的 MATCH 之後,通常不會產生預期效果。

將自訂修改放入可持續保留的覆寫設定

不要只修改下載後產生的訂閱檔案,否則下次更新可能會覆蓋變更。優先使用新用戶端支援的覆寫、合併或指令碼機制,並確認實際合併結果:有些機制會取代整個規則陣列,有些則能將規則置頂,不能只看功能名稱就下判斷。先新增一條容易驗證的規則,更新一次訂閱,再確認規則仍然存在。

CFW 的 Parsers 或 Mixin 應逐項改寫成目標用戶端支援的形式,而不是照搬原本的包裝結構。欄位用途可參考核心與設定參考進行確認。

分開測試系統代理與 TUN

遷移時最常見的問題不是節點損壞,而是兩個用戶端搶用同一個連接埠,或舊系統代理仍指向已關閉的程式。切換前,請在 CFW 的 General 頁面關閉 System Proxy;如果之前啟用過 TUN,也要先關閉並正常退出舊用戶端,再啟動新用戶端。

第一輪只測試本機代理連接埠

以下假設新用戶端已明確設定 mixed-port: 7890,並監聽本機迴環位址。7890 只是本次檢查使用的連接埠,不是所有用戶端的預設值。請以介面或實際生效的設定為準,並使用自己有權存取的測試網址:

# 查看 Linux 上 7890 連接埠的監聽狀態
ss -lntp 'sport = :7890'

# 明確透過 HTTP 代理送出請求,不依賴桌面系統代理
curl --proxy http://127.0.0.1:7890 \
  --connect-timeout 10 --max-time 20 \
  --output /dev/null --write-out 'HTTP %{http_code}\n' \
  https://clash86.com/

連線遭拒通常代表沒有程式在監聽、連接埠填錯或程式啟動失敗;逾時則需進一步檢查核心記錄、節點連線與 DNS。即使收到 HTTP 回應,也只能證明這次請求有回應,仍應在用戶端的連線記錄中確認實際使用了預期的規則與代理群組。

第二輪再啟用系統代理

確認本機連接埠可用後,再讓新用戶端設定系統代理,並以瀏覽器測試。系統代理主要適用於會遵循相關設定的應用程式;終端機程式是否使用代理,還取決於環境變數與程式本身的參數。GNOME 桌面可執行 gsettings get org.gnome.system.proxy mode 查看桌面代理模式,但這項結果不代表所有應用程式都已透過代理連線。

最後再依需求啟用 TUN

TUN 用來接管更多不遵循系統代理設定的連線,因此需要相應權限或用戶端服務。先確認新用戶端已獲得服務權限,再啟用 TUN;不要讓新舊兩個虛擬介面同時接管預設路由。Linux 上可用 ip rule 和 ip route show table all 輔助檢查,但不要照抄網路文章中的批次刪除路由指令。詳細步驟請參閱TUN 模式教學。

依驗收清單確認遷移完成

延遲測試通過不代表遷移已完成。這類測試通常只確認測試目標可連線,不能取代實際服務、規則比對與 DNS 檢查。建議使用相同網路,依照下列順序逐項驗證,每次只調整一個設定,方便找出問題。

驗收項目 操作方式 通過條件
訂閱更新 手動更新一次,檢查時間與記錄 節點仍在,自訂規則沒有被覆蓋
規則分流 分別開啟應直連與應走代理的網址 連線記錄顯示預期規則與代理鏈
DNS 與內部網路 連線至常用網域、路由器與內部網路服務 解析正常,區域網路連線未被錯誤接管
背景恢復 關閉視窗、從休眠喚醒、切換網路 背景程序與所需的流量接管狀態皆可恢復
退出後恢復 關閉代理後正常退出新用戶端 系統不再指向失效的本機代理連接埠

如果啟用 fake-ip 後發現內部網站解析異常,請搭配 DNS 設定與 fake-ip-filter 進行排查;不要把所有 DNS 問題都簡單歸咎於「節點不好」。IPv6 也要另外確認:能連上 IPv4 網站,不代表 IPv6 連線也經過預期路徑。

手機還要增加一次鎖定螢幕測試。Android 裝置鎖定螢幕後若中斷連線,請先檢查電池最佳化、自動啟動與背景限制;這和桌面端是否成功匯入 YAML 設定是不同問題。

保留回復期限,再清理舊安裝

首次驗證完成後,至少經過一次重新開機、一次網路切換與一次訂閱更新,再考慮解除安裝 CFW。保留備份不代表要讓舊用戶端繼續開機執行:請關閉它的開機啟動,並確認舊背景服務不會占用連接埠。刪除程式檔案也不一定會自動移除系統服務或網路設定,清理方式應依原本的安裝方式處理。

  1. 在新用戶端完成正常退出測試,確認一般網路連線可恢復。
  2. 保留訂閱來源、本機覆寫設定與遷移紀錄,並確認備份檔案確實能讀取。
  3. 取消舊程式的開機啟動,並依原本的服務管理或解除安裝方式清理背景元件。
  4. 若要回復舊環境,先關閉新用戶端的系統代理與 TUN,再啟動舊環境,避免重複接管流量。

遷移是否完成,不是看介面是否相似,而是確認訂閱能更新、規則有跡可循、退出後網路能恢復。依「備份 → 匯入 → 本機連接埠 → 系統代理 → TUN → 重新開機驗收」的順序操作,遇到問題就能判斷卡在哪個環節,不必一次重裝所有元件。