一、Profile、訂閱與執行設定的關係
Clash 用戶端中的 Profile,通常是指可儲存、選取並交由核心載入的一筆設定記錄。來源可能是訂閱網址,也可能是本機 YAML 檔案。清單中有三張設定卡片,不代表三份代理設定會同時啟用;常見的桌面用戶端一次只會選用一份主要設定,再套用用戶端設定與覆寫內容,產生交給核心執行的設定。
本文以 Clash Verge Rev 等使用 mihomo 核心的桌面用戶端為操作範例。不同用戶端可能將功能入口標示為「訂閱」、「設定」或「Profiles」;下文也會說明要尋找的功能。舊版 Clash 核心與 mihomo 支援的欄位不盡相同,不能只看副檔名是 .yaml 就認定設定可以通用。
| 項目 | 儲存內容 | 更新方式 |
|---|---|---|
| 遠端 Profile | 訂閱網址、下載的設定與用戶端記錄 | 手動更新或定時更新 |
| 本機 Profile | 手動建立或匯入的 YAML | 自行編輯;外部檔案是否同步,視用戶端而定 |
| 覆寫設定 | 對基礎設定新增或修改的欄位與規則 | 由用戶端的合併功能或指令碼處理 |
| 執行設定 | 實際提交給核心的最終設定 | 選取設定、套用設定或重新載入時產生 |
訂閱內容也有不同類型:有些會回傳完整設定,有些只提供節點資訊。完整設定通常包含代理、代理群組與規則;只有節點資料時,可能需要透過用戶端支援的轉換方式或 proxy-providers 匯入,不能直接當成完整的 Profile 使用。請勿將含有存取權杖的訂閱網址提交給不可信任的線上轉換服務。
二、匯入兩份訂閱,先命名再啟用
管理多份設定時,首先要解決的是辨識問題。只用「訂閱 1」、「訂閱 2」命名,過一段時間就很難分辨哪份可以編輯、哪份會由遠端更新。建議分開記錄用途、來源代號與設定類型;顯示名稱不要包含存取權杖、電子郵件或完整訂閱網址。
建立容易辨識的設定記錄
- 開啟左側的「訂閱」或「Profiles」,找到訂閱連結輸入欄,貼上服務提供者給的 Clash 相容網址,再按一下「匯入」。等設定卡片出現後,別把貼上成功誤認為下載成功。
- 開啟卡片的右鍵選單或更多選單,進入「編輯資訊」等功能,將名稱改為「日常-A-遠端」。確認記錄中仍保留正確的遠端網址,再儲存。
- 用相同方式匯入第二份,命名為「備用-B-遠端」。如果匯入時出現格式錯誤,先確認回傳內容是 YAML,而不是網站登入頁面或過期通知。
- 點選「日常-A-遠端」卡片。看到選取標記後,前往「代理」頁面,確認有顯示這份設定所定義的代理群組與節點。
以上名稱只是用戶端顯示名稱,不會自動修改 YAML 中代理群組的 name。如果規則指向名為 PROXY 的代理群組,只把群組名稱改成「日常代理」卻沒有同步修改引用,可能會造成設定載入失敗。初次整理時只修改卡片名稱,先保留內部群組名稱。
三、切換多份訂閱後,確認四項設定是否生效
從 A 切換到 B,改變的不只是節點清單。DNS、規則、代理群組名稱、監聽連接埠與 TUN 相關欄位也可能隨主要設定改變;不過用戶端的全域設定也可能覆蓋其中部分內容。因此,不能只看「節點名稱變了」就判定整份設定已如預期運作。
- 檢查載入結果:選取 B 後開啟「記錄」,確認是否出現設定解析錯誤或代理群組引用錯誤。如果新設定載入失敗,核心可能會繼續使用舊設定,也可能停止服務,視用戶端的處理方式而定。
- 檢查代理模式:在首頁確認目前使用的是 Rule、Global 還是 Direct。要測試分流時請選擇 Rule;Global 會讓流量依全域策略處理,無法用來確認規則順序是否正確。
- 檢查實際出口:前往「代理」,為 B 的主要代理群組選取可用節點,再開啟測試網頁。如果 B 的群組名稱與 A 不同,先前儲存的節點選擇不一定能沿用。
- 檢查新連線記錄:前往「連線」,確認新請求命中的規則與代理鏈。長連線可能仍沿用原本的出口;請先關閉測試網頁再重新開啟,必要時只中斷對應的測試連線。
為什麼切換後會因連接埠變更而斷線?
假設應用程式手動設定了本機 HTTP 代理 127.0.0.1:7890,而 B 的有效監聽連接埠變成 7897,應用程式仍向舊連接埠傳送請求,就會連線失敗。這兩個數字僅供排查示範,並非所有用戶端的預設值。請在用戶端「設定」中的連接埠選項查看目前數值,再逐項對照應用程式的代理設定。
系統代理、TUN 與 Profile 是三個不同層面:Profile 提供核心執行所需的設定;系統代理會影響遵循系統代理設定的應用程式;TUN 則會接管符合路由條件的流量。選取某份設定,不代表系統代理或 TUN 已自動啟用。
四、自動更新間隔:分清訂閱更新與節點健康檢查
遠端 Profile 的定時更新由用戶端管理,通常可在設定卡片的「編輯資訊」中找到「更新間隔」或「自動更新」。先確認輸入欄旁標示的單位,再填入數值。如果單位是分鐘,填入 720 代表每 12 小時更新一次;如果單位是秒,12 小時則要填入 43200。不要只看其他用戶端的截圖就照著填。
- 日常設定:可以先設為每 24 小時更新一次;若介面單位是分鐘,填入
1440。服務提供者有明確的更新頻率建議時,請依其要求設定。 - 備用設定:也要定期更新,避免真正切換時才發現網址已過期。更新後請檢查節點數量,並實際測試一次連線。
- 本機設定:沒有遠端來源時,不必設定訂閱更新間隔;不要為了顯示自動更新按鈕而隨意填入其他網址。
用戶端關閉後,通常不會繼續執行內部的定時工作;電腦休眠期間也不要預期它會準時更新。用戶端恢復運作後是否會立即補上更新,取決於實作方式。若要外出使用備用設定,建議先開啟卡片選單按一下「更新」,確認更新時間,再實際測試一次連線。
別混淆三種 interval
Profile 更新間隔由用戶端的記錄管理;YAML 中 proxy-providers 下的 interval 控制對應遠端節點資源的更新;health-check.interval 則控制健康檢查頻率。在 mihomo 的這些 provider 欄位中,間隔單位是秒。把健康檢查改成 300 秒,只會調整探測頻率,不會讓主要訂閱每五分鐘重新下載。
五、本機 YAML:適合保存快照,不會自動同步訂閱
本機 Profile 適合測試規則、保留故障前的設定,或管理自行維護的完整設定。常見的匯入流程是「訂閱」→「新增」或「匯入檔案」,選擇本機 YAML 後,將它儲存為「實驗-規則-本機」。部分用戶端會將檔案複製到自己的資料目錄,不會持續讀取原始檔案;匯入後即使在外部編輯原始檔,也不一定會影響這張卡片。
建立本機副本的操作順序
- 在遠端卡片的選單中尋找「編輯檔案」或「開啟檔案」,複製已下載的基礎設定;也可以使用用戶端提供的匯出功能。
- 將副本儲存到受保護的本機資料夾,再透過匯入檔案功能新增一張卡片,不要覆蓋原本的遠端記錄。
- 一次只修改一個項目,儲存後選取本機卡片並檢查記錄。確認設定載入成功後,再修改下一項。
- 保留可切回使用的遠端卡片。實驗失敗時切回該卡片,再確認代理模式、代理群組選擇與新連線記錄。
以下是用來辨識欄位的基本片段,不是可以直接取代訂閱的完整代理設定。最後一條規則會將所有剩餘請求交由直連處理;這段設定沒有提供任何代理節點。測試規則前務必先了解這個結果,不要把它當成修復連線的方法。
mixed-port: 7890
mode: rule
log-level: info
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,DIRECT
YAML 縮排請使用空格,不要使用 Tab;同一層級的欄位要維持相同縮排。編輯現有檔案時,不要再新增第二個頂層 rules 或 dns 鍵,重複的鍵可能會被拒絕,也可能造成內容遭到覆蓋。儲存前,建議先使用用戶端的設定檢查功能。
本機副本中的節點憑證仍可能失效,複製一次不代表之後就不必更新。如果希望「節點持續自動更新,個人規則也能長期保留」,應使用覆寫或 provider 結構,而不是長期依賴已凍結的訂閱副本。
六、避免訂閱更新覆蓋個人設定:分開管理來源與修改
直接編輯從遠端訂閱下載的 YAML,下次更新時很可能會被新內容取代。更穩妥的做法是讓遠端 Profile 保留服務提供者的內容,並將個人規則存放在用戶端的覆寫、合併設定或指令碼中。用戶端每次產生執行設定時,再依照自身的處理順序套用這些修改。
支援此功能的用戶端,通常可在「訂閱」頁面找到「全域擴充設定」、「全域擴充指令碼」,或在個別卡片的選單中找到「擴充設定」。不同版本的名稱與套用範圍可能不同:全域設定可能影響所有 Profile;單一設定的擴充功能通常只會套用到對應記錄。請先在實驗副本確認套用範圍,再用於日常設定。
先確認合併規則,再新增分流規則
- 對應欄位:修改 DNS 子欄位時,請先確認用戶端會遞迴合併,還是以新內容取代整個區段,以免原有的解析設定遺失。
- 清單欄位:
rules、proxies、proxy-groups都包含清單。一般 YAML 片段不會自動帶有「追加」的意思,實際行為由用戶端決定。 - 規則順序:Clash 會依序比對規則,個人規則通常必須放在兜底規則
MATCH之前。加在MATCH後面通常不會有機會命中。 - 策略引用:如果全域覆寫引用了只存在於 A 的代理群組,切換到 B 後可能會載入失敗。若要在不同設定間共用,請統一群組名稱,或改為分別綁定擴充設定。
例如,要讓 example.com 及其子網域走直連,規則本身可以寫成 DOMAIN-SUFFIX,example.com,DIRECT。這只是在說明規則語法;請使用目前用戶端明確支援的「前置規則」入口,或依照其擴充指令碼介面插入。不要假設所有用戶端都接受相同的 prepend-rules 欄位。
手動更新一次,確認覆寫能保留
- 儲存覆寫並套用設定後,在最終執行設定中搜尋目標網域,確認只出現預期次數,且位置在兜底規則之前。
- 重新連線至該網域,在「連線」中確認是否命中目標規則及
DIRECT策略。 - 手動更新遠端 Profile,等待設定重新載入後,再重做前兩項檢查。
- 切換到備用 Profile,確認全域覆寫沒有引用不存在的代理群組;如果出現錯誤,請改成只綁定單一設定。
只有「更新後仍保留」、「請求確實命中」與「切換後沒有錯誤」三項都符合,才算完成持久化設定。查看基礎訂閱檔案時看不到個人規則,不一定代表規則遺失;覆寫內容可能只存在於最終執行設定中。
七、備份與還原:保留可重新啟用所需的最少資料
備份不能只留一張代理頁面的截圖。建議保留設定顯示名稱、遠端網址、個人覆寫、必要的本機 YAML,以及目前的連接埠與模式記錄。如果使用 proxy-providers、rule-providers 或相對檔案路徑,也要確認相依資源可以重新取得,或一併保存相關檔案。
| 狀況 | 優先檢查 | 還原方式 |
|---|---|---|
| 更新後自訂規則消失 | 是否直接修改了遠端檔案 | 從備份取回規則,再移至獨立覆寫設定 |
| 切換後顯示代理群組不存在 | 全域覆寫中的策略名稱 | 停用相關覆寫,改用單一設定的擴充功能 |
| 已選取設定,但應用程式無法連線 | 監聽連接埠、系統代理與 TUN 狀態 | 依有效連接埠重新設定應用程式代理,再測試新連線 |
| 修改本機檔案後沒有變化 | 匯入時是否已複製檔案 | 編輯用戶端實際使用的副本並重新套用 |
訂閱網址與設定檔可能包含可直接使用的存取憑證。請勿將它們放進公開程式碼儲存庫;提供排障資料給他人時,請移除訂閱權杖、節點密碼與私鑰,截圖也要遮住完整網址。換到新裝置後,先匯入一份確認可用的設定並完成連線,再還原覆寫,最後才啟用定時更新,方便逐步找出問題。
若還想了解訂閱匯入、規則與 TUN 之間的關係,請接著閱讀Clash 設定指南;首次安裝後的操作步驟請參閱使用指南。