入門指南 預計閱讀 13 分鐘

Clash 設定檔(Profile)是什麼:結構解析與多設定切換管理方法

拆解 Clash 設定檔中的 proxies、proxy-groups、rules 三大區段,說明 Profile 與訂閱的關係,並整理多個代理服務、多種用途設定並存時的命名、更新與切換方法。

Profile 不是訂閱網址,而是核心實際讀取的執行設定

在 Clash、Clash Meta 或 mihomo 用戶端中,Profile 通常譯為「設定」或「設定檔」。它最終是一份 YAML 文件,內容不只有節點,還會定義監聽連接埠、DNS、代理群組、分流規則、TUN 參數與控制介面。核心啟動時讀取的是這份設定,而不是瀏覽器中的訂閱 URL。

訂閱網址比較像設定來源。用戶端會向訂閱 URL 發出請求,下載伺服器回傳的內容,再將結果儲存為本機 Profile。之後即使暫時離線,只要本機檔案仍在且節點憑證有效,用戶端通常仍能載入這份設定。點選「更新訂閱」時,用戶端會重新下載,並覆寫或重建對應的本機內容。

一份完整設定通常包含哪些內容

最小可執行結構會因核心版本與用戶端封裝而異,但常見欄位可分成六個層次:

以下是一份用來理解層級的精簡範例。連接埠 7890 作為 HTTP 與 SOCKS 混合入口,9090 作為外部控制介面。範例省略真實憑證,不應直接作為可連線設定使用。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

proxies:
  - name: Tokyo-A
    type: ss
    server: 203.0.113.10
    port: 443
    cipher: aes-128-gcm
    password: example-password

proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - AUTO
      - Tokyo-A
      - DIRECT

  - name: AUTO
    type: url-test
    proxies:
      - Tokyo-A
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 80

rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

三大核心區段:proxies、proxy-groups、rules

理解 Profile 時,先不用從數百行 DNS 與規則集看起。掌握三個核心區段即可:proxies 提供出口,proxy-groups 組織出口,rules 決定每條連線交給哪個群組。三者形成一條由底層到上層的引用鏈。

proxies:節點本體與連線參數

proxies 是靜態節點陣列。每個項目至少包含名稱、協定、伺服器位址、連接埠與驗證資訊。不同協定還會加入不同欄位,例如 Shadowsocks 的加密方式、Trojan 的密碼與 TLS 參數、VMess 的 UUID,以及 VLESS 的流量控制與傳輸設定。

節點名稱必須能在目前設定中被辨識。代理群組會透過名稱引用節點,因此重新命名節點時,務必同步檢查 proxy-groups。如果群組仍使用舊名稱,設定驗證可能直接失敗,也可能在介面中出現空群組或無法使用的成員。

proxies:
  - name: HK-01
    type: trojan
    server: hk01.example.net
    port: 443
    password: change-me
    sni: hk01.example.net
    udp: true

大型訂閱通常不會把所有節點手動寫入主檔案,而是使用 proxy-providers。Provider 可以從遠端擷取節點集合,並依指定時間更新。它只負責「節點來源」,不會自動決定這些節點要用於哪些網站。

proxy-groups:將節點轉化為可執行策略

proxy-groups 是使用者在用戶端「代理」頁面中實際操作的物件。常見類型有四種:

類型 行為 適用情境
select 手動選擇節點或下層策略群組 總入口、固定地區、臨時故障排除
url-test 依測試 URL 定期探測並選擇低延遲成員 同一地區的多個一般節點
fallback 優先使用清單前方可用的成員,失敗後切換 主備線路、以穩定性為優先的工作
load-balance 依策略將不同連線分配給多個成員 並發請求較多且允許變更出口的工作

群組可以引用節點,也可以引用另一個群組。常見做法是建立一個總群組 PROXY,再加入 HK-AUTOJP-AUTOFallbackDIRECT。規則只引用總群組或業務群組,底層節點更新時就不必逐條修改規則。

proxy-groups:
  - name: Streaming
    type: select
    proxies:
      - HK-AUTO
      - JP-AUTO
      - PROXY

  - name: HK-AUTO
    type: url-test
    use:
      - provider-main
    filter: "(?i)港|HK|Hong Kong"
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 100

rules:由上到下,比對後立即停止

rules 是有順序的比對清單。請求會從第一條開始檢查,比對成功後便將連線交給指定策略,不再繼續往下。精確規則應放在寬泛規則之前,最後以 MATCH 作為兜底。

rules:
  - DOMAIN,api.example.com,DIRECT
  - DOMAIN-SUFFIX,example.com,PROXY
  - PROCESS-NAME,git.exe,PROXY
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - GEOIP,CN,DIRECT
  - MATCH,Fallback

在這段設定中,api.example.com 會直接連線。其他 example.com 子網域則經由代理。Windows 上由 git.exe 建立且能被核心辨識的連線會交給 PROXY。區域網路位址直接連線,其餘中國大陸 IP 直接連線,最後未比對到的流量交給 Fallback

