Clash 用語解説

クライアントの画面やチュートリアルに繰り返し出てくる用語を、6カテゴリ・25枚のカードにまとめました。各カードでは定義を示し、それがどこに出てくるか、何に影響するかを説明します。知らない用語が出てきたら、下のカテゴリまたは索引から該当箇所に飛んでください。

プロキシの基礎概念

4項目

まずは最も頻出する4つの用語を定義します。以降の章——使い方ガイドやトラブルシューティングを含む——では、これらの意味を理解していることを前提に説明しています。

プロキシの基礎概念

プロキシProxy

データの送受信を代行する中継サーバーのこと。プロキシを有効にすると、ブラウザがサイトへ送るリクエストはまずプロキシサーバーへ渡され、そこで取得した内容が返送されてくる。Clashクライアントの役割は、この端末とプロキシサーバーの間にこの通信経路を確立・維持することにある。

プロキシの基礎概念

ノードNode

接続可能な1台のプロキシサーバーのこと。サブスクリプションには通常、日本・シンガポール・アメリカなど複数地域の複数ノードが含まれ、クライアントのノード一覧で選んだノードから通信が発信される。ノード名・地域・プロトコルはすべて提供元が設定しており、クライアント側は表示と接続のみを担う。

プロキシの基礎概念

Ping(レイテンシ)Latency

端末とノードの間を1往復する通信にかかる時間で、単位はミリ秒(ms)。クライアントの「速度テスト」機能は、通常固定のアドレスへ小さなリクエストを送って時間を計測している。数値が小さいほど応答は速いが、Pingが低い=速度が速いとは限らず、実際の体感速度は帯域幅や回線の混雑具合にも左右される。

プロキシの基礎概念

システムプロキシSystem Proxy

OSのネットワーク設定にあるスイッチのこと。オンにすると、システムは「HTTP/HTTPSリクエストを127.0.0.1の指定ポートへ送る」設定をネットワーク設定に書き込み、ブラウザや大半のソフトがそれに従うようになる。クライアントの「システムプロキシ」スイッチは、この設定を自動で書き換え、オフにする際は元に戻すだけの機能。

プロトコルとコア

4項目

コアは実際に動作するエンジンで、プロトコルは通信の形式のこと。この2つの層を理解すれば、ノード一覧や設定に出てくる略語も見慣れてくる。

プロトコルとコア

mihomo

現在のClash系エコシステムで主流のコアで、前身はClash Meta。元のClashコアの開発が停止した後、コミュニティによって開発が継続されている。Clash Verge RevやFlClashなどのクライアントはこれを中核として、設定の解析・ルールのマッチング・通信の転送を行う。設定の新しい記法(ルールセット、スニッフィングなど)の多くはmihomoでのみサポートされている。

プロトコルとコア

Shadowsocks

比較的早くから普及したプロキシプロトコルで、略称はSS、ノードリンクはss://で始まる。通信を通常の暗号化接続に見せかける仕組みで、設定がシンプルでオーバーヘッドも小さい。現在は2022シリーズの暗号化方式を採用したバージョンが主流になりつつあり、旧来の暗号化方式は徐々に使われなくなっている。

プロトコルとコア

VMess

V2Rayプロジェクトの中核プロトコルで、ノードリンクはvmess://で始まり、暗号化とユーザー認証をサポートしている。長らくサブスクリプション設定の主流プロトコルだったが、現在はVLESSなど新しいプロトコルにシェアを譲りつつある。それでも現存するノードは多く、mihomoも完全に対応している。

プロトコルとコア

Trojan

プロキシ通信を通常のHTTPSアクセスに見せかけるプロトコルで、ノードリンクはtrojan://で始まり、TLS証明書を利用して通信を隠蔽する。実際のドメインと証明書に依存するため、設定にはsniやskip-cert-verifyといった証明書検証に関する項目がよく見られる。

ルールと分岐

5項目

分岐が答える問いは「この通信はどの経路を通るか」という一点。以下の5つのカードは、ルール設定を読み解くための最小限のセットです。

ルールと分岐

ルール分岐

