Clash 訂閱連結怎麼匯入:URL、Base64 與 YAML 三種格式的辨識與處理

說明各客戶端的訂閱連結匯入入口,教你從回應內容辨識 Clash YAML、Base64 節點清單或通用訂閱,並提供轉換與更新間隔的設定建議。

先區分訂閱 URL、節點清單與 Clash YAML

「訂閱連結」首先是一個 URL,而不是固定的檔案格式。客戶端存取 URL 後,伺服器才會回傳實際內容。回應結果可能是完整的 Clash YAML、只包含節點的 YAML、經過 Base64 編碼的通用節點清單,也可能是網頁、JSON 錯誤資訊或已失效提示。能否直接匯入,取決於客戶端是否能處理最終回傳的內容。

Clash 與 Clash Meta(目前常用名稱為 mihomo)核心的設定入口以 YAML 為基礎。完整設定通常包含連接埠、執行模式、節點、代理群組、規則和 DNS 等欄位。部分圖形客戶端會在匯入前辨識通用訂閱,並呼叫內建的轉換功能;核心直接讀取設定檔時,通常要求輸入內容已是可解析的 YAML。

三種常見結果的核心差異

類型 開頭或結構特徵 常見處理方式
Clash YAML proxies:proxy-groups:rules: 作為遠端設定匯入,或儲存為 YAML 檔案
Base64 節點清單 連續的字母、數字、+/=,正文很少換行 先解碼確認協定,再轉換為 Clash YAML
通用 URI 清單 ss://vmess://trojan://hysteria2:// 由支援相應協定的客戶端匯入,或轉換為目標格式

在 Clash 客戶端中匯入訂閱 URL

匯入前先確認系統時間正確,並確保連結能透過 HTTPS 正常存取。系統時間相差幾分鐘,可能導致 TLS 憑證驗證失敗;複製連結時多出空格、換行或中文標點,也會造成請求失敗。URL 應從 https:// 開始,複製後末尾不應附帶句號。

Clash Verge Rev 的遠端設定入口

以 Clash Verge Rev 2.3.1 的介面為例,可進入「訂閱」→「新增」,將類型設為「Remote」,在 URL 輸入框貼上網址後確認。匯入完成後,在設定卡片上執行啟用操作。不同版本可能會將新增入口顯示為加號按鈕,但遠端設定、URL 和更新間隔三個欄位的意義相同。

  1. 開啟「訂閱」頁面,選擇「新增」或加號按鈕。
  2. 選擇遠端設定類型,貼上完整的 HTTPS 網址。
  3. 名稱可填寫服務用途,例如「日常規則設定」,避免使用權杖作為名稱。
  4. 儲存後等待下載與 YAML 解析完成,再將該設定設為目前使用的設定。
  5. 進入「代理」頁面選擇代理群組策略,最後在「設定」→「系統設定」中開啟系統代理。

Clash for Windows 的舊版介面路徑

仍在維護舊環境時,Clash for Windows 0.20.39 的入口是「Profiles」→ 頂部 URL 輸入框 →「Download」。下載成功後,需要點選對應設定卡片,使其成為目前使用的設定。該客戶端已停止更新,這條路徑主要用於辨識既有安裝;新部署應優先選擇仍在維護且使用 mihomo 核心的客戶端。

匯入後不要只檢查「下載成功」

  • 檢查設定卡片是否顯示更新時間,而不是只出現在歷史清單中。
  • 檢查「代理」頁面是否出現預期的代理群組,例如「節點選擇」、「自動選擇」或「故障轉移」。
  • 檢查目前模式。規則設定通常應使用 Rule 模式,而不是 Global 模式。
  • 檢查本機監聽連接埠。常見的混合連接埠是 7890,但實際值應以設定中的 mixed-port 為準。
  • 開啟系統代理後,確認系統 HTTP 與 HTTPS 代理指向 127.0.0.1 和客戶端實際使用的連接埠。

從回應內容辨識訂閱格式

在瀏覽器中直接開啟訂閱 URL 時,可能會下載檔案,也可能顯示一長串字元。最可靠的判斷依據是 HTTP 狀態、回應標頭和回應正文,而不是檔案副檔名。伺服器即使使用 .txt 路徑,也可能回傳標準 YAML;反過來,名為 config.yaml 的網址也可能回傳登入頁面。

使用 curl 查看狀態與回應標頭

curl -L --compressed -D headers.txt \
  -o subscription.txt \
  "https://sub.example.net/profile?token=demo-token"

