GLOSSARY

Clash 名詞解説

サブスクリプション、ノード、ルール、コア——これらの言葉はチュートリアルに何度も出てきますが、きちんと説明されることは少ない。ここでは5つの分野に分けてよく使う用語を一度に解説する。各項目は2〜4文で、専門用語を避けてわかりやすく説明する。知らない言葉に出会ったら、このページに戻って確認し、その後設定を続けよう。

01

コアとクライアント

まず「実際に動く部分」と「見える部分」を区別しよう。コアがトラフィックを転送し、クライアントはコマンドラインを触らなくて済むようにするためのものだ。

Clash コア コアとクライアント

実際にトラフィックを転送するコマンドラインのコアプログラム。設定ファイルを読み込み、ローカルでポートを監視し、ルールに従って各リクエストをプロキシまたは直接接続に振り分ける。GUI上で行う操作は、最終的にすべてコアが実行する。

mihomo コアとクライアント

コミュニティが保守するClashコアの分岐版で、前身はClash Metaという名称だった。オリジナルのコアが更新を停止した後、これが保守を引き継ぎ、対応プロトコルを拡張した。現在主流のクライアントに内蔵されているのはこの系統であり、日常的に「Clashコア」と言う場合、多くはこれを指す。

Premiumコア コアとクライアント

Clashの原作者がかつて提供していたクローズドソースの強化版コアで、TUNモードとルールセットを最初にサポートした。元のリポジトリがアーカイブされたことで更新が停止し、現在はその機能はmihomoに完全に引き継がれている。古いチュートリアルで見かけたら、mihomoのことだと理解すればよい。

GUIクライアント コアとクライアント

コアにグラフィカルインターフェースをかぶせたソフトウェアで、Clash Verge RevやFlClashなどが該当する。サブスクリプション管理、ノード切り替え、システムプロキシのオン/オフを担当し、自身はトラフィックを転送しない。クライアントを変えてもコアが変わるわけではなく、振り分けの挙動は通常変わらない。

TUNモード コアとクライアント

コアが仮想ネットワークカードを作成し、ネットワーク層でシステムの全トラフィックを引き受ける。コマンドラインツールや一部のゲームなど、システムプロキシに従わないプログラムは、TUNモードでなければカバーできない。有効化には管理者権限またはそれに相当する権限が必要で、これが権限を要求する理由だ。

02

プロトコルと通信

サブスクリプション内の各ノードの裏には必ずプロトコルがある。実装の詳細まで掘り下げる必要はなく、それぞれの特徴を知っておけば十分だ。

ノード プロトコルと通信

トラフィックを中継できる遠隔サーバーのことで、アドレス、ポート、プロトコル、鍵などのパラメータを伴う。サブスクリプション内の各行のプロキシは1つのノードに対応する。ノードの品質は速度の上限を直接左右するため、遅さを疑ったらまずノードを変えてみるのが第一手だ。

Shadowsocks プロトコルと通信

歴史あるライトウェイトな暗号化プロキシプロトコルで、SSと略されることが多い。構造がシンプルで性能負荷も小さく、モバイル端末でも省電力に動作し、現在もほぼすべてのクライアントでサポートされている。

VMess プロトコルと通信

V2Rayエコシステムの中核プロトコルで、UUID形式のユーザーIDによって認証を行う。それ自体は通信の見た目を暗号化しないため、実運用ではほぼ常にWebSocketやTLSと組み合わせて使われる。

Trojan プロトコルと通信

プロキシのトラフィックを通常のHTTPSアクセスに偽装するプロトコル。サーバーが有効なTLS証明書を持っていることが前提で、外部から見ると通常のウェブ閲覧と区別しにくく、設定項目も比較的シンプルだ。

Hysteria2 プロトコルと通信

QUICをベースにした新世代のプロトコルで、UDPで通信し独自の積極的な輻輳制御を備える。パケットロスが多く迂回距離の長い回線では、TCP系のプロトコルより安定することが多い。mihomoのような新しいコアが必要になる。

TLS プロトコルと通信

トランスポート層の暗号化標準、つまりHTTPSの「S」に当たる部分。プロキシの文脈では二つの役割を担う:トラフィックを標準的な暗号化通信として見せかけつつ、内容が経路上の中間デバイスに読まれないよう保護する。

03

ルールと振り分け

Clashの核心機能は「行くべき所へ振り分ける」ことだ。この節の用語が、各リクエストの行き先を決める。

ルール ルールと振り分け

設定ファイルに1行ずつ書かれる照合文で、あるリクエストをプロキシ経由・直接接続・拒否のいずれにするかを決める。ルールは上から順に照合され、一致した時点で判定が止まるため順序が重要だ。末尾には通常MATCHという条件があり、漏れたリクエストをすべて受け止める。

プロキシグループ ルールと振り分け

複数のノードを1つのグループにまとめ、出口の方式を指定する。手動選択(select)、自動速度測定(url-test)、フェイルオーバー(fallback)などがある。ルールの出口は通常個々のノードではなくプロキシグループを指すため、ノードを入れ替えてもルールを書き換える必要がない。

GeoIP ルールと振り分け

