訂閱與選型 閱讀時間約 10 分鐘

Clash 訂閱格式說明:Base64 節點清單、YAML 設定與分享連結的差異

認識常見訂閱格式、mihomo 可直接辨識的內容與需要轉換的情況,並了解自架轉換服務時的規則與策略組注意事項。

訂閱網址與訂閱內容:先分清入口和資料

Clash 訂閱網址通常是一條 HTTPS 連結,提供取得設定檔的入口,但不代表回傳內容一定符合 Clash 或 mihomo 的設定格式。同一個服務可能提供通用節點訂閱、Clash 設定檔及其他用戶端格式;有些服務還會依據請求參數或用戶端的 User-Agent 回傳不同內容。

判斷格式時,應查看用戶端下載到的回應本文,而不是只看網址副檔名。沒有 .yaml 副檔名的連結,也可能回傳完整 YAML;帶有該副檔名的網址,也可能因登入逾期而回傳 HTML 頁面。HTTP 狀態碼為 200,只能表示伺服器有回應,不能證明設定檔有效。

三種常見格式:分享連結、Base64 清單與 YAML

格式 辨識方式 通常包含內容 在 Clash 中的處理方式
節點分享連結 以 ss://、vmess://、vless://、trojan:// 等開頭 單一節點的協定、位址、驗證資訊及部分傳輸參數 使用支援該協定的用戶端匯入功能或轉換工具解析
Base64 節點清單 本文通常是一長串編碼文字,解碼後多為逐行排列的分享連結 多個節點,通常不含 Clash 策略組與規則 先解碼並解析節點,再產生適用的設定檔或提供器檔案
完整 Clash YAML 包含 proxies、proxy-groups、rules 等頂層欄位 節點、策略組、分流規則,以及可選的 DNS 等設定 欄位與協定受目前使用的核心支援時,可作為設定檔載入
代理提供器 YAML 主要內容為頂層 proxies 清單 供主設定檔引用的節點集合 透過主設定檔中的 proxy-providers 載入,再由策略組引用

分享連結不等於完整代理規則

一條分享連結可以描述一個節點,通常卻不會說明「哪些網域直連」或「哪個策略組負責最後比對」。例如,TLS、SNI、WebSocket 路徑屬於節點連線參數;DOMAIN-SUFFIX、GEOIP 和 MATCH 則屬於 Clash 分流設定。兩者層級不同,無法只靠節點連結自動推導出完整規則。

不同協定的連結編碼方式也不相同。vmess:// 常見格式會編碼一段 JSON;ss:// 有多種歷史格式;vless:// 則常透過查詢參數帶入傳輸設定。若把所有連結都當成相同的 Base64 結構拆解,容易漏掉或誤讀欄位。

Base64 是編碼,不是加密

「Base64 訂閱」通常是將多行節點連結整批編碼後回傳。解碼只會還原文字,不會補上策略組,也不會讓原本不支援的協定變成受支援。部分內容還會使用 URL 安全字元或省略結尾填充符,因此不能只憑「是否以等號結尾」判斷是不是 Base64。

節點密碼和訂閱憑證可能直接包含在編碼內容中。公開貼出原始訂閱、解碼結果或完整 QR Code,都可能洩露同一組存取憑證。排查時請使用本機文字工具,分享截圖前也要遮蔽驗證欄位。

mihomo 可直接載入哪些內容?哪些情況需要轉換?