-L 會跟隨 301、302、307 或 308 重新導向,--compressed 允許 curl 解壓縮 gzip 或 Brotli 以外其支援的壓縮回應,-D 會將回應標頭另外寫入檔案。檢查最終狀態是否為 200,再查看 Content-Type。常見 YAML 回應可能使用 text/yamlapplication/yaml 或一般的 text/plain,因此 MIME 類型只能作為輔助判斷。

完整 Clash YAML 的結構

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

proxies:
  - name: Example-Trojan
    type: trojan
    server: edge.example.net
    port: 443
    password: sample-credential
    sni: edge.example.net

proxy-groups:
  - name: 節點選擇
    type: select
    proxies:
      - Example-Trojan
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.org,節點選擇
  - GEOIP,CN,DIRECT
  - MATCH,節點選擇

只要縮排與欄位合法,這類內容即可儲存為 UTF-8 編碼的 config.yaml。YAML 使用空格表達層級,不能將 Tab 當作縮排。名稱含有冒號、井號或前後空格時,建議使用引號包覆。設定能夠解析,也不代表節點參數一定有效;協定類型、連接埠、TLS、SNI 和驗證資訊仍需與伺服器一致。

只含節點的 provider YAML

另一種常見的回傳內容只有頂層 proxies:,沒有 rules:proxy-groups:。它通常是代理提供者檔案,適合由完整設定中的 proxy-providers 引用,不一定能單獨作為主要設定啟動。

proxy-providers:
  remote-nodes:
    type: http
    url: "https://sub.example.net/provider.yaml?token=demo-token"
    path: ./providers/remote-nodes.yaml
    interval: 21600
    health-check:
      enable: true
      interval: 600
      url: https://www.gstatic.com/generate_204

proxy-groups:
  - name: 自動選擇
    type: url-test
    use:
      - remote-nodes
    url: https://www.gstatic.com/generate_204
    interval: 300

這裡的 interval: 21600 表示每 21600 秒,也就是每 6 小時更新一次 provider;健康檢查每 600 秒執行一次;代理群組測速間隔為 300 秒。這三個間隔各自獨立,不能將測速成功理解為訂閱已完成更新。

Base64 與通用節點訂閱怎麼處理

Base64 是編碼方式,不是代理協定。它常用於將多行 URI 合併成一段便於傳輸的文字。典型正文由大小寫字母、數字、加號、斜線和結尾等號組成;URL-safe Base64 也可能使用連字號和底線。單憑字元外觀無法完全確定格式,必須解碼後查看內容。

離線解碼並辨識 URI

在 macOS 或 Linux 中,可以先複製回應檔案,再執行以下命令。GNU coreutils 常用 base64 -d,macOS 內建工具也支援 -D;若目前平台的參數不同,可先執行 base64 --help 查看。

base64 -d subscription.txt > decoded.txt
head -n 8 decoded.txt

解碼結果通常是一行一個節點 URI,例如 ss://trojan://vmess://。其中 VMess URI 的主體還可能再次包含 Base64 編碼的 JSON。不要反覆解碼整份檔案,應先確認第一層結果是否已出現可讀的協定前綴。

為什麼 Base64 訂閱不能總是直接交給 Clash 核心

Clash 設定載入器讀取的是 YAML 結構,而通用 Base64 清單只是多個節點 URI。圖形客戶端若提供「通用訂閱匯入」或內建轉換功能,可能會自動將 URI 轉換成 proxies 項目;直接執行 mihomo 二進位檔並透過 -f 指定設定時,則應先取得 Clash 或 mihomo 格式的 YAML。

  • 服務提供方同時提供「Clash」、「Mihomo」或「Clash Meta」格式時,優先選擇對應入口。
  • 需要轉換時,優先使用服務提供方的格式轉換功能或本機轉換工具。
  • 轉換目標要符合核心能力。包含 VLESS、Reality、Hysteria 2 等欄位時,應選擇 mihomo 相容格式。
  • 轉換後檢查節點數量、代理群組、規則和 DNS,不能只看檔案是否成功產生。

更新間隔、快取與訂閱失效處理

訂閱不需要每分鐘重新整理。遠端設定通常包含完整規則和節點清單,頻繁請求會增加伺服器負擔,也可能觸發速率限制。日常使用可設定為每 6 至 24 小時更新一次;節點變化頻繁時可縮短至 1 小時,但不建議將自動更新間隔設為幾十秒。

常用間隔換算