Profile 與訂閱更新:哪些內容會被覆寫

直接編輯由訂閱產生的 YAML,短期內可能有效,但下次更新時卻可能全部消失。原因很簡單:用戶端會把遠端回應視為該 Profile 的權威版本,更新時重新寫入節點、策略群組與規則。手動加入的 PROCESS-NAME、DNS 上游或自訂群組,如果沒有獨立的覆寫機制,就會被遠端內容取代。

三種來源的行為差異

  1. 匯入本機檔案:從磁碟載入 YAML,通常不會自動存取遠端。適合完全自行維護的設定。
  2. 匯入訂閱 URL:依用戶端設定的週期向遠端發出請求。常見更新間隔為 24 小時,也可以手動觸發。
  3. 拆分 Provider:主設定保留 DNS、群組與規則,只讓 proxy-providers 更新節點。適合需要長期維護規則結構的使用者。

以常見圖形化用戶端為例,匯入路徑通常是「設定」→「新增」→「從 URL 匯入」,更新功能位於對應設定卡片的「更新」按鈕。連接埠則常在「設定」→「參數設定」→「混合連接埠」中調整。不同用戶端可能將 Profile 稱為「設定」、「訂閱」或「設定管理」,按鈕位置也可能不同,但底層關係不變。

mihomo 的 Provider 結構可以將遠端節點快取到本機檔案。以下的 interval: 86400 表示每 86400 秒,也就是每 24 小時檢查一次。健康檢查每 600 秒執行一次:

proxy-providers:
  provider-main:
    type: http
    url: https://subscription.example.net/clash
    path: ./providers/provider-main.yaml
    interval: 86400
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 600

如果用戶端支援覆寫、擴充腳本或 Merge 設定,建議優先將本機 DNS、規則與策略群組放入覆寫層。遠端只負責節點,個人邏輯保留在本機。如此一來,更新 80 個節點時,就不會順帶覆蓋為開發環境撰寫的直連規則。

多個代理服務、多種用途的設定如何命名與並存

設定一多,最先失控的通常不是 YAML,而是命名。清單中出現「新設定」、「訂閱 2」、「測試副本最終版」等名稱,幾週後便很難判斷哪個正在使用、哪個可以刪除。命名應直接表達來源、用途與更新時間。

建議命名格式

[來源]-[用途]-[更新方式]-[日期]

A站-日常-自動-20260625
B站-串流媒體-自動-20260625
本機-開發分流-手動-20260625
緊急-基本直連-手動-20260625

日期不必每次節點更新都修改,更適合用來記錄設定結構最後一次人工調整的時間。自動訂閱的更新時間交給用戶端記錄,否則每天重新命名只會製造雜訊。

按來源拆分,還是按用途拆分

拆分方式 優點 代價
每個代理服務一份 Profile 訂閱更新界線清楚,容易定位故障 切換來源時,規則與 DNS 也可能跟著變動
每種用途一份 Profile 開發、遊戲、串流媒體互不干擾 相同節點可能需要在多個設定中重複維護
一份主設定加上多個 Provider 規則結構統一,可同時引用多個來源 需要理解 Provider、篩選器與群組引用

剛開始使用時,每個來源保留一份 Profile 最省事。規則需求穩定後,再遷移至「一份主設定加上多個 Provider」。不建議一開始就把所有來源、數十個業務群組與上萬條規則塞進同一個檔案,任何縮排錯誤都會擴大排查範圍。

保留一份緊急設定

緊急設定不需要複雜。保留一個可用節點、一個 select 群組、幾條基本規則,並關閉非必要的 TUN 與複雜 DNS。主設定更新失敗、規則集網址無法連線或 TUN 驅動程式異常時,可以切換至緊急設定,先恢復基本連線再進行排查。

緊急設定應使用本機 YAML,不要依賴每次啟動都下載遠端規則集。每月手動載入一次,確認設定能通過驗證、節點仍可連線,且 7890 連接埠未被其他程式佔用。

切換 Profile 時,用戶端內部發生了什麼

切換 Profile 不只是更換節點清單。用戶端通常會停止或重新載入目前的核心,將新的 YAML 交給核心驗證,接著重新建立監聽連接埠、DNS、TUN 網卡與策略狀態。設定越複雜,重新載入涉及的系統元件就越多。

舊連線不一定會自動遷移

在切換前已建立的 TCP 連線可能會中斷,也可能維持到逾時,具體取決於用戶端的重新載入方式。新連線會依照新規則處理。正在下載大型檔案、執行 Git 推送或維持 SSH 工作階段時,不要任意切換 Profile。

一次可重現的切換檢查可以這樣進行:先在連線面板確認活動連線數,例如 23 條;停止下載工作;切換設定;等待核心狀態恢復為「執行中」;再開啟測試網域,檢查新連線命中的規則。在常見桌面環境中,簡單設定可於 1 至 3 秒內完成重新載入;啟用 TUN、遠端規則集與大量 Provider 時,可能需要更久。

策略選擇可能會被記住,也可能被重設