Clashの標準的な動作方式。通信が発生するたびに、コアは設定内のルールを上から順に照合し、一致したルールに指定された出口(直接接続・特定のプロキシグループ・拒否)で処理する。どれにも一致しない場合は最後のMATCHルールで処理される。ルールの順序は重要で、より具体的なルールを前に置くのが基本。

ルールと分岐

プロキシグループProxy Group

複数のノードをまとめた論理的な出口のことで、ルールではノード名ではなくグループ名を参照する。よく使われるタイプにはselect(手動選択)、url-test(自動で最低Pingのノードを選択)、fallback(フェイルオーバー)がある。クライアントのノード画面でノードを選ぶ操作は、多くの場合あるプロキシグループが現在使用するノードを変更していることになる。

ルールと分岐

GeoIP

「IPアドレス範囲 → 国・地域」の対応データベース。ルールで GEOIP,CN と書くと「対象IPが中国本土の範囲に属する場合に一致」となり、コアはこれを使ってIPの所属地域を判定する。データベースファイルは定期的な更新が必要で、更新しないと新しく割り当てられたIP範囲の判定精度が下がる。

ルールと分岐

GeoSite

GeoIPを補完する「ドメイン → カテゴリ」の対応データベースで、サイトの性質別に分類されている。例えばgeosite:cnは中国本土で一般的なサイトを、geosite:googleはGoogle系ドメインをカバーする。ルールでGEOSITEとカテゴリ名を指定すればカテゴリ単位で参照でき、ドメインを1件ずつ列挙する手間が省ける。

ルールと分岐

Fake-IP

DNSの動作モードの一種。端末上のアプリがドメイン名を問い合わせると、コアはまず198.18系の仮アドレスを返し、実際の通信が発生した時点でドメイン名によるルール判定を行う。メリットは、DNSポイズニングが分岐判定に及ぼす影響を回避できること、そしてルールのマッチングが通信確立前に行われることにある。一部の古いソフトはこのアドレス範囲を認識できないため、その場合は設定のfake-ip-filterで除外できる。

サブスクリプションと設定

4項目

サブスクリプションはノードの取得元を決め、設定はクライアントの動作を決める。サブスクリプション更新でなぜ手動変更が消えてしまうのか、この節を読めばわかります。

サブスクリプションと設定

サブスクリプションURLSubscription URL

提供元から発行される1本のURLで、クライアントが定期的にアクセスすることで最新のノード・ルール一覧を取得できる。「サブスクリプションを追加」時に貼り付けるのがこのURL。このURLは利用資格そのものに等しく、流出すると他人にも使われてしまうため、公開したりスクリーンショットを共有したりしないこと。

サブスクリプションと設定

設定ファイルconfig.yaml

コア起動時に読み込まれる全体設定で、ポート・プロキシモード・ノード・プロキシグループ・ルールがすべて記述されている。デフォルトのファイル名はconfig.yaml。サブスクリプションからインポートした内容も、最終的にはローカルの設定ファイルとして保存される。変更後はコアの再読み込みが必要だが、多くのクライアントでは保存時に自動で行われる。

サブスクリプションと設定

YAML

設定ファイルで使われる記述形式で、インデントによって階層を表し、コロンの後に値を続ける。記号の使い方には厳密なルールがあり、インデントは半角スペースのみでTabは使用不可、コロンの後には半角スペース1つが必要。サブスクリプション更新の失敗や起動エラーに出てくるyaml: line xxは、その行の書式が誤っていることを示している。

サブスクリプションと設定

オーバーライドMixin / Override

サブスクリプションの設定に加えて重ねる個人用のカスタム設定層のこと。サブスクリプションは更新のたびに提供元の内容へ戻ってしまうが、オーバーライド層があれば、独自のルールを追加したりDNSを変更したりといったカスタム内容を、更新後も再度反映できる。Clash Verge Revでは「グローバル拡張設定」、旧版のClash for WindowsではMixinと呼ばれていた。

ネットワークとポート

4項目

ポートは端末の通信の入り口で、DNSはドメイン名解決の行き先を決める。ポートの競合とDNSの異常は、トラブルの中でも特に発生頻度が高い2種類です。

ネットワークとポート

混合ポートMixed Port

