ClashX 策略組設計指南:自動選擇、故障轉移與手動覆蓋的平衡

節點多不等於體驗好。真正決定穩定性的,是策略組如何分層、如何切換、如何回退。很多配置在測速時很漂亮,但一到晚高峰就反覆重選,最終表現為會話抖動、登入失效和業務中斷。

這篇文章給出一套可落地、可維護的策略組設計方案。你會得到一份結構模板、分工規則、上線流程和故障轉移參數建議,目標是把「不可控的快」改成「可預測的穩」。

為什麼節點多但體驗不穩

當所有流量都壓進單層自動組時,系統會頻繁在「當前最優節點」之間跳轉。這個跳轉不是免費的:連線重建、TLS 重協商、會話遷移都會帶來瞬時損耗,長連線業務最容易受影響。

💡
穩定性的關鍵是控制切換成本

設計策略組時,先思考「哪些流量可以被打斷」,再決定自動化邊界。把高容錯業務放自動層,把低容錯業務放手動層,才是長期可用的結構。

切換頻率
12-30 次/小時
單層自動組常見區間
延遲波動
40-180ms
晚高峰跨洲線路典型值
會話中斷
3%-8%
視訊會議與後台最明顯

診斷清單

  • 10 分鐘內連續兩次斷線或重連。
  • 測速正常但網頁首包明顯變慢。
  • 日誌出現連續策略切換記錄。
  • SSH、會議、遠端桌面比瀏覽網頁更容易卡頓。
  • 改為固定節點後問題明顯緩解。

三層策略組結構

推薦結構是:入口層(總開關)→ 區域層(自動收斂)→ 節點層(執行連線)。入口層保證可控,區域層負責彈性,節點層保持清晰。這樣能同時得到速度和穩定性。

YAML 模板

proxy-groups:
  - name: "G-ENTRY"
    type: select
    proxies: ["G-AUTO", "G-MANUAL", "G-FAILOVER", DIRECT]

  - name: "G-AUTO"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 80
    proxies: ["R-HK-AUTO", "R-SG-AUTO", "R-JP-AUTO"]

  - name: "G-MANUAL"
    type: select
    proxies: ["R-HK-MANUAL", "R-SG-MANUAL", "R-JP-MANUAL"]

  - name: "R-HK-AUTO"
    type: url-test
    url: "http://cp.cloudflare.com/generate_204"
    interval: 240
    tolerance: 100
    proxies: ["HK-01", "HK-02", "HK-03"]

  - name: "R-HK-MANUAL"
    type: select
    proxies: ["HK-01", "HK-02", "HK-03"]
結構 優勢 問題 適用
單層 配置最簡單 切換噪聲大、難排障 臨時測試
雙層 有一定分組能力 入口職責仍混亂 輕度個人使用
三層 可控、可觀測、可回退 初期搭建稍複雜 長期穩定運行
🧱
架構收益

入口層專注決策,區域層專注品質,節點層專注可達。分層後每次變更都能限定影響範圍,避免全域連鎖抖動。

三層結構的實際好處

  1. 關鍵業務可以綁定手動穩定組。
  2. 普通流量繼續享受自動優化。
  3. 故障只影響局部層級,不會全域擴散。
  4. 日誌與排障路徑更可讀,團隊協作成本更低。

自動與手動如何分工

分工原則很簡單:可重試業務優先自動,低容錯業務優先手動。不要把「自動最優」誤當成「全量自動」。

業務類型 推薦策略 說明
網頁瀏覽 / 社群媒體 G-AUTO 高容錯,適合自動切換
串流媒體 區域自動 + 人工兜底 地區穩定性優先
支付 / 企業後台 G-MANUAL 避免切換導致登入態失效
會議 / SSH 固定手動組 長連線對抖動最敏感
下載更新 G-FAILOVER 優先可用性
⚠️
自動切換風險提示

把低容錯業務放在自動組,等於把會話穩定性交給網路波動。建議關鍵網域先固定到手動組,再逐步放權給自動層。

規則示例

rules:
  - DOMAIN-SUFFIX,corp-admin.com,G-MANUAL
  - DOMAIN-SUFFIX,pay.example.com,G-MANUAL
  - DOMAIN-SUFFIX,zoom.us,G-MANUAL
  - DOMAIN-SUFFIX,netflix.com,R-SG-AUTO
  - DOMAIN-SUFFIX,youtube.com,R-HK-AUTO
  - GEOIP,CN,DIRECT
  - MATCH,G-ENTRY

故障轉移設計要點