mihomo 是 Clash Meta 後續採用的專案名稱。就設定檔匯入而言,最明確的輸入格式是符合其設定結構的 YAML。完整設定檔需要包含可用的出口與比對邏輯;代理提供器檔案則供主設定檔中的 proxy-providers 使用,不能只因為同樣是 YAML 就視為完整設定檔。

  • 服務提供 Clash Meta 或 mihomo 設定檔:優先使用這種格式,同時確認用戶端核心支援訂閱中的特定協定與欄位。
  • 服務只提供 Base64 或逐行 URI:先確認圖形化用戶端是否支援這種匯入方式;若不支援,再使用可信任的轉換工具輸出目標格式。
  • 使用代理提供器:以目前 mihomo 版本支援的提供器格式為準。不同版本對其他載荷格式的支援可能有所差異;使用頂層 proxies 的 YAML,較容易明確檢查節點欄位。
  • 出現 unsupported proxy type:確認實際執行的核心、節點類型及用戶端版本說明。成功轉換檔案,不代表執行中的核心已支援該協定。

也別把 TUN 當成格式相容開關。TUN 模式透過虛擬網卡接管流量,訂閱解析則發生在載入設定檔時。若遇到 YAML 解析錯誤、節點欄位不受支援或策略組引用缺漏,啟用 TUN 並不能解決問題。

完整 YAML 與節點提供器:兩種檔案的用途

以下是一份用來理解結構的 mihomo 設定檔。它只提供直連,不含遠端代理節點,也不需要填寫帳號資訊。7890 是本範例的混合代理連接埠;若本機已有人使用,請改用未占用的連接埠,並同步修改使用該連接埠的應用程式設定。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

proxies: []

proxy-groups:
  - name: 出口選擇
    type: select
    proxies:
      - DIRECT

rules:
  - MATCH,出口選擇

proxies 用來明確定義節點,proxy-groups 用來整理可選出口,rules 則決定連線要交由哪個出口處理。規則中的 出口選擇 必須與策略組名稱相同。只有節點清單,卻沒有預期的策略組和分流規則,就無法還原完整設定檔的運作方式。

由主設定檔引用提供器檔案

若想更新節點時保留自己的規則,可以將節點集合與主設定檔分開。以下片段使用本機檔案提供器,路徑為 ./providers/nodes.yaml;此檔案必須與主設定檔的其他部分合併使用,不能當成完整設定檔直接覆蓋現有檔案。

proxy-providers:
  訂閱節點:
    type: file
    path: ./providers/nodes.yaml

proxy-groups:
  - name: 節點選擇
    type: select
    use:
      - 訂閱節點
    proxies:
      - DIRECT

rules:
  - MATCH,節點選擇

此本機檔案的 YAML 頂層應包含 proxies 清單,並在其中填入目前核心支援的節點定義。相對路徑會依核心的工作目錄解析,不一定等於檔案管理器中設定檔所在的目錄;圖形化用戶端也可能使用獨立資料目錄,請以執行記錄及用戶端的設定目錄入口為準。

use 引用的是提供器名稱,而不是個別節點名稱。更換節點清單後,只要提供器名稱維持不變,主設定檔中的策略組和規則就不必隨著每個節點名稱逐一修改。使用 HTTP 提供器時,還需設定遠端網址、快取路徑及更新間隔,並確認訂閱格式符合該提供器的匯入方式。

訂閱轉換時,著重檢查協定參數與策略組

轉換工具通常會做兩件事:解析節點資料,再將結果套用至目標設定檔。第二步可能會加入工具預設的 DNS、規則、策略組與連接埠。因此,「節點數相同」不足以證明轉換正確,還需要檢查產生的設定檔實際會如何運作。

  1. 確認目標類型。分清楚完整設定檔和節點提供器輸出。若要透過 proxy-providers 載入,應選擇適用於提供器的輸出,而不是把完整主設定檔當成節點檔案使用。
  2. 確認重要連線參數。逐項檢查伺服器位址、連接埠、驗證資訊、TLS 開關、SNI、傳輸類型、WebSocket 路徑及 Host。使用 REALITY 的節點也必須保留相應的公鑰、short-id 等參數。
  3. 確認名稱引用。規則目標、策略組成員和提供器名稱都必須相符。重新命名節點後,也要更新明確列出該節點的策略組;重新命名策略組後,則要同步修改規則目標。
  4. 確認篩選結果。節點名稱變更後,正規表示式篩選可能會排除所有節點。請先查看提供器中的實際節點數,再確認策略組是否篩選到預期的成員。
  5. 確認全域設定。檢查轉換範本是否變更 dns、tun、allow-lan 或控制介面。不要只檢查 proxies 區段。

