3つのモード:接続がコアに入った後の通信経路を決める
Clashのプロキシモードは、コアが取り込んだ接続をどのように処理するかを制御します。ルールモードはルールを順に判定し、グローバルモードは共通のグローバルポリシーを適用、ダイレクトモードは接続先へ直接アクセスします。日本国内と海外のサービスを併用する場合は、通常ルールモードから使い始めます。グローバルモードはプロキシ経路の一時的な確認に、ダイレクトモードは接続先へ直接アクセスできるかの確認に適しています。
まず、接続がClashに取り込まれているか、取り込まれた後にどの経路へ送られるかを分けて考える必要があります。システムプロキシとTUNは主に前者に、ルール・グローバル・ダイレクトは後者に関係します。そのため、グローバルモードを選んでも、PC上のすべてのアプリが自動的にプロキシを使うわけではありません。
| モード | 接続先の選択 | 用途 | 主な確認項目 |
|---|---|---|---|
| ルール Rule | ルールの順に判定してポリシーを選択 | 国内は直接接続、海外はプロキシを併用 | 一致したルールとポリシーグループの選択 |
| グローバル Global | GLOBALポリシーを使用 | ルール振り分けの問題を一時的に切り分ける | GLOBALが最終的にどの経路を選ぶか |
| ダイレクト Direct | 通信を接続先へ直接送る | ローカルネットワークから直接接続できるか確認 | ローカル回線と接続先への到達性 |
ルールモード:国内は直接接続、海外はプロキシに振り分け
ルールモードは設定のmode: ruleに対応します。コアはルール一覧を上から順に照合し、一致したルールで指定されたポリシーを使います。ポリシーがグループの場合は、グループ内の選択内容や動作方式に基づいて最終的な接続先が決まります。すべてのノードを順に試し、サイトに接続できるものを自動で選ぶ仕組みではありません。
ルールは数より順序が重要
以下は設定の一部であり、単独で動作する完全なサブスクリプションではありません。使用前に、元の設定に「出口」という名前のポリシーグループがあり、グループ内に利用可能なプロキシノードがあることを確認してください。統合する際は該当する項目を置き換え、ファイル末尾に2つ目のrulesを重複して追加しないでください。
mode: rule
mixed-port: 7890
allow-lan: false
rules:
- DOMAIN-SUFFIX,bilibili.com,DIRECT
- DOMAIN-SUFFIX,github.com,出口
- MATCH,出口
mixed-port: 7890は、HTTPとSOCKSを兼用するローカルプロキシの待ち受けポートを設定します。この値は例であり、すべてのクライアントがこのポートを使うとは限りません。DOMAIN-SUFFIX,bilibili.com,DIRECTは、このドメインとサブドメインを直接接続にします。このサービスが利用するすべての外部リソースのドメインまで対象になるわけではありません。DOMAIN-SUFFIX,github.com,出口は、一致した接続を「出口」ポリシーグループに渡します。実際にプロキシ経由になるかは、グループ内の選択によって異なります。MATCH,出口は、それまでのルールに一致しなかった接続を処理します。有効にしたい個別ルールより後に配置してください。
一覧の先頭にMATCH,DIRECTを置くと、それ以降のドメインルールは該当する接続を処理できません。大規模なサブスクリプションでは、外部ルールセットをRULE-SETで参照することがよくありますが、ルールの適用順序は同じです。問題を調べる際は、サブスクリプション内で編集した箇所だけでなく、クライアントが実際に読み込んでいるルールを確認してください。
ルールモードでもすべてプロキシ経由になることがある
「ルール」は照合方法を示すもので、国内サイトへの直接接続を保証するものではありません。設定にMATCH,出口しかない場合や、国内サイト向けのルールがなく、最終的にプロキシへ振り分けられる場合は、その接続もプロキシ経由になります。逆に、プロキシ用のポリシーグループでDIRECTが選択されていれば、そのグループに一致した接続は直接アクセスします。結果を判断するには、一致したルール、ポリシーグループ、最終的な接続先を確認してください。
グローバルモード:共通ポリシーを使った一時的な比較に便利
グローバルモードはmode: globalに対応します。取り込まれた通信は通常のルール一覧で個別に振り分けられず、組み込みのGLOBALポリシーで処理されます。クライアントでは、モードの切り替えとグローバルノードの選択は通常別の操作です。まずGlobalに切り替え、その後、グローバルポリシーで選択されているノードまたはポリシーグループを確認してください。
GLOBALでDIRECTが選択されていれば、グローバルモードでも直接接続になります。そのため、画面に「グローバル」と表示されているだけでは、プロキシが使われているとは判断できません。接続の詳細に表示されるポリシー経路と、信頼できる外部IP確認サービスの結果で、実際の通信経路を確認してください。
海外サイトに接続できないとき、グローバルモードで切り分ける方法
- ルールモードで対象サイトにアクセスし、接続の詳細から接続先ドメイン、一致したルール、最終ポリシーを記録します。
- グローバルモードに切り替え、利用可能と確認済みのプロキシノードを選択します。システムプロキシまたはTUNの状態は変更しません。
- 開いているページの接続を切ってから再アクセスします。必要に応じてアプリを再起動し、古い長時間接続が再利用されないようにします。
- グローバルモードでは接続でき、ルールモードではできない場合は、ルールの順序とポリシーグループの選択を優先して確認します。どちらでも接続できない場合は、ノード、DNS、通信を取り込む経路、接続先サービスの状態を確認してください。
この比較だけでDNSの違いを完全に除外することはできませんが、原因を絞り込むのに役立ちます。サイトを復旧させるためにグローバルモードを常用しないでください。誤ったルールを見つけてルール振り分けに戻すことで、国内サービスへのローカルな接続経路を維持できます。
グローバルモードで国内サイトが遅くなる理由
国内サイトには、国内の通信事業者の回線から直接アクセスできます。グローバルポリシーで海外ノードを選ぶと、リクエストはいったん海外のプロキシサーバーを経由し、国内のオリジンサーバーやCDNに戻ることがあります。経路が長くなると、遅延、国際回線の変動、プロキシサーバーの帯域が、初回表示や動画の読み込みに影響します。出口の場所が変わることで、CDNの振り分け先が変わったり、追加のアカウント認証が求められたりすることもあります。
たとえば、同じページの直連時のTTFBが45ミリ秒、プロキシ経由で230ミリ秒になった場合は、DNSをすぐにすべて変更するのではなく、まず通信経路を確認します。ここでの数値は測定方法を説明するための例であり、本サイトでの実測値や性能の保証ではありません。比較する際は同じ端末と同じリソースを使い、各条件で3回以上記録したうえで、キャッシュ利用時と初回読み込みを区別してください。
ダイレクトモード:クライアントの終了やネットワーク設定の全消去とは異なる
ダイレクトモードはmode: directに対応します。コアに取り込まれた通信はプロキシの接続先選択を使わず、接続先へ直接アクセスします。国内サイトへの基本的な接続状況の確認や、問題がリモートプロキシに関係しているかの切り分けに適しています。現在のネットワークから接続先に到達できない場合、ダイレクトモードに切り替えても新たに接続可能になるわけではありません。
ダイレクトモードにしてもClashが終了するわけではありません。システムプロキシがローカルの待ち受けポートを指している場合や、TUNが引き続きルーティングを取り込んでいる場合、通信は引き続きローカルのコアで処理される可能性があります。コアのDNSモジュールも現在のDNS設定に従って動作することがあるため、「Direct」と表示されているだけで、すべての名前解決がシステムの既定経路に戻ったとは判断できません。
- ダイレクトモードに切り替える:クライアントを起動したまま、一時的に通信の接続先を変えたい場合に適しています。
- システムプロキシを無効にする:システム設定に従うアプリはこのプロキシ経路を使わなくなりますが、TUNは自動的に無効になりません。
- TUNを無効にする:対応する仮想ネットワークアダプターによる通信の取り込みを解除します。アプリ独自のHTTPまたはSOCKSプロキシ設定は引き続き有効な場合があります。
- クライアントを終了する:システムプロキシとルーティングが元に戻っていることを確認してください。ローカルポートを指すプロキシ設定が残っていると、インターネットに接続できなくなることがあります。
切り替え場所:画面のモード、ポリシー選択、通信の入口を分けて確認
Clash Verge Revの一般的なデスクトップ画面では、「プロキシ」を開き、画面上部で「ルール」「グローバル」「ダイレクト」を選択します。英語表示ではRule、Global、Directです。バージョンによっては、モードアイコンやドロップダウンメニューで表示されることもあるため、現在の画面にある案内を確認してください。グローバルモードに切り替えた後は、グローバルポリシーで現在選択されている項目も確認します。
システムプロキシとTUNは、通常は独立したスイッチであり、3つのモードに加わる別の選択肢ではありません。全プラットフォームガイドを読む際は、まず該当プラットフォームの通信取り込み設定を確認してください。インストール、サブスクリプションのインポート、基本的な接続手順についてはセットアップガイドを参照してください。特定のデスクトップクライアントのメニュー位置を、すべてのモバイルアプリに当てはめないようにしましょう。
設定ファイルで指定する3つの値
# 日常的なルール振り分け
mode: rule
# 一時的にグローバルポリシーを使用
mode: global
# 通信を接続先へ直接送る
mode: direct
3つのコード例は互いに排他的な選択肢です。3つすべてをコピーして、modeフィールドを重複させないでください。クライアントの画面操作によって実行時にモードが変更される場合があり、その変更が設定ファイルに書き戻されるかどうかはクライアントの実装によります。サブスクリプションの更新で手動変更が上書きされることもあるため、保存後に画面の現在のモードを確認し、再起動後の動作も確かめてください。
4つの利用シーン別:プロキシモードの選び方
日常のブラウジングや国内業務:まずはルールモード
日本国内の動画サービス、ネットバンキング、社内ツール、海外のドキュメントを併用する場合は、ルールモードを選びます。国内サービスにアクセスした後、「接続」画面でそのリクエストがDIRECTに一致しているか確認してください。特定のサービスが誤って振り分けられている場合は、より具体的なドメインルールを追加するか、ルールセットの順序を修正します。すべての接続をダイレクトに切り替える必要はありません。
特定の海外サービスで問題が起きたとき:グローバルモードで一時的に比較
まずノード自体が利用可能か確認し、その後、短時間だけグローバルモードに切り替えます。アクセスできるようになった場合は、ルールモードに戻し、対象ドメインが誤ったダイレクトルールに一致していないか確認してください。1つのページでも、ログイン、静的リソース、APIで異なるドメインを使うことがあります。トップページが開くだけでは、すべての通信が正しく振り分けられているとは限りません。
銀行や国内サービスで問題が起きたとき:実際の接続先を確認
まずルールモードで対象サービスを直接接続するよう設定し、必要であればダイレクトモードでも比較します。切り替え後は接続を確立し直し、古いセッションが以前の経路を使い続けないようにしてください。LAN内の管理画面では、プライベートIPアドレスへのルーティングとTUNの除外設定も確認します。Directを選ぶだけですべてのルーティング問題が解決するわけではありません。
ゲームやコマンドラインツールの通信が変わらない:取り込み経路を確認
ルールモードからグローバルモードに切り替えても、アプリの通信や接続一覧に変化がない場合は、まずそのプログラムがコアに取り込まれているか確認してください。コマンドラインツールでは個別にプロキシ設定が必要なことがあります。また、一部のゲームはUDPを使うため、HTTPシステムプロキシには自動で従いません。TUNを使うかどうかは、プロトコルの対応状況、権限、ルーティング要件に応じて判断してください。
切り替え後の確認:新しい接続で結果を確かめる
- 接続の入口を確認。アプリで設定されているプロキシアドレスと、実際の待ち受けポートを照合します。ローカルの
127.0.0.1:7890を設定している場合、アプリが古い7897ポートに接続し続けていないか確認してください。 - モードを確認。画面でRule、Global、Directのいずれかが選択されていることを確認します。サブスクリプションの再読み込みで元に戻っていないかにも注意してください。
- ポリシーを確認。ルールモードでは一致したルールを、グローバルモードではGLOBALの選択内容を確認し、どちらの場合も最終的な接続先を確かめます。
- 新しい接続を確立。対象のページやアプリを閉じてから再試行します。ページを再読み込みするだけでは、HTTP/2、HTTP/3などの長時間接続が再利用されることがあります。
- 結果を記録。接続先ドメイン、接続時刻、ポリシー経路、エラーメッセージを記録します。モード、ノード、DNSを同時に変更せず、1回につき1つの設定だけを変えてください。
ルールモードとグローバルモード、速いのはどちら?
一概には言えません。同じ接続先で最終的に同じノードを使うなら、モードを切り替えるだけで速度が大きく変わることは通常ありません。国内サイトがルールモードでは直接接続、グローバルモードでは海外経由になる場合は、通信経路の違いが主な要因です。接続確立までの遅延、ダウンロード帯域、接続先サーバーの速度制限も分けて考えましょう。
グローバルモードでは、すべてのDNSクエリがプロキシ経由になりますか?
そうとは限りません。DNSの処理は、アプリ独自の暗号化DNSの有無、コアのnameserver設定、DNS接続の出方向、TUNによるDNSの取り込み状況にも左右されます。グローバルモードは通信のポリシー選択であり、DNS漏えいを防ぐための包括的な設定ではありません。
初心者は毎日3つのモードを切り替える必要がありますか?
通常は必要ありません。ルールとポリシーグループを正しく設定したら、普段はルールモードのまま使えます。問題が起きたときだけグローバルやダイレクトに一時的に切り替えて比較し、違いを記録してからルールや接続の入口を修正してください。モードの切り替えは原因を絞り込む手段であり、安定したルール振り分けの代わりにはなりません。