入門ガイド 読了時間:約12分

ルール・グローバル・DIRECTモードの選び方|Clashのルーティング入門

ルールの照合順と3つのプロキシモードで通信がどう流れるかを解説。Web閲覧、ゲーム、仕事に適したモード選びも紹介します。

3つのモード:コアに届いた通信の出口を決める

普段はルールモードを使い、特定サイトの振り分けを調べるときだけ一時的にグローバルモードへ切り替えます。ローカルネットワークから直接アクセスできるか確認する場合は、DIRECTモードを使います。3つの違いは速度ではなく、ClashまたはClash Meta(mihomo)が取り込んだ通信をどのようにルーティングするかです。

まず、2つの段階を分けて考えましょう。システムプロキシとTUNは通信をコアに取り込み、ルール・グローバル・DIRECTは取り込んだ後の通信経路を決めます。グローバルモードに切り替えただけでは、システムプロキシを無視するゲームが自動的にプロキシ経由になるわけではありません。TUNを有効にしても、すべての通信がリモートノードを使うとは限りません。

モードルーティング方法主な用途
ルール Rulerulesを上から順に照合し、最初に一致したルールのポリシーを適用します。普段のWeb閲覧、国内外のサービスの振り分け、業務用の例外ルール。
グローバル Global通常の通信にはGLOBALポリシーグループで現在選択されている項目を使い、通常のルールリストでは振り分けません。一時的に出口を統一して、ルールの問題を切り分ける。
DIRECT(直連)通常の通信をローカルネットワークから接続先へ直接送ります。ローカルネットワークの接続確認や、リモートプロキシを一時的に使わない場合。

ルールモード:最初に一致したルールを適用。最も詳細なルールが優先されるわけではない

ルールモードでは、コアは接続から取得できる情報を使って照合します。たとえば接続先のドメインやIPアドレス、ポート、プラットフォームの対応状況によってはプロセス情報も対象です。条件に一致するルールが見つかると、そのルールで指定されたポリシーを適用します。「より詳細な」ルールを探して下まで照合し続けることはありません。

順序のあるルールを確認する

以下はルールの順序を説明するための設定例で、完全なサブスクリプションではありません。ウェブ用出口ポリシーグループが設定内に存在している必要があります。example.comは説明用のドメインです。実際に振り分けるドメインに置き換えてください。

mode: rule

rules:
  - DOMAIN,account.example.com,DIRECT
  - DOMAIN-SUFFIX,example.com,ウェブ用出口
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - MATCH,ウェブ用出口
  • account.example.comは1つ目のルールに一致し、DIRECTで接続します。
  • docs.example.comは1つ目のルールには一致しませんが、2つ目のルールに一致し、「ウェブ用出口」に振り分けられます。
  • 接続先が192.168.1.20の通信は3つ目のルールに一致します。通常、LAN内の機器にアクセスするときに使います。
  • それまでのルールに一致しなかった通信は、最後のMATCHに一致し、「ウェブ用出口」に振り分けられます。

2つ目のルールを1つ目より前に置くと、アカウント用ドメインもサフィックスルールに一致し、1つ目のルールでは処理できなくなります。そのため、アカウントや業務システムなどの限定的な例外ルールは、広範囲を対象とするドメインルールより前に置きます。フォールバック用のMATCHは最後に配置します。

ルールの振り分け先はポリシーグループでもよい

DIRECTは直接接続するポリシー、REJECTは接続を拒否するポリシーです。「ウェブ用出口」のような名前は通常、ポリシーグループを指します。ポリシーグループから別のグループへ進み、最終的に特定のノードまたはDIRECTへ接続する場合もあります。ログにグループ名が表示されても、そのグループ内で現在選択されている項目を確認するまでは、リモートノードを使用しているとは判断できません。

no-resolveは、このIPルールのためにドメイン解決を積極的に行わない指定です。接続先のIPアドレスをすでに取得できていればIP照合は可能です。一方、ドメイン名しかなく利用可能なIPアドレスもない場合、このルールは能動的な名前解決によって照合条件を得ることはできません。「設定全体のDNSを無効にする」という意味ではありません。

グローバルとDIRECT:比較には便利だが、通信の取り込みを切り替えるものではない

グローバルモードではGLOBALの選択内容を確認する