更新頻率 秒數 適用情境
每 1 小時 3600 節點變更較頻繁的臨時設定
每 6 小時 21600 一般遠端 provider
每 12 小時 43200 規則與節點變化較少的設定
每 24 小時 86400 穩定的完整設定訂閱

手動更新後仍顯示舊節點

  1. 確認更新的是目前啟用的設定,而不是清單中的另一個同名設定。
  2. 查看客戶端日誌中的請求時間、HTTP 狀態和解析錯誤。
  3. 排除訂閱 URL 的瀏覽器快取影響,使用 curl 加上 Cache-Control: no-cache 請求標頭進行比對。
  4. 檢查伺服器是否透過 CDN 快取舊內容,回應標頭中的 Age 可用於輔助判斷。
  5. 如果使用 proxy-providers,也要檢查 provider 檔案的更新時間,而不是只看主要設定的更新時間。
  6. 更新成功後重新選擇代理群組,已刪除的節點可能仍被舊工作階段暫時使用。

HTTP 狀態對應的排查方向

  • 401403:權杖無效、權限不足、來源受限或未符合請求標頭要求。
  • 404:路徑已變更,或複製網址時遺失了部分參數。
  • 429:請求過於頻繁,應延長更新間隔並等待限制解除。
  • 500502503:伺服器或上游暫時異常,保留現有設定並稍後重試。
  • 200 但解析失敗:回應可能是登入頁面、錯誤 JSON、Base64 文字或不相容的 YAML。

YAML 解析失敗與匯入後無法連線

訂閱匯入報錯應分成「下載階段」、「解析階段」和「執行階段」處理。下載階段檢查 HTTP 與 TLS;解析階段檢查 YAML 行號和欄位類型;執行階段則檢查節點握手、DNS、路由規則和系統代理。將三類問題混在一起,容易反覆更換訂閱網址,卻無法定位實際故障。

常見 YAML 錯誤

  • 縮排錯誤:清單項目前的空格層級不一致,或混入 Tab。
  • 重複鍵:同一層出現兩個 rules: 或兩個 dns:,後者可能覆蓋前者,也可能直接觸發嚴格解析錯誤。
  • 冒號未加引號:節點名稱含有「地區:線路」時,未加引號可能被辨識為鍵值結構。
  • 欄位類型錯誤:port 應為數字,卻被寫成無法轉換的文字;布林值應使用 truefalse
  • 核心不相容:設定包含 mihomo 擴充欄位,但客戶端仍使用較舊的 Clash 核心。

匯入正常但瀏覽器無法開啟網頁

  1. 確認目前代理群組已選擇可用節點,而不是處於空群組或已失效節點。
  2. 確認系統代理的監聽位址與連接埠一致。設定為 mixed-port: 7890 時,系統代理通常指向 127.0.0.1:7890
  3. 在 Rule 模式下查看請求命中了哪條規則。末尾的 MATCH 策略會影響未被前置規則匹配的流量。
  4. 檢查 DNS 設定。啟用 fake-ip 時,應確保相關應用程式流量確實經過核心,避免解析路徑與連線路徑分離。
  5. 只有在需要接管不遵循系統代理的應用程式時才開啟 TUN。開啟後若完全無法連線,應檢查 TUN 堆疊、路由安裝權限和 DNS 劫持設定。

訂閱匯入的穩妥設定流程

初次設定時,優先選擇伺服器直接提供的 Clash 或 mihomo YAML。匯入後保留一份最近可用的本機設定,遠端更新失敗時可以快速回復。客戶端支援設定合併時,可將個人規則、DNS 和腳本放在本機覆寫層,避免每次訂閱更新都覆蓋手動修改。

  • 訂閱 URL 僅用於客戶端設定,不要放入公開同步儲存庫。
  • 將完整設定與 provider 檔案分開管理,明確設定各自的更新間隔。
  • 節點名稱保持唯一,避免代理群組選到同名但參數不同的節點。
  • 修改規則後重新載入設定,並在連線日誌中核對命中的策略。
  • 更換核心版本後先驗證設定語法,再開啟系統代理或 TUN。

判斷訂閱格式的關鍵不在於連結看起來像什麼,而在於它最終回傳什麼。YAML 可以直接進入設定流程;Base64 需要先解碼辨識;通用 URI 清單則需要由相容客戶端或可信的轉換流程產生目標 YAML。依照下載、解析、啟用、接管流量四個階段檢查,絕大多數匯入問題都能準確定位。

下載 Clash 客戶端