01 基礎概念
ノード / Proxy1つのプロキシサーバーの接続情報。アドレス、ポート、プロトコル、暗号化方式を含み、分流の最小実行単位となる。
サブスクリプション / Subscription複数のノード情報を含む設定ファイルを内容とするリモートアドレス。クライアントが定期的に自動取得・更新でき、各ノードを手動で入力する必要がない。
プロキシグループ / Proxy Group複数のノードをグループ化し、選択方式を指定する:手動選択(select)、自動速度測定(url-test)、フェイルオーバー(fallback)、または負荷分散(load-balance)。
ルール / Ruleある種類の通信を最終的にどのプロキシグループに処理させるか、あるいは直接接続やブロックにするかを決定する。
設定ファイル / config.yamlYAML形式でポート、ノード、プロキシグループ、ルールを定義するテキストファイルで、Clash / mihomoが動作するための中核的な根拠となる。
コア / Core実際に通信を処理し分流ロジックを実行するバックグラウンドプログラム。GUIクライアントは通常このコアの可視化されたインターフェースにすぎない。
Dashboard / 管理パネルコアが公開する外部制御インターフェース(external-controller)を利用したWebベースの可視化パネルで、通信状況の確認、ノードの切り替え、ルールの編集ができる。
Profile / 設定プロファイルクライアント内に保存された具体的な1つの設定(サブスクリプションから取得したものが多い)。一部のクライアントは複数のProfileを切り替えて使える。
02 プロトコルとノード
Shadowsocks (SS)初期から広く使われている軽量なプロキシプロトコル。実装が簡単で速度も速いが、通信の特徴が比較的検出しやすいため、難読化プラグインと組み合わせて使われることが多い。
VMessV2Rayプロジェクトが提唱したプロトコルで、Shadowsocksをベースに認証機能や動的ポートなどの特性を追加し、セキュリティを向上させている。
Trojan通常のHTTPS通信に偽装するプロキシプロトコルで、実際のWebブラウジングに近い特徴を持つため、通信検査が厳しいネットワーク環境でも検出されにくい。
SnellSurgeエコシステムの軽量プロキシプロトコルで、性能はShadowsocksに近く、現在はClash / mihomoコアでも広くサポートされている。
SOCKS5汎用的なプロキシプロトコル規格で、暗号化機能を持たず、通常はローカル転送用のプロトコルとして使われ、公開ノードの暗号化方式としては使われない。
難読化 / Obfsプロキシプロトコルの外側にさらに1層かぶせて通信の特徴を偽装する手法で、プロキシ通信をネットワーク上で通常のHTTPSやHTTP通信に近く見せかける。
UDP転送ノードがUDP通信(一部のゲーム、音声通話、DNSクエリなど)の転送に対応しているかどうか。設定内では通常udpフィールドで示される。
Proxy Providerリモートアドレスから動的にノードリストを提供する仕組みで、サブスクリプションと似ているがより柔軟性が高く、ヘルスチェックやフィルター条件を個別に設定できる。
03 ルールと分流
DOMAIN / DOMAIN-SUFFIX / DOMAIN-KEYWORD3種類のドメインマッチ方式:完全なドメイン名への完全一致、そのドメインとすべてのサブドメインへの一致、ドメインに指定キーワードが含まれる場合の一致。
GeoIPIPの地理位置データベースに基づいて、通信の宛先が属する国や地域を判定する仕組みで、「中国本土は直接接続、それ以外はプロキシ経由」を実現する最も一般的な方法。
IP-CIDRIPアドレス範囲でマッチングするルール構文で、LANや内部ネットワークのアドレス範囲を直接接続にする設定によく使われる。
Rule Provider一連のルールをまとめてリモートファイルに保存し、クライアントが定期的に取得・更新することで手動での逐次メンテナンスを避けられる仕組み。よく使われる形式にdomain、ipcidr、classicalがある。
MATCHデフォルトルールタイプで、前のルールにマッチしなかったすべての通信にマッチする。ルールリストの最後に置く必要がある。
PROCESS-NAME通信を発行したプロセス名でマッチするルールタイプ。デスクトップ(Windows/macOS/Linux)のみ対応で、特定のプログラムだけを個別にプロキシ経由または直接接続にする際に使える。
DIRECT / PROXY / REJECT通信の3つの基本的な振り分け先:直接接続、プロキシノード経由での接続、直接ブロックして破棄。
url-test / fallback / load-balance3種類の自動化されたプロキシグループタイプ:遅延に基づいて自動で最適なノードを選択、メインノード障害時にバックアップノードへ切り替え、複数ノード間で負荷を分散。
04 ネットワークとモード
TUNモードシステムのネットワーク層に仮想ネットワークアダプタを作成し、デバイス上のほぼすべての通信を処理する。システムプロキシモードより互換性が高いが、通常は管理者権限やシステム認証が必要。
システムプロキシモードシステムプロキシ設定に従うアプリの通信のみを処理する。設定が簡単で、大半のブラウザや一般的なアプリと互換性がある。
ルールモード / グローバルモード / 直接接続モード3種類の動作モード:ルールに従って分流(最も一般的)、全通信を同じノードへ、全通信を直接接続してプロキシを経由しない。
Fake-IPDNS解決時に実際のIPではなく仮想のローカルIPアドレスを返し、実際のルーティング判断をコアが通信層で行う仕組み。ドメインベースの分流の精度を高められる。
DNS汚染 / DNSリークDNS汚染とは、クエリ結果が改ざんされて誤ったアドレスに解決されてしまう現象を指す。DNSリークとは、ドメインクエリがプロキシを経由せず直接ローカルDNSに送信されてしまう現象を指し、アクセス意図が漏洩する可能性がある。
外部コントローラー / external-controllerコアが外部に公開するローカルAPIインターフェースで、Dashboardなどの可視化パネルはこれを通じて状態の読み取り、ノードの切り替え、設定の編集を行う。
Mixed PortHTTPとSOCKS5の両方に対応するローカルリスニングポートで、システムプロキシやブラウザ拡張機能は通常このポートを指定する。
gVisor / System ネットワークスタックTUNモードで通信パケットを処理する2種類の実装方式:gVisorはユーザー空間のネットワークスタックで互換性が高く、Systemはシステムのネットワークスタックを直接使用するため性能が高い。