暗号化通信をベースにした軽量なプロキシプロトコルで、SSと略されることが多い。設計がシンプルで負荷が小さく、Clashおよびmihomoコアがネイティブに対応しており、サブスクリプションノードで最も一般的なプロトコルの一つ。ノード名に「SS」と表記されていれば、通常これを指す。
Clash用語解説
頻出用語26語を5つのカテゴリーに整理。各項目は2~4文で構成し、概念を理解したら設定チュートリアルや上級者向けマニュアルで実際に操作してみましょう。
プロキシプロトコル
プロトコルはノードがサーバーとどのように通信するかを決めます。サブスクリプションにどのプロトコルが含まれるかはサービス提供者が決め、クライアント側はコアが対応しているかを確認するだけで済みます。
V2Rayプロジェクトが設計した暗号化通信プロトコルで、クライアントとサーバーの時刻同期による認証に依存する——端末の時刻が大きくずれていると接続に失敗する。設定項目はShadowsocksより複雑で、WebSocketやgRPCなど複数のトランスポート層偽装に対応している。
プロキシ通信を標準的なHTTPS通信に偽装するプロトコルで、実在するドメインとTLS証明書に依存して動作する。通常のウェブサイトアクセスに近い通信特徴を持つため、検知されにくい。Clash系のコアはいずれも対応しており、設定項目が少なくトラブルシューティングも比較的容易。
VMessを簡略化した後継プロトコルで、内蔵の暗号化層を廃止し、通常はTLSまたはRealityと組み合わせて安全性を確保する。オリジナルのClashコアは対応していないが、mihomoコアは対応済み——サブスクリプションにVLESSノードがある場合は、クライアントが新しいコアで動作しているか確認しよう。
QUICをベースにしたプロキシプロトコルで、パケットロスや遅延が大きいネットワーク環境向けに輻輳制御を最適化しており、通信環境が悪い場合のスループットが明らかに優れている。mihomoなど新しいコアのみ対応しており、更新が停止したクライアント(Clash for Windowsなど)ではこの種のノードは無視される。
動作モードと戦略
モードは通信全体の流れ方を決め、ポリシーグループはどのノードを使うかを具体的に決めます。この2つの階層を理解すれば、クライアントのホーム画面にあるスイッチも謎ではなくなります。
Clashのデフォルト動作モード:各接続は設定ファイルのrulesセクションに従って1つずつ照合され、マッチしたルールの出口(直接接続かプロキシか)に従って処理される。日常使用ではRULEモードのままで問題なく、振り分けが適切かどうかはルールの質に依存する。
すべての振り分けルールをスキップし、全通信を選択したプロキシ出口に一括で任せる。「ルールの問題かノードの問題か」を一時的に切り分けたい場合や、短時間だけ全通信をプロキシ経由にしたい場合に向いている。長期間グローバルモードのままにすると、国内サイトへのアクセスも遠回りになり速度が落ちる。
すべての通信がプロキシを経由せず、端末のネットワークから直接送信される。クライアントを終了せずにプロキシを一時的に「オフ」にした状態に等しい。ネットワークの問題を調査する際、モードをDIRECTに切り替えてアクセス結果を比較するのは、最も手早い二分法の一つ。
複数のノードを1つの選択可能なグループにまとめたもの。よく使われるタイプには手動選択のselect、自動速度測定のurl-test、フェイルオーバーのfallback、負荷分散のload-balanceがある。ルールの出口は通常単一ノードではなくポリシーグループを指しており、ノードを切り替えるにはグループ内で選び直すだけでよく、ルール自体を変更する必要はない。
クライアントが指定したテストアドレスにリクエストを送り、応答時間をミリ秒単位で測定してノードの応答速度を評価する仕組み。url-testタイプのポリシーグループは定期的に測定を行い、遅延が最も低いノードを自動的に選択する。遅延が低いのは応答が速いことを意味するだけで、帯域幅が大きいこととは限らない点に注意。
ルールと振り分け
ルールは上から下へ順に照合され、マッチした時点で処理が止まる。マッチの順序を理解することが、「あるサイトが正しい出口を通っていない」というトラブルを調査する第一歩になる。実践的な書き方は上級者向けマニュアルのルール振り分けの章を参照。
ドメイン名、IPの所属地域、プロセス名などの条件に基づいて、通信を異なる出口に振り分ける仕組みであり、Clashが単純なプロキシツールと一線を画す中核機能である。典型的な使い方は中国本土のサイトを直接接続、海外サイトをプロキシ経由にすることで、速度と到達性を両立させる。
ドメインのサフィックスで照合するルールタイプ:あるメインドメインにマッチすれば、そのすべてのサブドメインをカバーできる。カスタムルールを書く際に最も使用頻度が高い。似たものとして完全一致のDOMAINやキーワード一致のDOMAIN-KEYWORDがあり、マッチする範囲は狭い順から広い順に並んでいる。
宛先IPの地理的所属データベースに基づいて照合するルールタイプで、最も一般的な書き方は中国本土のIPを直接接続に振り分けるというもの。IPを取得するには先にドメイン名解決を完了させる必要があるため、GEOIPルールは通常すべてのドメイン系ルールより後に置き、不要な解決処理を避ける。
前方のどのルールにもマッチしなかった通信をすべて処理する最終ルールで、必ずrulesセクションの最後に置く必要がある。未知の通信のデフォルトの行き先を決めるもので、プロキシグループを指定すれば「不明な通信はプロキシ」、DIRECTを指定すれば「不明な通信は直接接続」となり、どちらにも一長一短がある。
多数のルール項目を外部ファイルとして分離し、設定から参照して定期的に自動更新する仕組み。コミュニティが維持するルールセットには数万件のドメインが含まれることも多く、1行参照するだけで利用でき、手書きやメンテナンスのコストを省ける。mihomoコアはルールセットの形式サポートが最も充実している。
クライアントとコア
コアが実際のプロキシと振り分けを担い、クライアントはそれを包むグラフィカルインターフェースにあたる。両者を区別できてはじめて、ある機能が「どちらの責任か」を判断しやすくなる。選定比較は横断レビューを参照。
オリジナルのClashコアがアーカイブされた後、コミュニティが引き続き保守しているオープンソースコアで、旧称はClash Meta。現在活発なグラフィカルクライアントの内部はほぼすべてmihomoで動いており、VLESSやHysteria2などの新しいプロトコルやより豊富なルールタイプに対応しており、現時点で事実上の標準コアとなっている。
mihomoコアをベースにしたオープンソースのデスクトップクライアントで、Windows、macOS、Linuxの3プラットフォームに対応する。オリジナルのClash Vergeが更新を停止した後、コミュニティが引き継いで保守を続けており、TUNモードやサブスクリプション管理に対応し、デスクトップ向けの主流な選択肢の一つとなっている。
iOS、Android、Windows、macOSに対応するマルチプラットフォームクライアントで、iOS版はApp Store経由で配布され、公式サイトはclashplus.io。スマートフォンとPCで同じ操作ロジックを使えるため、複数デバイスを使うユーザーに向いている。各プラットフォームのインストーラーはダウンロードページを参照。
オペレーティングシステム内に仮想ネットワークカードを作成し、すべてのネットワーク通信を引き受ける動作方式で、システムのプロキシ設定を読み取らないプログラム(コマンドラインツールや一部のゲームなど)もカバーできる。有効化には通常管理者権限またはシステム拡張の権限が必要で、初回起動時はクライアントの案内に従って許可すればよい。
クライアントが自身のリスニングポートをオペレーティングシステムのプロキシ設定に書き込み、その設定に従うブラウザなどのアプリは自動的にプロキシを経由する。最も一般的で副作用の少ない引き受け方式だが、システムプロキシを参照しないプログラムにはTUNモードでカバー範囲を補う必要がある。
サブスクリプションと設定
サブスクリプションリンクを入手してからルールが有効になるまでには、設定ファイルとDNSという2つの工程がある。このグループの用語は、設定を取り込む際に最もよく出てくる概念をカバーしている。
設定ファイル内の利用可能なプロキシサーバーの1レコードで、アドレス、ポート、プロトコル、認証情報を含み、設定のproxiesセクションに対応する。サブスクリプションを取り込むと、ノードは各ポリシーグループに現れ、手動選択や自動速度測定の対象となる。
サービス提供者が発行するURLで、クライアントが定期的に取得することで最新のノードとルールを反映できる。ノードが変更された場合はサブスクリプションを更新すれば同期される。サブスクリプションリンクはアクセス資格情報と同等のものなので、スクリーンショットで共有したり公開の場に貼り付けたりしないこと。取り込み手順は設定チュートリアルを参照。
他の形式のノードサブスクリプションをClashが認識できるYAML設定に変換する処理で、オンライン変換サービスやクライアント内蔵の機能で行える。変換時にはルールテンプレートを適用できることも多く、一度で完全な振り分けルール付きの設定を得られる。サードパーティの変換サービスを使う場合、サブスクリプションの内容が相手のサーバーを経由するため、その点は自身で判断する必要がある。
Clashが使用する設定ファイル形式で、インデントによって階層を表現し、主にポート、DNS、proxies、proxy-groups、rulesなどのセクションを含む。インデントのスペース数を誤ったりタブ文字が混入したりするのが、設定が読み込めなくなる最も多い原因で、エラーメッセージに表示される行番号が調査の出発点になる。
DNS処理方式の一つ:ドメイン名に対してまず予約済みセグメントの仮想IPを返し、接続を即座に確立させ、実際の名前解決は必要になった時点でコアが行う。利点はDNSの待ち時間を省き、解決結果への干渉を避けられることだが、実際のIPに依存する一部のLANアプリは例外リストへの追加が必要になる場合がある。
通信自体はプロキシを経由しているものの、ドメイン名解決のリクエストがローカルネットワークから平文のまま送信されてしまい、アクセス先が第三者に知られてしまう状態を指す。コアによるDNSの引き受けやFake-IPモードを有効にすれば回避できる。漏洩の有無は公開されているDNSチェックサイトで自分で確認できる。