Rule Providerとは何か
Clashの分流能力はrulesルールリストから来ています。各ルールは「あるトラフィックはどのポリシーを通すか」を記述します。従来の方法では数百・数千のルールを設定ファイルに直接書き込んでいました。例えばDOMAIN-SUFFIX,google.com,PROXYやGEOIP,PRIVATE,DIRECTなどです。
ルールが少ない場合は問題ありませんが、数千ルールに増えると設定ファイルが膨大になってメンテナンスが困難になり、コミュニティのルールライブラリの更新に追随することもできなくなります。Rule Provider(ルールセット)はこの問題を解決するために設計されました:外部のルールリスト(ローカルファイルまたはオンラインURL)を参照でき、Clashは定期的に取得してキャッシュし、rules内でRULE-SETとして参照できます。
Rule Providerを使うと、メイン設定ファイルには数十行のコアルールだけを残し、広告ブロック・ストリーミング振り分け・ローカルIP直接接続などの複雑なロジックをコミュニティが専門的にメンテナンスするルールセットに任せられます。シンプルかつ継続的に更新されます。
ルールセットが必要な理由
インターネットのドメインとIPレンジは常に変化し、新しいサービスや新しいCDNノードが次々と登場します。ルールを手動でメンテナンスしてこのペースに追いつくことはほぼ不可能です。コミュニティには多くのボランティアがオープンソースのルールセットをメンテナンスしており(Loyalsoldier・blackmatrix7など)、広告・トラッカー・ストリーミング・ゲーム・開発者ツールなど様々なシーンをカバーしています。
Rule Providerでこれらのルールセットを参照すると、あなたのClash設定が:
- 自動更新:intervalを設定すると、Clashが定期的に最新のルールを取得し、手動での設定変更が不要になります。
- モジュール管理:広告ブロック・ローカル直接接続・プロキシ振り分けをそれぞれ独立したルールセットで管理でき、明確でメンテナンスしやすいです。
- オフラインでも使用可能:ルールはpathで指定したパスにキャッシュされるため、オフライン時も前回取得したバージョンが使用できます。
タイプとbehavior
ルールセットはソースで2種類に分かれます:http(オンラインURL、自動更新対応)とfile(ローカルファイル、カスタムルールに適しています)。内容フォーマット(behavior)は3種類あります:
- domain:純粋なドメインリスト。1行1ドメインまたはワイルドカードで、マッチング速度が最速です。広告ドメイン・トラッカードメインなどに適しています。
- ipcidr:IPレンジリスト(CIDR形式)。IPによる振り分けに使用します。ローカルIP直接接続・プライベートネットワーク直接接続などに使います。
- classical:汎用フォーマット。DOMAIN・DOMAIN-SUFFIX・IP-CIDR・PROCESS-NAMEなどの完全なルール構文を混在させることができ、柔軟性が最も高いです。
behaviorを選ぶ際はルールセットファイルの実際のフォーマットと一致させなければなりません。一致しないとClashの解析が失敗し、対応するRULE-SETルールが機能しません。ルールセットファイルをダウンロードしたら、まず開いてドメインリストかIPレンジか完全なルール構文かを確認し、正しいbehaviorタイプを選んでください。この手順はシンプルに見えますが、設定のミスを避けるための重要なポイントです。
設定例
設定ファイルのrule-providersセクションでルールセットを定義します:
rulesで参照します(順序が重要です。上から下へマッチし、ヒットしたら停止します):
上記の例では:広告ドメインはREJECT、プロキシが必要なドメインはPROXY、ローカルIPはDIRECT、プライベートIPは直接接続、最後にデフォルトでプロキシに送ります。
ルール順序とベストプラクティス
Clashのルールは上から下の順序でマッチし、最初にヒットしたルールが有効になり、以降はチェックされません。したがって:
- より精確・より優先度が高いルールを前に置きます。広告のREJECT・特定ドメインの直接接続など。
- GEOIP・MATCHなど広範なルールは後ろに置いてデフォルト処理とします。
- 重複するまたは衝突するルールセットを避け、予期しない動作を防ぎます。
- 新しいルールセットを初めて使用する際は、ダッシュボードで接続の向きを観察して分流が正しいことを確認することをお勧めします。
一時的にClashのdebugログレベルを有効にして、RULE-SETのヒット状況を確認することもできます。あるルールセットが長期間更新されない場合は、自分でforkしてメンテナンスするか、より活発にメンテナンスされている代替ソースに切り替えて、ルールが古くなって新しいサービスが正しく分流されない事態を防いでください。
よくある質問
ルールセットの更新が失敗する
URLがアクセス可能か、ルールセットのソースにアクセスするためにプロキシが必要かを確認してください。ルールセットをローカルに手動でダウンロードしてtype: fileに変更することもできます。
分流が期待通りにならない
Clashダッシュボードで接続の詳細を確認して、ヒットしたルールを特定してください。rulesの順序を調整するか、behaviorがルールセットのフォーマットと一致しているか確認してください。
設定ファイルのサイズが大きくなる
Rule Providerのrulesセクションには1行のRULE-SET参照だけが必要で、メイン設定ファイルが膨らむことはありません。ルールセットの内容は独立したキャッシュファイルに保存されます。
Proxy Providerとの違い
Clashにはノードを一括インポートするためのProxy Provider(ノードセット)もあります。Rule Providerは分流ルールを管理します。両者を組み合わせて使います:ノードセットが「どの道を通るか」を提供し、ルールセットが「どのトラフィックがどの道を通るか」を決定します。プロバイダーのサブスクリプションには通常ノードが含まれており、ユーザーが独自にRule Providerを追加するケースがより一般的です。この分業を理解することで、カスタム設定時に遠回りをせずに済みます。
実践的な組み合わせのアドバイス
初心者は3つの基本ルールセットから始めることができます:広告ブロック(reject)・ローカルIP直接接続(localcidr)・プロキシが必要なドメイン(proxy)。この基盤の上で必要に応じてストリーミング・ゲーム・開発者ツールなどの専門的なルールセットを追加していきます。ルールセットを追加するたびに、rulesに1行RULE-SET参照を追加し、順序に注意してください:ブロック類が最前、直接接続が次、プロキシがその次、GEOIPとMATCHがデフォルト処理です。一度に大量のルールセットを積み上げるよりも段階的に拡張していく方が、問題の特定がしやすくなります。
メンテナンス時はルールセットソースの更新頻度とコミュニティの評判だけを気にすれば、メイン設定を長期間変更しなくて済みます。これがRule Providerの最大の価値です:一度設定すれば継続的に恩恵を受けられます。分流を深くカスタマイズしたいユーザーは、コミュニティのルールセットをforkして自分のニーズに合わせて追加・削除し、プライベートURLにホスティングしてRule Providerで参照することで、完全にパーソナライズされた分流ストラテジーを実現できます。
まとめ
Rule Providerはルールのメンテナンスを「長いリストを手書き」から「参照 + 自動更新」へとアップグレードし、設定をシンプルにしながらコミュニティの最新のルーティング戦略を継続的に受け取れるようにします。domain・ipcidr・classicalの3種類のbehaviorを適切に組み合わせ、ルール順序と信頼できるソースに注意することで、Clashのトラフィック振り分けが正確かつ効率的になります。広告ブロックとローカルIP直接接続の2つのルールセットから始め、徐々にストリーミング・ゲームなどのシーンへと拡張していくことをお勧めします。使い込むにつれて、自分に合ったルールセットの組み合わせが見えてきて、Clashが本当に個人の習慣に合ったネットワーク管理者になります。ルールセットのエコシステムは活発であり、コミュニティの動向を継続的にフォローすることで、より優れたルーティング方案を発見し続けられます。
Clashを始める準備はできていますか?
Clash公式サイトから無料クライアントをダウンロードして、サブスクリプションをインポートするだけ。Windows・macOS・Android・iOS・Linuxに対応し、数分で使い始められます。