A
コア概念
まず、設定の入手元、ノードの選択方法、3種類のプロキシモードが通信の出口をどう変えるかを理解しましょう。これらはサブスクリプションのインポート、プロキシの切り替え、日常的なトラブルシューティングに関わる基本概念です。
- サブスクリプション
- サービス提供者が公開するリモート設定URLで、通常はノード、プロキシグループ、ルール情報を含みます。クライアントがサブスクリプションを更新すると、リモートの内容を再取得して利用可能な設定を生成します。サブスクリプションは単一のノードではなく、継続的に更新される設定ソースです。更新前に生成内容を手動で変更しても、次回の更新で置き換えられる場合があります。
- ノード
- 設定内でプロキシグループから選択できるプロキシサーバーの項目です。通常はサーバーアドレス、ポート、プロトコル、認証パラメーター、通信オプションを含みます。接続できるからといって、すべてのネットワーク環境に適しているとは限りません。実際の選択では遅延、パケットロス、帯域幅、地域、対象サービスの利用可否も考慮します。
- 遅延
- クライアントがノードのテスト先へ接続し、応答を受け取るまでにかかる時間で、通常はミリ秒で表示されます。接続不能や応答の遅いノードを素早く除外するのに役立ちますが、ダウンロード速度とは異なり、長時間接続の安定性も単独では判断できません。テスト先、現在のネットワーク、ノード負荷によって結果は変化します。
- プロキシモード
- 通信をどの出口へ振り分けるかを決める動作方式です。ルールモードはルールを順番に判定し、グローバルモードは通信を共通のプロキシへ渡し、直結モードはプロキシ出口を経由しません。日常利用には通常ルールモードを使います。グローバルと直結はノードの確認や分岐問題の切り分けに適していますが、モード名だけで接続状態を判断しないでください。
- 設定ファイル
- ポート、DNS、ノード、プロキシグループ、ルールを記述する構造化ファイルです。Clashの設定は通常YAML形式で、クライアントが読み込んだ後にコアへ渡されて実行されます。正常に動作するかどうかは構文だけでなく、プロキシグループの参照、ルールの転送先、DNSパラメーターが互いに対応しているかにも左右されます。
B
プロトコルと通信
ローカルのプロキシ入口は、アプリがClashへ接続を渡す方法を決めます。システムプロキシ、HTTP、SOCKS5、混合ポートはローカル側の接続方式を示すもので、リモートノードの通信プロトコルとは異なります。
- HTTPプロキシ
- HTTPおよびHTTPSのアプリ通信向けのプロキシ入口です。アプリでプロキシを手動設定できる場合は、クライアントが開放しているHTTPの待受アドレスとポートを指定します。HTTPSの内容は通常CONNECTメソッドでトンネルを確立しますが、ローカルプロキシがWebの暗号化内容を直接読み取ることを意味しません。アプリがシステムプロキシ設定に従うかどうかは、アプリ自身の実装に依存します。
- SOCKS5
- セッション層で動作する汎用プロキシプロトコルで、さまざまなアプリの接続を転送できます。Webリクエスト専用の方式と比べ、SOCKS5はブラウザー、開発ツール、カスタムプロキシに対応するソフトウェアでよく使われます。設定時はDNSをアプリがローカルで解決するのか、SOCKS5経由でプロキシ側に処理させるのかも確認します。
- 混合ポート
- HTTPとSOCKS5の接続を同時に受け付けるローカル待受ポートです。有効にすると異なるプロキシ方式で1つのポートを共有でき、複数のポート設定による混乱を減らせます。混合ポートが統一するのはローカルの入口だけで、ルールモード、ノードのプロトコル、DNSの引き受け方式は自動的に変わりません。
- システムプロキシ
- OSが提供するプロキシ設定の入口です。クライアントでシステムプロキシを有効にすると、システム設定に従うブラウザーやデスクトップアプリが対応する通信をClashへ送信します。一部のゲーム、コマンドラインツール、独自のネットワークスタックを使うソフトウェアは設定を無視する場合があり、その場合は個別にプロキシを設定するか、TUNモードの利用を検討します。
C
ルールとプロキシグループ
ルールは接続を識別し、プロキシグループは出口を決定します。一致順序と参照関係を理解して初めて、問題がルール不足、プロキシ選択の誤り、ノード自体の利用不能のどれに起因するかを切り分けられます。
- プロキシグループ
- 複数のノード、直結オプション、ほかのプロキシグループを、ルールから参照できる1つの出口にまとめます。手動選択グループでは出口を固定でき、自動速度テストグループは検査結果に基づいて候補を選び、フォールバックグループは現在の出口が使えない場合に次の候補を試します。プロキシグループは入れ子にできますが、階層が深すぎるとトラブルシューティングが難しくなります。
- ルール分岐
- ドメイン、IP、ポート、プロセス、ルールセットなどに基づいて接続先の出口を決める処理です。Clashは通常、ルールを上から順に確認し、最初に一致したルールによって接続を渡すプロキシを決定します。そのため、より具体的なルールを広範なルールより前に置く必要があります。
- ルールセット
- 再利用可能なドメインやIPの項目群をメイン設定から分離したもので、Rule Providerとも呼ばれます。ルールセットはローカルに保存できるほか、リモートURLから定期的に更新でき、多数の分類項目の管理に適しています。メインルールでは、ルールセットの参照方法と、一致した場合に渡すプロキシグループも指定する必要があります。
- MATCH
- ルールリストにおける最終的なフォールバック種別です。それ以前のドメイン、IP、ルールセットに一致しない場合、通信はMATCHで指定したプロキシに従って処理されるため、通常はルールの末尾に置きます。早すぎる位置に置くと後続ルールは評価されず、フォールバックルールがない場合は設定が意図しない動作になる可能性があります。
- GeoIP
- 対象IPの所属地域に基づいて判定する地理データベース機能です。ルールはGeoIPを利用して、特定地域のIP通信を直結または指定したプロキシへ振り分けられます。GeoIPはローカルデータベースに依存するため、古いデータベースでは新しく割り当てられたアドレス帯を正確に分類できない場合があります。ドメインをGeoIPで判定する前には、通常DNS名前解決も行われます。
D
DNSとネットワークスタック
ドメイン解決と通信の引き受けは、関連していても別々の経路です。プロキシ入口を有効にしただけではDNSの送信先は変わらず、カスタムDNSを有効にしただけですべてのアプリ通信がプロキシを経由するわけでもありません。
- DNS
- ドメインをIPアドレスへ変換する基本的なネットワークサービスです。ClashはDNSクエリを引き受け、設定に応じて上流サーバー、名前解決モード、キャッシュ方式、分岐方法を選択できます。DNS設定はルールモードと連携させる必要があります。ドメインが早い段階でシステム側によりIPへ解決されると、ドメインだけを対象にした一部のルールが判定材料を失うことがあります。
- DNSリーク
- ドメイン検索が想定していたプロキシ経路や暗号化された名前解決経路を迂回し、別のDNSサーバーへ直接送信される現象です。調査時はシステムDNS、クライアントのnameserverとfallback設定、ブラウザーのセキュアDNS、TUNがクエリを引き受けているかを併せて確認します。検出結果に複数のDNSサービスが表示されても、直ちにリークとは限りません。重要なのはリクエストが想定した経路から外れているかどうかです。
- Fake-IP
- DNSモジュールがまずアプリへ予約アドレスプール内のマッピングアドレスを返し、その後コアが実際のドメインを復元してルール判定を行うモードです。接続時にドメイン情報を保持し、名前解決を一元的に処理できます。一部のLAN機器、ゲーム、実際のアドレスの返却結果に依存するアプリでは、Fake-IPの除外リストへの追加が必要になる場合があります。
- TUNモード
- 仮想ネットワークインターフェースを通じて、より多くのシステム通信を引き受ける動作方式です。個別にプロキシを設定できないアプリや、システムプロキシに従わない一部の接続にも対応できます。有効化する際は管理者権限、ルーティング、DNSのハイジャック、ネットワークアダプターの競合を適切に処理します。通信が途切れた場合は、まずTUNを無効にして基本ネットワークが復旧するか確認してください。
- IPv6
- インターネットのアドレス指定に使われる次世代ネットワークプロトコルで、IPv4と並行して利用できます。ClashでIPv6を有効にするかどうかは、ローカルネットワーク、DNSの上流、ノード、対象サイトの対応状況を踏まえて判断します。プロキシチェーンがIPv4しか処理できない一方、アプリがIPv6接続を優先すると、通信経路が想定と異なる可能性があります。
E
クライアントとコア
グラフィカルクライアントは設定の表示、設定ファイルの管理、システム機能の呼び出しを担い、コアはDNS、ルール、接続転送を実際に実行します。両者を区別すると、更新範囲や設定の互換性を判断しやすくなります。
- mihomo
- Clash Metaエコシステムで継続的に発展しているプロキシコアです。設定の解析、ルールの実行、DNS処理、接続の転送を担います。多くの最新グラフィカルクライアントはmihomoをネットワーク処理のコアとして採用し、画面からサブスクリプション、プロキシ、システム設定を管理します。クライアントによって同梱されるコアのバージョンや有効機能が異なるため、設定を移行する際はフィールドの互換性を確認してください。
- Clash for Windows
- デスクトップ向けの従来型Clashグラフィカルクライアントです。設定管理、システムプロキシ、プロキシ切り替え、接続確認の入口を提供します。このプロジェクトはすでに開発が終了しており、現在のインストーラーは主に旧環境での確認や互換性維持に使われます。新しいシステムや新しいコア機能が必要な場合は、ダウンロードページで現在も保守されているグラフィカルクライアントを比較してください。
- YAML
- Clashの設定ファイルでよく使われるデータシリアライズ形式で、インデントによって階層を表現します。編集時は空白の数をそろえ、コロンの後の空白、リストのハイフン、文字列の形式にも注意が必要です。タブ、ずれたインデント、適切に処理されていない特殊文字によって、設定を読み込めなかったり、項目が誤った階層として解釈されたりすることがあります。
- 外部コントローラー
- コアがグラフィカルインターフェースやWeb管理パネルに公開する管理用インターフェースです。クライアントはこれを通じて実行状態の取得、プロキシの切り替え、設定の更新、接続管理を行います。管理機能を含む場合があるため、利用環境に応じて待受アドレスとアクセス認証情報を設定し、管理ポートを信頼できないネットワークへ公開しないでください。
- 設定オーバーライド
- 元のサブスクリプションに設定を追加、置換、調整する処理方式です。オーバーライドはローカルDNS、TUN、ポート、カスタムルールを維持するために使われ、サブスクリプション更新時の再編集を減らせます。クライアントによってオーバーライドの適用順序や構文は完全には一致しないため、使用前に項目の統合、リストの追加、元の値の直接置換のどれに当たるかを確認してください。
- UWPループバック
- UWPのネットワーク分離機構を利用するWindowsアプリが、ローカルのプロキシポートへアクセスできるようにするシステム設定です。Microsoft Storeアプリや一部のシステムコンポーネントがローカルプロキシを経由できない場合は、ループバックアクセス権を確認します。これはアプリからローカルプロキシへのアクセスだけを解決するもので、ノードの無効化、ルールの誤り、DNS設定の異常は修復しません。