クライアントが端末で開くリスニングポートで、HTTPとSOCKS5という2種類のプロキシプロトコルが同じポートを共用する。デフォルト値は7890が一般的。システムプロキシのスイッチが実際にやっているのは、ブラウザをこのポートへ向けることだけ。2つのクライアントが同時に同じポートを使おうとすると「ポートが使用中」というエラーになるので、ポートを変更するか片方を終了すればよい。

ネットワークとポート

TUNモード

仮想ネットワークカードを通じてデバイス全体の通信を制御する動作方式で、アプリがシステムプロキシの設定に従うかどうかに依存しない。システムプロキシを無視するソフト(一部のゲームやコマンドラインツール)に対して効果的。有効化には管理者権限またはroot権限が必要で、他のVPN系ソフトと競合する場合もある。

ネットワークとポート

DNSリークDNS Leak

システムがプロキシ経路を経由せず、直接プロバイダのDNSサーバーへドメイン名を問い合わせてしまう現象のこと。問い合わせ履歴が外部に漏れるほか、分岐判定が正しく機能しなくなる場合もある。コアの設定で内蔵DNSを有効化しnameserverを指定し、Fake-IPモードと併用すれば、ドメイン名の問い合わせをプロキシ経路内に収めることができる。

ネットワークとポート

ループバックアドレス127.0.0.1 / localhost

端末自身を指すアドレスで、このアドレス宛のデータはネットワークカードの外へは出ない。クライアントのプロキシポートは127.0.0.1にバインドされているため、システムプロキシの設定でも127.0.0.1というアドレスが表示される。localhostはそのホスト名表記で、どちらも同じものを指す。注意点は、これは端末自身のみを指すということ——LAN内の他の端末がこのPCのプロキシを共用したい場合は、127.0.0.1ではなくこのPCのLAN内IPアドレスを入力する必要がある。

クライアント用語

4項目

最後の4つの用語は、クライアント画面上の実際のスイッチやオプションに対応しています。各スイッチが何を書き換えているのかを知っておけば、操作時に迷わなくなります。

クライアント用語

プロキシモードルール/グローバル/直接接続

クライアント上の3段階の切り替えスイッチ。ルールモード(Rule)は設定内のルール一覧に従って通信を1件ずつ分岐させる、日常使いでの推奨モード。グローバルモード(Global)は全通信を現在選択中のノード経由にする。直接接続モード(Direct)は転送のみを行いプロキシを一切使わず、一時的な比較検証によく使われる。3つの詳しい違いはブログのプロキシモード解説記事を参照。

クライアント用語

外部コントローラーExternal Controller

コアが公開しているローカルのHTTPインターフェースで、デフォルトでは127.0.0.1:9090で待ち受ける。クライアントのGUIはこれを通じてノード切り替え・接続確認・ログ取得を行っている。設定内のsecret項目はこのインターフェースへのアクセス用パスワードで、通常の使用では手動で変更する必要はない。

クライアント用語

LAN内接続を許可Allow LAN

オンにすると、プロキシポートが127.0.0.1のみの待ち受けから0.0.0.0での待ち受けに変わり、同一ネットワーク内の他の端末もこのPCのプロキシを指定して、プロキシ経路を共用できるようになる。会社やカフェなど公共のネットワークではオフにしておくのが望ましく、同一ネットワーク上の見知らぬ端末にポートを公開してしまうことを避けられる。

クライアント用語

ログレベルLog Level

クライアントがどの程度の実行情報を記録するかを決める設定で、少ない順にerror、warning、info、debugが一般的。通常はinfoで十分だが、接続の問題を調査する際は一時的にdebugに切り替えると、各通信のルール一致過程まで確認できる。調査が終わったら元に戻すこと。戻さないとログファイルが急速に肥大化してしまう。

用語を確認したら、次にすること

用語はいわば地図であり、実際に使いこなすには一連の流れを一度体験することが欠かせない。使い方ガイドのページでは、サブスクリプションの追加・ノード選択・システムプロキシの有効化・動作確認までを一本の流れとしてまとめています。クライアントをまだインストールしていない場合は、ダウンロードページでお使いの環境に合ったものを選んでください。