故障轉移的目標不是「永不切換」,而是「發生切換時影響最小、恢復路徑明確」。參數設計要避免過度靈敏。

fallback 配置示例

proxy-groups:
  - name: "G-FAILOVER"
    type: fallback
    url: "http://www.gstatic.com/generate_204"
    interval: 180
    lazy: true
    proxies: ["R-HK-MANUAL", "R-SG-MANUAL", "R-JP-MANUAL"]

  - name: "B-WORK"
    type: select
    proxies: ["G-MANUAL", "G-FAILOVER", DIRECT]

rules:
  - DOMAIN-SUFFIX,corp.example.com,B-WORK
  - DOMAIN-SUFFIX,git.example.com,B-WORK
  - MATCH,G-ENTRY
🩺
健康檢查參數建議

interval 推薦 120-300 秒;探測 URL 選輕量且穩定地址;跨洲線路建議適當放寬容忍閾值,減少誤切換。

🚨
檢查間隔過短會製造假故障

10-30 秒級別探測通常會引入噪聲,系統會被「探測波動」而非「真實故障」驅動,最終出現反覆橫跳。

健康檢查間隔
180s
穩定與靈敏平衡點
切換延遲
1-3s
使用者可感知但可接受
恢復時間
3-8min
建議觀察窗口

可維護的命名規範

策略越複雜,命名越關鍵。命名混亂會導致「能跑但沒人敢改」。建議使用固定前綴,做到名稱即用途。

命名約定表

前綴 用途 示例
G- 全域入口組 G-ENTRY / G-AUTO / G-MANUAL
R- 區域組 R-HK-AUTO / R-SG-MANUAL
B- 業務組 B-WORK / B-STREAM
F- 兜底組 F-BACKUP / F-EMERGENCY
🤝
協作收益

統一命名後,值班同事可以直接從日誌定位責任層級,新成員也能快速理解配置結構,減少「改動恐懼」。

命名實戰示例

proxy-groups:
  - name: "G-ENTRY"
    type: select
    proxies: ["G-AUTO", "G-MANUAL", "F-BACKUP", DIRECT]

  - name: "B-STREAM"
    type: select
    proxies: ["R-SG-AUTO", "R-HK-AUTO", "R-JP-AUTO", "F-BACKUP"]

  - name: "B-WORK"
    type: select
    proxies: ["G-MANUAL", "F-BACKUP", DIRECT]

rules:
  - DOMAIN-SUFFIX,zoom.us,B-WORK
  - DOMAIN-SUFFIX,openai.com,B-STREAM
  - MATCH,G-ENTRY

上線與回退建議

策略組重構是高影響變更。上線要分階段,回退要可一鍵恢復,避免在生產高峰時做「大爆改」。

上線步驟

  1. 匯出當前穩定配置,儲存為 stable-snapshot
  2. 在測試裝置啟用新策略,觀察 24 小時。
  3. 優先遷移普通流量,關鍵業務最後遷移。
  4. 追蹤會話中斷率、切換頻率、關鍵業務成功率。
  5. 確認穩定後全量發佈,並保留回退窗口。
⚠️
回退常見錯誤

只回退 rules 不回退 proxy-groups,會導致組名引用失配。回退必須使用完整快照,保證規則與策略組定義同步恢復。

📦
快照策略建議

保留三類快照:長期基線、變更前快照、故障現場快照。這樣能快速定位問題來源並減少恢復時間。

常見問題 FAQ

Q1:節點只有十幾個,仍然要三層嗎?

A:要。三層的價值是職責分離,不是節點規模。小規模同樣需要穩定入口和明確回退路徑。

Q2:url-test 和 fallback 怎麼搭配?

A:一般是區域層用 url-test,關鍵業務兜底用 fallback,入口層用 select 做人工覆蓋。

Q3:自動組讓速度變慢,為什麼?

A:通常是檢查頻率太高或閾值太敏感,觸發過度切換。先放寬參數再看 24 小時趨勢。

Q4:手動組是不是更落後?

A:不是。手動組用於保障關鍵業務穩定,自動組用於追求普通流量效率,兩者是協同關係。

Q5:如何判斷命名規範是否合格?

A:如果新同事不看文件也能根據組名判斷用途與影響範圍,說明命名是合格的。

Q6:上線後異常,第一步做什麼?

A:先回退到最近穩定快照,恢復業務後再分析日誌,避免在故障期間疊加改動。

總結

好策略組不是「最激進自動化」,而是「自動與手動各司其職」。把關鍵業務從切換噪聲中隔離出來,再用命名規範和快照回退托底,節點再多也能跑得穩、改得動、查得清。