IPの帰属地に基づいて照合するルールタイプと対応するデータベースで、最も典型的な例はGEOIP,CN,DIRECT——宛先IPが中国本土であれば直接接続する、というものだ。データベースファイルは定期的な更新が必要で、古いままだと判定精度が落ちる。

GeoSite ルールと振り分け

用途別にドメインを分類してまとめたルールデータで、1つのGEOSITEルールで、あるカテゴリーのサイトに属する数百〜数千のドメインをカバーできる。ドメイン名で照合するためDNS解決の前に処理され、GeoIPとは補完関係にある。

ルールセット ルールと振り分け

Rule Providerと呼ばれ、大量のルールを外部ファイルに置き、コアが設定した周期で自動的に取得・更新する。メイン設定ファイルには参照する1行だけを残し、ルールの内容はコミュニティが保守するリストに任せる——設定をすっきり保つための常用手法だ。

04

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

サービス提供元からクライアントまでをつなぐ経路。この節の用語を理解しておけば、サブスクリプションをインポートするときに迷わない。

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

サービス提供元から発行される1本のURLで、クライアントが定期的にアクセスして最新のノードリストと設定を自動取得する。これはアカウント認証情報と同等であり、漏洩すると他人が自分のトラフィックをそのまま使えてしまうため、公開して共有してはいけない。

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

他のクライアント形式のサブスクリプションを、Clashが認識できるYAML設定に変換する処理。多くのサービス提供元の管理画面ではClash専用リンクが用意されているが、ない場合は変換ツールで生成でき、その際にカスタムの振り分けテンプレートを同時に適用することもできる。

設定ファイル サブスクリプションと設定

通常config.yamlという名前で、リスンポート、DNSの挙動、ノード、プロキシグループ、ルールをまとめて定義し、コアが動作する唯一の根拠となる。サブスクリプションのインポートとは、実質的にクライアントが代わりにこの設定ファイルをダウンロードして保管する処理のことだ。

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

Clashの設定に使われるテキスト形式で、インデントによって階層関係を表現し、人にもプログラムにも読みやすい。注意点として、インデントは必ず半角スペースを使う必要があり、タブが混入したり階層がずれると、コアは解析エラーで起動を拒否する。

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

混合ポートのことで、同じポートでHTTPとSOCKS5の両方のプロキシリクエストを受け付ける。よく使われるデフォルト値は7890。ブラウザ拡張機能やコマンドラインツールにプロキシアドレスを設定する際は、このポート1つを指定すればよい。

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

同一LAN内の他のデバイスから、このマシンのプロキシポートへの接続を許可するスイッチ。有効にすると、テレビやゲーム機、タブレットのネットワークプロキシをこのPCの内部IPとMixed Portに向けるだけで、同じ設定を共有できる。システムのファイアウォールで通信を許可しておくことも忘れずに。

05

ネットワークと診断

接続した後の話:速度測定が正確でない理由、DNSがどこへ行っているか、どのプログラムがプロキシを経由していないか。

遅延テスト ネットワークと診断

クライアントが速度測定用のURLにリクエストを送り、かかった時間をミリ秒単位で記録する仕組み。これはその測定先へのハンドシェイクの速さを反映するだけで、帯域幅とは異なり、実際に目的のサイトへアクセスする体感とも一致しない。低遅延のノードでも動画がカクつくことはある。

Fake-IP ネットワークと診断

DNSの動作モードの一種:ドメイン名の問い合わせに対して即座に予約済みセグメントの仮想IPを返し、実際の解決は必要になった時点でコアが行いマッピングを保持する。利点は接続確立が速くなり、DNSポリューションの影響を受けにくくなること。実際のIPに依存する一部のプログラムは例外リストに追加する必要がある。

DNS漏洩 ネットワークと診断

トラフィック自体はプロキシを経由しているのに、ドメイン名の解決リクエストがローカルネットワークのデフォルトDNSに送られてしまい、アクセス意図が露出してしまう現象。コアのDNS設定を適切に構成するか、TUNモードで解決を丸ごと引き受けることで回避できる。

システムプロキシ ネットワークと診断

オペレーティングシステム層のプロキシ設定。ブラウザなど、この設定に従うプログラムはトラフィックをClashのローカルポートに渡す。システムプロキシを読まないプログラムはそれを迂回してしまうため、すべて引き受けたい場合はTUNモードに切り替える必要がある。

UDP転送 ネットワークと診断

オンライン対戦ゲームや音声通話などUDPに依存するトラフィックもプロキシ経由で転送できる機能。ノードのサーバー側と使用しているプロトコルの両方が対応している必要がある。ゲームの遅延は正常でも音声だけ途切れる場合は、多くはこの機能が無効か非対応であることが原因だ。

用語を確認したら、次は実践

用語は地図に過ぎない。道は自分で歩む必要がある。初めての設定はクイックスタートから始めて、3ステップでサブスクリプションをインポートしよう。プラットフォームごとに順番に確認したいなら、全プラットフォームガイドに各OSのインストールと設定がすべてまとまっている。エラーが出たらまずよくある質問を確認しよう、多くの落とし穴は先人がすでに踏んでいる。