自架轉換服務的存取界線

將原始訂閱網址交給轉換服務,代表該服務可以讀取訂閱內容。自架服務時,應限制可存取的來源、設定驗證,並避免將完整請求網址寫入公開存取記錄。若服務允許任何使用者提交抓取網址,還應限制迴路位址、內網位址及雲端環境中繼資料位址,避免轉換介面被用來存取內部網路。

巢狀訂閱網址也涉及 URL 編碼。原始網址若含有 &、? 或百分比符號,直接串接到轉換介面的查詢字串,可能會把一條訂閱拆成多個參數。請使用工具提供的表單或標準的 URL 建構方式,不要只靠手動替換幾個字元來處理整條連結。

匯入失敗排查:從回應本文到設定檔驗證

第一步:確認取得的不是網頁

查看用戶端的訂閱更新記錄。若出現登入頁、驗證碼頁、拒絕存取提示或 HTML 標籤,應先處理訂閱授權與服務回應問題。401、403 通常需要確認憑證或存取限制;429 則應依服務提示降低請求頻率,不要連續點擊更新。

第二步:確認結構與字元

YAML 必須使用空格縮排,不可使用 Tab。清單項目前的連字號、欄位後的英文冒號及正確的階層都很重要。節點名稱若包含冒號或井字號,可用引號括住,避免被誤認為結構或註解。不要只靠刪除報錯行來修復設定檔,因為下一條規則可能仍引用已刪除的項目。

第三步:使用實際執行的核心驗證

獨立執行 mihomo 時,可使用設定檔測試參數檢查檔案。以下指令假設目前目錄已有名為 config.yaml 的設定檔,且 mihomo 已加入命令搜尋路徑:

mihomo -t -f ./config.yaml

測試可以找出設定檔解析錯誤及部分引用問題,但不代表遠端節點可用。測試通過後,還要在用戶端確認所選策略、查看連線記錄,並實際發出請求。圖形化用戶端可能會覆寫設定,請檢查最終生效的設定檔,而不是只看訂閱下載前的範本。

更新後規則遺失:將節點更新與本機設定分開

完整訂閱設定檔通常會在更新時重新產生。若直接修改下載檔案中的 rules,下次更新時可能會被遠端內容覆蓋。若要長期保留修改,建議優先使用用戶端提供的覆寫或合併功能;也可以自行維護主設定檔,讓遠端訂閱只負責提供節點。

  • 只想匯入後直接使用:選擇服務明確提供的 mihomo 或 Clash Meta 完整設定檔,並確認策略組與規則符合需求。
  • 需要固定本機分流規則:保留自訂規則與策略組,透過提供器更新節點,或使用用戶端支援的持久覆寫功能。
  • 需要修改 DNS 或 TUN:在最終生效的設定檔中檢查這些欄位,並確認用戶端是否會另外接管,避免同時維護兩套互相覆蓋的設定。
  • 準備更換用戶端:同時備份訂閱入口與本機覆寫。只複製訂閱網址,通常不會一併帶走本機規則、介面中的節點選擇或系統代理設定。

排查順序可以固定為:確認回傳格式、確認匯入入口、檢查核心支援能力、驗證引用關係,最後測試連線。格式負責表達資料,策略組和規則負責分流,系統代理與 TUN 則負責將流量送進核心。將這幾個層次分開,才能判斷應轉換訂閱、調整設定,還是處理網路連線問題。

若想進一步了解設定欄位,請參閱進階設定;若分不清節點、策略組和規則,可先查閱名詞解釋。請將訂閱原始連結保存在受控位置,診斷資料只保留與故障相關的欄位。

下載 Clash