グローバルモードに切り替えたら、クライアントのプロキシまたはポリシーグループ画面を開き、GLOBALで現在何が選択されているか確認します。DIRECTが選択されていれば通信は直接接続されます。別のグループが選択されている場合は、そのグループが最終的にどのノードを使うかも確認してください。グローバルモードにしても、使えなくなったノードが直るわけではなく、ノードが対応していないUDP転送機能が追加されるわけでもありません。

実用的な比較方法は、同じノードを選んだままルールモードからグローバルモードに切り替え、問題のあるサイトへの新しい接続を試すことです。グローバルでは使えてルールでは使えない場合は、一致したルールとグループ内の選択を優先して確認します。どちらでも使えない場合は、ノード、DNS、通信の取り込み経路、接続先サービスを調べます。この結果で原因の候補は絞れますが、1回のアクセスだけで障害原因を特定できるわけではありません。

DIRECTモードでもローカルプロキシの入口は残ることがある

DIRECTモードでも、ブラウザーからのリクエストがローカルプロキシポートに送られ、その後コアが接続先に直接接続することがあります。「システムプロキシを無効にする」「TUNを無効にする」「クライアントを終了する」と同じではありません。ローカルの待ち受け、DNS設定、通信の取り込み機能が引き続き動作している場合があります。

プロキシによる通信の取り込みを完全に終了する場合は、まずクライアントでシステムプロキシまたはTUNを無効にしてから、プログラムを終了してください。そうしないと、システムがすでに待ち受けを停止したローカルポートを参照し続け、クライアント終了後にブラウザーもインターネットへ接続できなくなることがあります。切り分けの際は「コアから直接接続するテスト」なのか、「コアを経由しないシステムネットワークのテスト」なのかを明確にしましょう。

システムプロキシとTUN:まず通信が取り込まれているか確認

システムプロキシは、主にOSのプロキシ設定に従うアプリで使われます。ブラウザーは通常この設定を利用しますが、ゲーム、独自のネットワークスタックを持つプログラム、一部のコマンドラインツールは利用しないことがあります。TUNは仮想ネットワークインターフェースを使い、ルーティング条件に合うIP通信を取り込むため、より多くのアプリを対象にできます。ただし、ルートの除外設定、ほかのVPN、権限、DNS設定の影響は受けます。

  1. まず通信の取り込み方法を確認:クライアントでシステムプロキシまたはTUNが有効になっているか確認します。クライアントによってメニュー名は異なります。「ルールモードが選択されている」ことを「システムプロキシが有効」と取り違えないでください。
  2. 次に新しい接続を作成:テスト用のWebサイトを開くか、ゲームサーバーに再接続しながら、クライアントの「接続」画面を確認します。該当する接続先が表示されれば、通信がコアに取り込まれている有力な証拠になります。
  3. 最後に出力先までの経路を確認:一致したルール、ポリシーグループ、最終的な出口を調べます。ノード一覧に表示される遅延時間は、その時点でのテスト結果にすぎず、ブラウザーがそのノードを使っている証拠にはなりません。

Web閲覧・ゲーム・仕事に適したモードの選び方

利用シーンおすすめの設定確認するポイント
ブラウザーで普段のWeb閲覧ルールモード。まずシステムプロキシを試す。接続先ドメインがどのルールに一致するか、ポリシーグループが正しく選択されているか。
ゲームがシステムプロキシに対応していない通信を取り込む必要がある場合は、ルールによる振り分けを維持したままTUNを試す。ゲームの通信がコアに取り込まれているか、ノードが必要なUDPに対応しているか。
社内ネットワークと外部の情報源を併用ルールモードにし、社内ネットワーク用にDIRECTまたは組織指定の経路を設定する。プライベートDNS、社内ドメイン、VPNのルーティングに競合がないか。
特定のWebサイトにアクセスできないまず接続ログを確認し、その後グローバルモードで短時間比較する。同じノードを使ったとき、ルールモードとグローバルモードで違いがあるか。
ローカルネットワークと比較まずDIRECTモードを使い、必要に応じて通信の取り込みも無効にして再比較する。2回のテストでDNSやネットワーク経路が変わっていないか。

ゲームの遅延はノードのテスト結果だけでは判断できない

