Clashのルール・グローバル・直結モードの違いとは?初心者向けの選び方

Clashの3つのプロキシモードにおける通信処理、用途、切り替え方を解説し、初めて使う方がモード選択を誤らないようにします。

Mode Basics

3つのモードが決めるのは出口の選択

Clash Verge Revは、mihomoカーネルで接続を処理する際、ルール・グローバル・直結モードによって、カーネルに取り込まれた通信をどの出口から外へ出すかを決定します。どのアプリが通信をClashへ渡すかを直接決めるものではなく、システムプロキシやTUNのオン・オフとも同義ではありません。この違いを理解することが、モード選択を誤らないための重要なポイントです。

ルールモードでは、カーネルが設定ファイルのルールを上から順に確認し、ドメイン、IP、ポート、プロセス、ルールセットなどの条件に応じて、接続を指定のポリシーグループ、プロキシノード、DIRECT、またはREJECTへ送ります。グローバルモードでは、カーネルに入った通常の接続を基本的にグローバルポリシーグループへまとめ、そのグループ内のノードやポリシーを選択します。直結モードでは、これらの接続にDIRECT出口を使い、プロキシノードを経由しません。

モード 判断方法 主な用途 主な注意点
ルール ルールの順序に従って接続ごとの出口を選択 日常利用、地域別の振り分け、サービスごとのノード選択 ルールの品質・順序・ポリシーグループの選択に左右される
グローバル 通常の通信をまとめてグローバルポリシーへ送る 一時的なノード検証、ルールの影響を素早く切り分ける ローカルや中国国内向けのサービスも選択したプロキシを経由する場合がある
直結 通信を目的のアドレスへ直接接続 プロキシを一時停止し、ローカルネットワークと目的先への到達性を確認 ネットワーク条件に制限された接続先が直結で復旧するとは限らない

Rule Mode

ルールモード:接続の特徴に応じて細かく振り分ける

ルールモードは、日常利用で通常おすすめされる設定です。同時に複数の出口を使い分けられ、LAN内のアドレスは直結、特定のサービスは専用ポリシーグループ、広告やトラッキング用ドメインは拒否、その他の未一致接続はフォールバックポリシーへ送るといった運用ができます。すべての接続を同じノードへ送るよりも、アクセス経路、遅延、ローカルネットワーク資源を両立しやすいのが特徴です。

mihomoは新しい接続を処理するとき、設定されたルールの順序に従って照合します。ルールに一致すると、その指定先を採用し、後続の通常ルールは確認しません。そのため、ルールは多ければよいわけではなく、順番も自由に並べてはいけません。範囲が狭く意図が明確なルールを前に、より広いルールを後ろに置き、最後にMATCHをフォールバックとして使うのが基本です。

rules:
  - DOMAIN-SUFFIX,example.cn,DIRECT
  - DOMAIN-SUFFIX,example.com,PROXY
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,PROXY

この例は、指定した.cnドメインを直結し、指定した.comドメインをPROXYというポリシーグループへ送り、一般的なプライベートネットワークを直結し、残りの接続をPROXYへ送る設定を示しています。実際のサブスクリプションでは、ポリシーグループ名が「ノード選択」「自動選択」など別の名前になっている場合があります。ルールの指定先は、設定に定義済みのノード、ポリシーグループ、または組み込みアクションと一致している必要があります。

ルールモードの結果を左右する3つの層

  1. ルールの一致:接続をどのポリシーグループまたは組み込み出口へ送るかを決めます。ドメインルール、IPルール、ルールセット、プロセスルールでは一致条件が異なります。
  2. ポリシーグループの状態:ルールが手動選択グループを指す場合、最終出口は現在選択されているノードで決まります。自動速度テストグループを指す場合は、そのグループのテスト結果と許容差設定によって決まります。
  3. ノードの可用性:ルールとポリシーの選択が正しくても、ノードで接続タイムアウト、プロトコルパラメーターの変更、ネットワーク経路の異常が発生すれば、リクエストは失敗する可能性があります。

したがって、「ルールモードでアクセスできない」ことは、ルールモード自体が機能していないことを意味しません。より効果的な確認方法は、接続ログを開いて対象ドメインを探し、どのルールに一致したか、どのポリシーグループに入ったか、最終的にどの出口を使ったかを確認することです。対象サービスが誤ってDIRECTへ送られている場合は、ルールの順序やルールセットの内容を確認します。想定したプロキシグループに入っている場合は、そのグループで選択されているノードを確認してください。

DNSの結果もルール判定に影響する

ドメイン接続は、DOMAINDOMAIN-SUFFIX、またはルールセット内のドメイン項目に直接一致することがあります。接続によっては対象IPしか提供されず、カーネルがDNSマッピング、スニッフィング結果、IP系ルールに頼って行き先を判断する場合があります。Fake IP、実IPの名前解決、ドメインスニッフィングを有効にすると判定経路は変わりますが、基本原則は同じです。まずカーネルが実際に認識している対象がドメインかIPかを確認し、対応する種類のルールを調べます。

