単一のプロキシノードを使う場合、Clashのプロキシグループはただのセレクターに過ぎません。しかし複数のノードがあると、プロキシグループは本来の価値を発揮します:レイテンシベースの自動選択、シームレスなフェイルオーバー、ノード間の負荷分散、さらには高度なルーティングシナリオのためのマルチホップチェーン。この記事ではClashの5種類すべてのプロキシグループタイプについて、その設計思想と実践的な設定を解説します。

5種類のプロキシグループタイプ

Clashは異なるトラフィック管理目標に対応した5種類のプロキシグループタイプをサポートしています:

タイプ選択方法適したシナリオ
selectユーザーが手動選択メインプロキシグループ;ユーザーが手動で切り替え
url-test最低レイテンシを自動選択複数ノード;常に最速を使用
fallback順番に試し、最初の利用可能なものを使用高可用性;ノード障害時に自動切り替え
load-balanceノード間でラウンドロビン同時接続を分散;帯域幅の天井を引き上げる
relay順番にノードをチェーンマルチホップルーティング;出口IPを隠す

url-test:自動最良ノード選択

url-testグループはテストURLに定期的にHTTPリクエストを送り、各ノードのレイテンシを計測して自動的に最低レイテンシのノードに切り替えます。intervalはテストの頻度を制御します。toleranceは切り替えのしきい値を設定します。現在のノードのレイテンシが最良ノードをtolerancems以上上回った場合のみ切り替えることで、不必要なフラッピングを防ぎます。

url-test グループ設定
proxy-groups:
  - name: Auto-Select
    type: url-test
    proxies:
      - node-us-01
      - node-eu-01
      - node-jp-01
    url: https://www.gstatic.com/generate_204
    interval: 300           # 5分ごとにテスト
    tolerance: 50           # レイテンシ差が50ms以上の場合のみ切り替え

fallback:高可用性切り替え

url-testと異なり、fallbackは最速を選ばず、最初の利用可能なノードをリストの順番で使用します。現在のノードがヘルスチェックに失敗(タイムアウトまたは到達不能)した場合のみ次のエントリに移動します。これはプライマリ/バックアップセットアップに最適です。通常はノードAを使用し、Aがダウンしたら自動的にノードBに切り替えます。

fallback プライマリ/バックアップグループ設定
proxy-groups:
  - name: Primary-Backup
    type: fallback
    proxies:
      - node-primary      # 最初に使用
      - node-backup-1     # プライマリが失敗したら自動切り替え
      - node-backup-2     # 3番目の選択肢
    url: https://www.gstatic.com/generate_204
    interval: 60

load-balance:ノード間で接続を分散

load-balanceグループは複数のノードに同時接続を分散させ、総スループットを向上させます。Clashは2種類のstrategyをサポートしています:

  • consistent-hashing:同じ宛先ドメイン/IPへの接続は常に同じノードを使用。IPの一貫性が必要なサービス(ログイン、ストリーミングセッション)に最適。
  • round-robin:新しい接続のたびにノードリストを順番に使用。最も均等な分散。ファイルの一括ダウンロードなどステートレスなリクエストに最適。
負荷分散は単一接続の帯域幅を増加させません。例えば1本のビデオストリームは依然として単一のノードを通過します。メリットは複数の同時接続がアクティブな場合に現れます。総スループットは各ノードの帯域幅の合計に近づく可能性があります。

relay:マルチホッププロキシチェーン

relayはClashの最も特殊なグループタイプです。トラフィックはproxiesに列挙された順番でノードを通過します。Torのマルチホップ設計に似ています。最終的な出口IPは最後のノードのIPです。一般的なユースケース:初期レイテンシを下げるために近くのノードを経由してから地理的に異なるノードで出口する、または複数のホップをチェーンして真の出口ソースを隠す。

relay チェーン設定
proxy-groups:
  - name: Relay-Chain
    type: relay
    proxies:
      - node-hop-1     # トラフィックはここに最初に入る
      - node-hop-2     # ここから出口
relayの注意点:リレーチェーン内の最後以外のすべてのノードはTCP上でUDPをサポートしている必要があります(純粋UDPプロトコルの例:Hysteria2は最終ホップのみに使用可能)。ホップを追加するごとにレイテンシが増加するため、チェーンは短く保ちましょう。

グループタイプの組み合わせ:本番環境テンプレート

実際には、プロキシグループタイプを組み合わせるのが最善です:トップレベルのselectグループでユーザーが「Auto-Select」と手動ピン留めノードを切り替えられるようにします。その下にurl-testfallbackサブグループを配置して自動化しつつ、手動オーバーライドの機能も維持します。

本番環境プロキシグループテンプレート
proxy-groups:
  # トップレベル手動セレクター
  - name: Proxy
    type: select
    proxies:
      - Auto-Select
      - Primary-Backup
      - node-us-01

  # 自動レイテンシサブグループ
  - name: Auto-Select
    type: url-test
    proxies:
      - node-us-01
      - node-eu-01
      - node-jp-01
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50

  # プライマリ/バックアップサブグループ
  - name: Primary-Backup
    type: fallback
    proxies:
      - node-us-01
      - node-eu-01
    url: https://www.gstatic.com/generate_204
    interval: 60