クライアントの遅延テストでは通常、設定されたテスト用アドレスにリクエストを送信します。ゲームサーバーとの往復時間を測るテストとは異なります。テストに成功しても、UDPがサポートされていない、サーバーの地域が合っていない、そもそも通信がコアに取り込まれていないなどの理由で、ゲームが動作しないことがあります。実際のゲーム接続とゲーム内のネットワーク指標を確認し、グローバルモードをゲームの高速化機能と考えないでください。

社内ネットワークへDIRECT接続する場合はドメインとDNSも確認

社内サービスでは、組織のネットワーク内でのみ名前解決できるドメインを使う場合があります。DOMAIN-SUFFIXのDIRECTルールを追加するだけでは、パブリックDNSで名前を解決できるとは限りません。組織が提供するDNSやVPNの設定とあわせて対応してください。ドメインの名前解決に失敗している場合、ノードの選択を変え続けても解決にはつながりません。

ポートと接続ログでモードの適用を確認

以下では127.0.0.1:7890を使い、明示的なプロキシ接続をテストします。7890は例示用のポートで、すべてのクライアントで共通の固定値ではありません。現在有効な設定またはクライアントのポート設定で、HTTPプロキシポートまたは混合ポートを確認してからコマンドを変更してください。クライアントがSOCKSポートしか提供していない場合、ここにあるHTTPプロキシの書き方はそのまま使えません。

curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 --head https://example.com/

macOSとLinuxではターミナルから上記のコマンドを実行できます。Windows PowerShellでは、環境によって同名のエイリアスが引数の解釈に影響する場合があるため、コマンドの先頭をcurl.exeに変更してください。接続タイムアウトは最大10秒、リクエスト全体のタイムアウトは最大20秒です。これらはテスト用の設定であり、ノードの性能を保証するものではありません。

  1. ルールモードを選択してコマンドを実行し、example.comの接続ログで一致したルールと最終的な出力先までの経路を確認します。
  2. グローバルモードに切り替え、GLOBALで想定したノードが選択されていることを確認してから再度実行し、出力先までの経路を比較します。
  3. DIRECTモードに切り替えて再度実行し、DIRECTで接続されているか確認します。
  4. 比較が終わったらルールモードに戻し、見つかったルールの問題は永続設定で修正します。グローバルモードを長期間の回避策として使うのは避けてください。

明示的なプロキシテストで確認できるのは、「指定したローカルポートを通じて、このリクエストがコアに入った」ということです。システムプロキシやTUNがほかのアプリにも適用されている証明にはなりません。接続先サーバーからHTTPレスポンスを受け取れた場合、応答可能なサーバーまでリクエストが届いたことは分かりますが、出口は接続ログで確認してください。サービスによってはHEADリクエストを拒否するため、レスポンスのステータスコードだけでノード障害と判断しないでください。

よくある誤解と復旧手順

モードを切り替えてもWebページが変わらない

モードの変更が影響するのは、通常、新しく作成された接続です。ブラウザーがHTTP/2、HTTP/3などの長時間接続を再利用していると、既存の接続はすぐには出口が切り替わらないことがあります。該当ページを閉じてリクエストをやり直し、必要に応じてクライアントの接続画面から該当する接続を切断してください。同じ接続を再利用したまま何度も更新して、モード変更が効かないと判断しないようにしましょう。

ルールを変更してもサブスクリプション更新後に元に戻る

サブスクリプションから生成された設定を直接編集すると、次回の更新で上書きされることがあります。クライアントが提供するオーバーライド、マージ、永続ルールの機能を優先して使い、追加したルールが挿入される位置も確認してください。MATCHより後ろに配置すると、設定を読み込めても、フォールバックルールにすでに一致した通信には適用されません。

グローバルでは接続できるのに、ルールモードではDIRECTになる

すぐにすべてのルールを削除せず、まず対象の接続が実際にどのルールに一致したか確認します。よくある原因は、広範囲を対象とするサフィックスルールが先に一致している、ポリシーグループでDIRECTが選択されている、ルールセットの対象範囲が想定と異なることです。必要な限定ルールを該当する広範囲のルールより前に置き、新しい接続で再テストしてください。

日常利用の設定が済んだら、ルールモードを維持すると、ローカルサービス、LAN、リモートプロキシをまとめて扱いやすくなります。インポートと通信の取り込み手順は入門ガイドで、設定の構造やルールの設定はドキュメント全文で確認できます。

Clash をダウンロード