ウェブページに表示されたアドレスだけで一致結果を判断しないでください。1つのページが、メインサイト、画像、API、第三者のコンテンツ配信ドメインへ同時にリクエストすることがあり、それぞれが直結、プロキシ、拒否に分かれる場合があります。ページの一部だけ読み込まれて一部が失敗する場合は、モードを何度も切り替えるより接続一覧のほうが診断に役立ちます。

Global Mode

グローバルモード:出口を統一し、短時間のテストに適する

グローバルモードでは、通常の個別振り分け判定を迂回し、カーネルに入った通常の接続をグローバルポリシーへ送ります。クライアントのグローバルポリシーグループでノードを選ぶと、取り込まれた通信の大部分がそのノードを使います。経路が単純で結果を確認しやすいため、「問題がルールにあるのか、ノードにあるのか」を切り分けるのに適しています。

たとえば、ルールモードではアクセスできないサイトが、グローバルモードに切り替えて利用可能と確認済みのノードを選ぶと正常に開ける場合、ローカルのプロキシ入口とノード経路は基本的に機能しており、次にルールモードでの一致結果を確認すべきだと考えられます。反対に、グローバルモードでも失敗する場合は、ノードの状態、プロトコル設定、DNS、アプリの取り込み方法、または対象サービス側の接続条件に原因がある可能性が高くなります。

グローバルモードは、長期的なデフォルト設定には一般に向きません。LAN内サービス、中国国内のサイト、ソフトウェア更新、低遅延が必要な通信まで遠隔ノードへ送られ、経路が長くなったり速度が低下したり、サービス側の地域判定やログイン認証に影響したりする場合があります。ルーターの管理画面、プリンター、ネットワークストレージなどのローカル資源へアクセスするときは、クライアントやカーネルがLANアドレスをバイパス対象として扱っているかも確認してください。

また、グローバルモードにしても品質の低いノードが使えるようになるわけではありません。手動でノードを選択している場合、関連する通信はすべてその出口に集中します。ノードでパケットロスや遅延の変動が起きると、ウェブ、動画、メッセージングが同時に影響を受ける可能性があります。テストでは、画面上の「グローバル」という表示だけでなく、グローバルポリシーグループの現在の選択肢を確認してください。

Direct Mode

直結モード:通信はカーネルを通過してもプロキシノードを使わない

直結モードの要点は、取り込まれた通信をローカルネットワークから直接対象へ接続することです。プロキシ出口を一時停止したり、通信事業者のネットワークから対象へ直接到達できるか確認したり、プロキシノードが異常の原因か切り分けたりする際に使います。直結モードはネットワーク切断スイッチではなく、Clashを完全に終了することとも異なります。

システムプロキシが有効なままだと、ブラウザーはリクエストをローカルのプロキシポートへ送り続けることがあります。ただし、mihomoがリクエストを受けた後にDIRECTを選択します。TUNが有効なままの場合も、システム通信はいったん仮想ネットワークインターフェースを通り、カーネルから対象へ直接送られる可能性があります。つまり接続経路で見ると、「カーネルを経由して直結する」ことと「アプリがClashを完全に迂回する」ことは同じではありません。

直結モードで確認できること

  • 中国国内のサイトで起きている問題が、プロキシノードや遠隔出口に起因するか。
  • 現在のローカルネットワークから対象ドメインまたはIPへ直接アクセスできるか。
  • アプリが実際にシステムプロキシまたはTUNに取り込まれているか。
  • ダウンロード速度の変化が遠隔ノード経由の経路に関係しているか。

対象が本来プロキシ経路を必要とする場合、直結へ切り替えた後に失敗するのは想定される結果です。直結にしても、対象サービスのアカウント制限、地域ポリシー、証明書の問題、端末のファイアウォールを回避することはできません。トラブルシューティングでは、切り替え前後の一致ログとエラーの種類を記録し、「開ける・開けない」だけで判断しないようにしましょう。

クライアントがネットワーク経路に関与するのを完全に止める場合は、現在の設定に応じてシステムプロキシとTUNを無効にし、関連アプリにローカルプロキシポートが個別設定されていないことを確認します。アプリによってはプロキシ設定をキャッシュしたり既存の接続を維持したりするため、切り替え後に接続を確立し直す必要があります。すぐにモード切り替えが効いていないと判断せず、必要なら該当アプリを再起動してください。

Traffic Entry

プロキシモードとシステムプロキシ・TUNモードは別のスイッチ

初心者が最も混同しやすいのは、「ルールモード」を取り込み範囲、「TUNモード」を振り分けルールの一種と考えてしまうことです。実際には両者は異なる階層にあります。システムプロキシとTUNは通信をカーネルへ入れる役割を担い、ルール・グローバル・直結はカーネルに入った後の出口を決めます。

