首頁/部落格/負載平衡與容錯移轉
進階

策略群組進階:負載平衡與容錯移轉怎麼設定

發布於 2026-04-26 · 閱讀約 7 分鐘 · 適用於 Clash / mihomo 核心使用者

大多數訂閱預設產生的策略群組類型是 select(手動選擇)或 url-test(自動測速選最優),這兩種已經能涵蓋日常需求。但如果你手上有很多節點、或者對穩定性要求更高,fallbackload-balance 這兩種類型能提供更好的容錯和分攤效果。

01四種策略群組類型速覽

類型選擇邏輯適用場景
select完全手動選擇,核心不做任何自動切換你想自己精確控制用哪個節點
url-test定期測速,自動選延遲最低的一個節點使用日常使用,追求省心,多數訂閱的預設設定
fallback按清單順序使用第一個可用節點,目前節點失敗才切到下一個有明確的「主備」節點優先級,希望優先用某個節點
load-balance按演算法把不同連接分攤到多個節點上,同時使用多節點、希望流量分攤、避免單節點過載

02Fallback 容錯移轉設定範例

Fallback 會按你填寫的節點順序嘗試連接,只要清單裡第一個節點還能用,就一直用它;一旦偵測失敗才會切換到下一個,因此節點順序本身就是優先級。

proxy-groups:
  - name: "Fallback-Group"
    type: fallback
    proxies: ["HK-主", "HK-備", "SG-備"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

上面的例子裡,只要「HK-主」這個節點探測正常,流量就一直走它;探測失敗時才依次嘗試「HK-備」「SG-備」。

03Load Balance 負載平衡設定範例

Load Balance 會把不同的連接(不是同一個連接內的封包)分配給群組內的多個節點,達到分攤流量的效果,同時也天然具備一定的容錯能力——某個節點失效時,新連接會分配給其他健康節點。

proxy-groups:
  - name: "LoadBalance-Group"
    type: load-balance
    proxies: ["HK-01", "HK-02", "HK-03"]
    strategy: consistent-hashing
    url: "http://www.gstatic.com/generate_204"
    interval: 300

strategy 欄位的兩種取值

  • consistent-hashing:根據連接的目標位址做一致性雜湊,同一個目標大概率始終走同一個節點,適合需要「會話保持」的場景(比如某些網站對來源 IP 敏感)。
  • round-robin:按順序依次輪詢分配給群組內節點,分攤更均勻,但不保證同一目標始終走同一節點。
提示:負載平衡不是「多個節點一起加速同一個連接」,而是「不同連接分給不同節點」,所以單個大檔案下載的速度不會因為群組裡節點多就變快,它優化的是多工並發時的整體吞吐與穩定性。

04該怎麼選

如果你只有 1~2 個穩定節點,url-test 已經足夠;如果你明確知道某個節點品質更好、希望優先用它、其他節點僅作備用,用 fallback;如果你手上有多個品質相近的節點、擔心單節點扛不住多裝置同時使用,load-balance 是更合適的選擇。三種類型也可以巢狀組合,比如把一個 fallback 群組作為另一個策略群組的候選項之一,具體取決於你的實際節點情況。

05健康檢測相關的兩個欄位

fallbackload-balance 都依賴背景的健康檢測來判斷節點是否可用,這個檢測行為由 urlinterval 兩個欄位共同控制,設定不當會導致切換不及時或者檢測過於頻繁浪費流量。

  • url:健康檢測請求存取的位址,一般用輕量的測速位址(如 http://www.gstatic.com/generate_204),回傳成功即視為節點可用,不需要換成真實業務網站。
  • interval:檢測間隔(單位:秒),數值太小會讓用戶端頻繁發起探測請求,增加不必要的流量與耗電;數值太大則節點故障後要等更久才會被發現並切換,一般 300 秒左右是比較均衡的選擇。
提示:如果發現 fallback 群組「明明節點已經失效了卻還是很久才切換」,優先檢查 interval 是否設定得過長,這是最常被忽略的一個細節。

06常見問題

Q:load-balance 群組裡的節點數量有上限嗎?
沒有硬性上限,但節點數量越多,健康檢測的開銷也越大;實務上 3~6 個品質相近的節點通常就能取得不錯的分攤效果,節點太多反而不利於問題排查。

Q:策略群組切換的時候會不會斷線?
fallback 和 load-balance 只影響「新連接」分配到哪個節點,已經建立的連接通常不會被強制中斷,但如果原節點已經失效,該連接本身大概率也已經無法正常使用,需要用戶端重新發起請求。