1 為何需要訂閱轉換
多數機場會給您一條 HTTPS 訂閱網址,下載內容卻可能是 Shadowsocks、VMess/VLESS、Trojan 等「通用協定」的節點清單,經過 Base64 編碼後塞進文字檔。這類格式與 Clash/Mihomo 直接讀取的 config.yaml 結構並不相同:後者需要明確的 proxies、proxy-groups、rules(以及您若啟用規則訂閱時的 rule-providers)區塊。
當圖形用戶端(例如 Clash Verge Rev)提示「無法解析」「節點為空」或匯入後只有規則沒有節點,常見原因便是訂閱內容不是 Clash 方言。此時需要透過 Sub-Converter(訂閱轉換器)把遠端訂閱拉下來、辨識協定欄位,再輸出成 Clash 相容的 YAML 或片段,才能與您慣用的分流規則並存。
轉換並非「魔法提速」,而是格式對齊:節點品質、線路擁塞與機場政策仍取決於服務商。轉換器只做欄位映射與排版,若原始訂閱缺欄位、憑證不匹配或協定版本過舊,輸出的 YAML 也可能無法連線,需回到機場後台或客服確認。
2 Clash YAML 裡到底要有什麼
一份可被 Clash 系核心接受的設定,至少需要能描述出口節點與如何選擇節點。proxies 列出每個節點的類型、伺服器位址、埠號、密碼或 UUID、傳輸方式(如 ws、grpc)等;proxy-groups 則把這些節點放進 select、url-test、fallback 等群組,供規則引用。rules 決定哪類流量走哪個群組或直連。
實務上您可能只向轉換器索取「節點區塊」,再手動貼進自己的底稿;也可能讓轉換器輸出含規則的完整設定。若您已經有慣用的 ACL、GEOIP 或 Rule Provider 分流,建議採節點與規則分離:轉換器負責 proxies/proxy-groups,您維護 rules 與 dns,較不會在每次更新訂閱時被覆寫掉客製邏輯。
在伺服器或 NAS 上跑核心時,可參考Linux 安裝 Mihomo 與 systemd 教學,把轉換後的片段併入同一套目錄結構;重點仍是:先確保 YAML 縮排正確、群組名稱與規則中引用的一致。
3 線上轉換與風險控管
網路上可找到許多「一鍵轉 Clash」的公開站台,操作上通常是貼上訂閱網址、選擇輸出類型,再複製結果。這種方式最省時間,但請牢記:訂閱網址往往帶有權杖(token),任何人持有網址都能拉取您的節點清單。把完整網址送進第三方伺服器,等於讓對方代您向機場發起請求,存在日誌留存、快取外洩或惡意改寫的理論風險。
若您仍想使用線上服務,建議至少做到:優先選可信來源或社群長期維護的專案、避免在公開電腦或他人可讀的瀏覽器紀錄中留下網址、轉完後檢查輸出是否多出不明規則或遠端 script/external 類設定。對高敏感帳戶,更務實的作法是下一節的自建轉換器,讓流量只經過您控制的機器。
4 自建 Sub-Converter(推薦做法)
開源的 Sub-Converter 專案通常提供預編譯執行檔或 Docker 映像。自建後,您在本機或 VPS 上開一個僅內網可存取的埠,由瀏覽器或 Clash 透過「轉換後的訂閱網址」拉設定,機場原始網址就不需再暴露給公網上的陌生站台。
以 Docker 快速啟動(範例)
下列指令僅示範架構,映像名稱與標籤請改為您信任的倉庫版本;正式環境請加上防火牆與HTTPS 反向代理。
# Example only — adjust image tag and publish policy for your network
docker run -d --name subconverter \
-p 25500:25500 \
--restart unless-stopped \
tindy2013/subconverter:latest
服務啟動後,一般可透過 HTTP API(常見埠為 25500)帶參數請求轉換。若同機還跑 Mihomo,請避免埠衝突,並確認容器能連到機場訂閱網址(有些機場會限制來源 IP,需將 VPS IP 加白名單)。
5 常用 API 參數怎麼選
多數 Sub-Converter 的 REST 介面形如 /sub 或 /get,透過查詢字串指定輸出格式與來源訂閱。您最常調整的是:target(輸出類型)、url(機場訂閱,需 URL 編碼)、是否插入預設規則、以及是否啟用 emoji、節點命名模板等顯示選項。
target:clash 與 clashmeta
若用戶端內建 Mihomo(Clash.Meta) 核心,可優先選擇帶有 Meta 方言的目標(常見名稱為 clash 進階選項或 clashmeta,依轉換器版本而異),以便較完整地保留新傳輸或專有欄位。純經典 Clash Premium 核心則以一般 clash 輸出為主,遇到不支援的欄位時轉換器可能自動捨棄或降級。
url 與多訂閱
某些轉換器允許以分隔符號串接多條訂閱,一次合併輸出;缺點是網址變長、快取與除錯較難。實務上若機場已提供「整合訂閱」,優先使用官方單鏈,錯誤訊息較容易對應。
# After URL-encoding your airport subscription:
# GET http://127.0.0.1:25500/sub?target=clash&url=ENCODED_SUB_URL&insert=false
# insert=false: avoid injecting vendor default rules you may not want
產生的若是完整 YAML,可直接存成檔案給用戶端載入;若您只要節點,可在轉換器介面勾選對應選項,或從輸出中剪下 proxies: 與相關 proxy-groups: 區段,貼進既有底稿。
6 與規則檔合併的兩種套路
套路 A:proxy-providers——在父設定中宣告一個遠端或本機提供者,指向「轉換後的訂閱網址」,由核心定期拉取並自動展開節點。好處是更新訂閱不必手動複製貼上;壞處是您要確認群組名稱、health-check 與 override 選項是否符合機場節點命名習慣。
套路 B:靜態合併——每次用轉換器產出 YAML,將 proxies 併入版本控管的設定檔,或用腳本拼接。好處是規則與 DNS 完全自控;壞處是更新較繁瑣,較適合進階使用者或 CI 自動化。
無論哪種套路,請保持群組名稱與 rules 引用一致。例如規則寫 MATCH,PROXY,則 proxy-groups 內必須存在名為 PROXY 的群組,且其中列出的別名與 proxies 的 name 對得上。改名、emoji、前綴模板若與舊規則不相容,會出現「規則命中卻找不到節點」的假象。
dns 時,留意是否出現兩套 port 或重複的 external-controller 鍵;YAML 後寫入的鍵若覆蓋前項,會造成難以察覺的故障。
7 除錯與常見錯誤
- 轉換回傳 400/空內容:先以瀏覽器或
curl直接請求機場訂閱,確認是否需 Cookie、是否被 CDN 擋機器人、或訂閱已過期。再檢查url參數是否已正確百分比編碼。 - 用戶端顯示節點但無法連線:常見於指紋不符(ALPN、SNI、UUID)、時間不同步、或機場要求特定客戶端 User-Agent。此與轉換無關,需對照機場說明逐項核對。
- 規則全走直連或全走代理:檢查
mode是否誤設為global/direct,以及rules前段是否有過於寬鬆的DOMAIN-SUFFIX或錯序的MATCH。 - 想減少對第三方轉換依賴:長期仍建議選擇原生提供 Clash 訂閱的服務商,或維持自建轉換器;並在機場後台定期重設訂閱連結以降低外洩風險。
8 總結
訂閱轉換的本質,是把機場慣用的 SS/V2Ray/Trojan 清單,對應成 Clash 系核心看得懂的 YAML 結構。選對 target、釐清是「整包設定」還是「只要節點」、並用 proxy-providers 或靜態合併與您的規則銜接,就能在 Verge、FlClash、Linux 上的 Mihomo 之間維持一致體驗。相較把含權杖的網址隨意丟進不明網站,自建或受控環境下的轉換,明顯更能掌握隱私邊界。
當格式對齊後,接下來的體驗差異多半來自用戶端是否好管理訂閱、是否支援 TUN、以及 DNS 是否與規則一致。站上下載頁整理了跨平台用戶端與更新節奏,可與本文的轉換流程銜接,從匯入到分流一次到位。