機能 階層 主な役割
システムプロキシ 通信の入口 OSのプロキシ設定に従うアプリの接続を、ローカルのHTTPまたは混合プロキシポートへ送る
アプリ内プロキシ 通信の入口 アプリからClashが提供するローカルプロキシポートへ直接接続
TUN 通信の入口 仮想ネットワークインターフェースを通じて、より多くのTCP・UDP通信やシステムプロキシを読まないアプリの通信を取り込む
ルール・グローバル・直結 出口の判断 カーネルに入った接続を、ルールの結果、統一プロキシ、または直接接続のいずれで処理するか決める

ブラウザーは通常システムプロキシを読み取るため、システムプロキシを有効にするだけで一般的なウェブ閲覧をカバーできます。しかし、ゲーム、コマンドラインツール、一部のストアアプリ、独自のネットワークスタックを使うソフトウェアはシステムプロキシに従わない場合があります。その場合は、アプリ内でプロキシを設定するか、ルーティング、DNS、権限要件を理解したうえでTUNを使用します。

TUNは取り込み範囲を広げられますが、誤ったルールを自動的に修正するものではありません。TUNでルールモードを使う場合も、接続はルールに従って振り分けられます。グローバルモードでは、TUNに取り込まれた接続は通常グローバルポリシーへ入ります。直結モードでは、それらの接続は通常カーネルから直接送信されます。UDPが成功するかどうかは、ノードのプロトコル、ノードサーバー、ネットワーク環境、そしてポリシーチェーンの各層がUDPをサポートしているかにも左右されます。

Selection Guide

初心者向けの選び方:日常はルール、診断はグローバル、確認は直結

サブスクリプション設定にポリシーグループとルールが適切に含まれているなら、初心者はルールモードを日常のデフォルトにするとよいでしょう。サービスごとに出口を使い分けられ、LAN内や一般的な直結経路も維持しやすくなります。サブスクリプションを初めて取り込んだら、まずプロキシまたはポリシー画面で利用可能なノードを選択し、ルールモード、システムプロキシの状態、ブラウザーに接続ログが表示されるかを確認します。

用途別の選び方

  • 通常のブラウジング、動画、日常的なソフト:まずルールモードを使い、設定に地域やサービスごとの振り分けを任せます。
  • ノードが機能するか確認:短時間だけグローバルモードに切り替え、対象ノードを明示的に選んでテスト先へアクセスします。
  • ローカルネットワークからの直接到達性を確認:直結モードに切り替えて新しい接続を確立し、エラーの種類と応答速度を比較します。
  • システムプロキシを読み取らないアプリ:まずTUNまたはアプリ内プロキシが必要かを判断し、そのうえで適切なルーティングモードを選びます。
  • LAN機器へアクセスできない:プライベートアドレスのルール、TUNルート、LANバイパス設定を確認し、プロキシノードだけを何度も変更しないでください。

再現性のあるトラブルシューティング手順

  1. 設定が読み込まれていること、ポリシーグループに選択可能なノードがあることを確認し、遅延または接続テストを一度実行します。
  2. 対象アプリがシステムプロキシ、アプリ内プロキシ、TUNのいずれかを通じてカーネルに入っていることを確認し、接続パネルで該当ログを探します。
  3. ルールモードのまま、対象ドメインが一致したルール、ポリシーグループ、最終ノードを確認します。
  4. グローバルモードへ切り替え、利用可能と確認済みのノードを選択して接続を確立し直し、ルールによる振り分けの影響を切り分けます。
  5. 直結モードへ切り替えて再テストし、ローカルネットワークに直接アクセスできる条件があるかを判断します。
  6. 3つのモードすべてで異常がある場合は、DNS、システム時刻、ファイアウォール、ノードのプロトコルパラメーター、サブスクリプションの有効性、ローカルネットワークの制限を確認します。

テスト中は、一度に1つの変数だけを変更するのが理想です。たとえば同じノードでルールとグローバルを比較する、または同じモードで2つのノードを比較します。ノード変更、TUNの有効化、DNS変更、モード切り替えを同時に行うと、結果が改善しても本当に効果があった変更を特定しにくくなります。

モード切り替えを恒久的な解決策にしない

あるサービスがグローバルモードでしかアクセスできない場合、グローバルモードを使い続ければ一時的には利用できるかもしれません。しかし、より適切なのはルールモードに戻り、一致結果を確認することです。サービス関連ドメインが誤って直結されていないか、ルールセットが更新されているか、ポリシーグループで適切なノードが選ばれているか、フォールバックルールが想定どおりかを確認できます。

あるサービスが直結モードでしかアクセスできない場合は、ルールモードで不適切なプロキシグループへ送られていないか確認します。ローカル出口を維持したいサービスについては、設定構造を理解したうえで、より具体的な直結ルールを追加し、範囲の広いプロキシルールより前に配置できます。サブスクリプションから生成された設定を変更する場合は、更新時にローカル編集が上書きされる可能性に注意してください。オーバーライド、スクリプト、設定のマージに対応するクライアントでは、カスタムルールを独立した設定レイヤーで管理できます。

Clash をダウンロード