部分用戶端會依策略群組名稱保存上次的選擇。例如兩個 Profile 都有名為 PROXY 的群組,切換後用戶端可能會嘗試恢復上次選取的節點。但如果新設定中沒有同名節點,就會退回該群組的第一個可用成員。

因此,多個設定共用相同策略語意時,可以統一使用 PROXYStreamingFallback 等群組名稱。不同語意不要硬套相同名稱,否則介面看似保留了選擇,實際出口邏輯卻已經改變。

切換 TUN 設定時要額外檢查

TUN 模式會接管更多系統流量。兩個 Profile 如果分別設定不同的 stack、DNS 劫持或路由排除項目,切換時可能需要重建虛擬網卡與路由表。切換後應檢查:

一套可執行的設定管理流程

管理 Profile 不需要複雜工具。關鍵是將匯入、驗證、切換與回復分開處理,不要在目前唯一可用的設定上直接試錯。

第一步:複製後再修改

修改 DNS、TUN 或規則前,先複製目前設定並加上日期。保留原設定不動。若用戶端沒有複製功能,就匯出 YAML 並儲存至獨立資料夾。修改版本先命名為「測試」,驗證完成後再取代主要設定。

第二步:先進行語法驗證

YAML 使用空格表示層級,Tab、錯位縮排與缺少引號都可能導致載入失敗。尤其要檢查含有冒號的名稱、正規表示式與 URL。若核心錯誤訊息出現具體行號,先查看該行上方的清單縮排,因為錯誤位置經常是解析器最終無法繼續的位置,不一定是問題起點。

# 容易出錯:群組名稱含冒號但沒有引號
- name: Work: Git

# 更穩妥
- name: "Work: Git"

第三步:依固定樣本驗證分流

準備四類固定樣本:一個中國大陸網域、一個需要代理的網域、一個區域網路位址,以及一個指定程序。開啟用戶端連線日誌,逐項確認規則類型、命中策略與最終節點。不要只用瀏覽器查 IP,因為瀏覽器快取、HTTP/3 與既有連線都可能干擾判斷。

  1. 中國大陸網域應命中 DIRECT 或預期的中國大陸策略。
  2. 代理網域應命中業務群組,而不是直接落到最後的 MATCH
  3. 192.168.0.0/16 等私有網段應維持直接連線。
  4. 指定程序規則應在對應程式建立新連線後出現。
  5. DNS 日誌不應持續出現逾時或循環查詢。

第四步:記錄回復點

確認目前穩定設定的檔名、混合連接埠、TUN 開關與主要策略選擇。測試設定異常時,依「設定」→「穩定設定」切回,再到「設定」→「參數設定」確認 7890 等連接埠已恢復。若核心沒有自動重新啟動,手動執行一次「停止」再「啟動」。

常見問題:匯入成功但設定無法使用

設定清單存在,代理群組卻是空的

先確認 proxies 中是否有節點,或 proxy-providers 是否下載成功。再檢查群組中的 proxies 名稱與 Provider 的 use 名稱是否完全一致。名稱區分大小寫,額外空格也會造成引用失敗。

更新後自訂規則消失

這是直接修改訂閱成品的典型結果。將自訂內容移至用戶端覆寫層,或建立本機主設定,透過 Provider 引入遠端節點。若用戶端不支援覆寫,就保留本機副本並手動合併,不要再把訂閱快取檔案當作長期編輯入口。

切換設定後瀏覽器仍使用舊節點

先開啟新的無痕視窗或完全關閉瀏覽器,排除連線重用。再查看連線面板是否產生新連線。如果新連線仍使用舊節點,請檢查同名策略群組是否恢復了歷史選擇,以及規則是否實際引用了另一個群組。啟用 TUN 時,還要確認虛擬網卡已依新設定重新載入。

規則已加入,卻始終命中 MATCH

檢查規則順序、網域類型與 DNS 行為。DOMAIN 只會比對完整網域,DOMAIN-SUFFIX 才會涵蓋子網域。IP 規則需要連線目標取得對應 IP;使用 no-resolve 時,不會為了比對主動觸發 DNS。程序規則還取決於平台與核心是否能取得程序資訊。

結論:將 Profile 視為可版本管理的執行設定

Profile 的核心不在於「安裝了多少節點」,而在於將入口、出口、策略與比對順序組織成一份核心可執行的設定。proxies 提供出口,proxy-groups 組合策略,rules 分配連線;DNS 與 TUN 則決定網域及系統流量如何進入這條鏈路。

多個設定並存時,使用易讀的命名,分清自動訂閱與本機設定,並保留一份緊急 Profile。更新後檢查節點、策略群組與規則命中;切換前停止關鍵連線,切換後驗證連接埠、DNS 與 TUN。如此即使訂閱變動或規則損壞,也能快速回到可運作的狀態。

繼續設定 Clash 用戶端

先選擇平台完成安裝,再依照教學匯入訂閱、切換 Profile,並檢查系統代理與 DNS。

前往下載頁 查看教學
下載Clash