用語ガイド · macOS設定の参考情報

Clash用語集

プロトコルからシステム設定まで、設定時に見かける順に用語を確認できます。各項目では概念や役割、利用時の注意点を解説します。用語を把握したら、クライアントの該当画面で設定を調整してください。

初期設定にはクイックスタートをご覧ください。プロトコルやコアを比較する場合は、プロトコルガイドも参考になります。各項目には個別のアンカーがあるため、リンクを共有できます。

接続に使われるプロトコル

プロキシプロトコル

プロトコルは、クライアントとサーバーがデータをやり取りする方法を定めます。ノード名や通信モードとは別の概念です。クライアントでプロトコル名を変更しても、サーバーが別のプロトコルに対応するわけではありません。

ShadowsocksSS
暗号化と転送を中心としたプロキシプロトコルで、一般的な設定項目にはサーバーアドレス、ポート、パスワード、暗号化方式があります。クライアントとサーバーで互換性のある設定を使う必要があります。従来方式とShadowsocks 2022では鍵の要件が異なるため、暗号化方式の名前だけを変更して移行することはできません。インポート後に方式が未対応と表示された場合は、システムプロキシを何度も切り替えるのではなく、まずコアの対応状況を確認してください。
VMessVMess protocol
V2Rayエコシステムのプロキシプロトコルで、通常はUUIDでユーザーを識別し、さまざまな通信方式と組み合わせて使います。UUIDが正しくても接続できるとは限らず、TLS、サーバー名、パスなどもサーバー側の設定と一致させる必要があります。システム時刻が大きくずれていると認証に影響する場合があります。Macで問題を調べる際は、「システム設定」の「日付と時刻」を確認してください。
TrojanTLS-based proxy protocol
通常、TLSで通信を保護するプロキシプロトコルです。設定にはパスワード、サーバーアドレス、サーバー名などを指定します。証明書の名前、有効期限、信頼チェーンはハンドシェイクに影響するため、証明書エラーが出た場合は、検証を無効にするのではなく項目ごとに確認してください。Trojanを使うためにmacOSへ追加のルート証明書をインストールする必要はありません。そのような要求が出た場合は、目的を確認してください。
VLESSVLESS protocol
V2RayやXrayエコシステムで使われる軽量プロキシプロトコルで、ペイロード自体は暗号化されません。実際の安全性は、TLSやREALITYなどの仕組みと適切な設定に左右されます。VLESSの特定の組み合わせに対応しているかは、コアのバージョンと通信設定を確認してください。サブスクリプションをインポートできても、含まれるすべての接続方式が正常に使えるとは限りません。
Hysteria2Hy2 · QUIC
QUICベースのプロキシプロトコルで、通常はUDPで接続します。不安定なネットワークでの通信を考慮した設計ですが、実際の使い心地は回線品質、UDPの利用可否、帯域設定に左右されます。新しいプロトコルだから速いとは限りません。特定のネットワークで接続できない場合は、まずUDP通信が許可されているか確認してください。
TUICQUIC-based proxy protocol
QUICベースのプロキシプロトコルで、TCPとUDPの通信を扱い、接続を多重化して一部の接続確立コストを抑えます。プロトコルのバージョンや実装によって互換性に差があるため、クライアントの設定をサーバーの要件に合わせてください。コアの対応状況だけでなく、利用中のネットワークでUDPが制限されていないかも確認が必要です。システムプロキシを有効にしても、UDPの通信障害は解決できません。

設定画面と実際の処理

コアとクライアント

メニューバーアプリが操作画面を提供し、プロキシコアが実際の接続を処理します。機能の対応状況を確認する際は、アプリのバージョン、付属するコア、macOSの権限を分けて考えてください。クライアント名だけでは判断できません。

オリジナル版ClashOriginal Clash core
Clashエコシステム初期のルールベースプロキシコアで、後続プロジェクトにも引き継がれた設定構造を定めました。元のプロジェクトは開発を終了しています。旧設定の基本的なノード、プロキシグループ、ルールは後続コアで読み込める場合がありますが、新しいプロトコルや設定項目まで互換性があるわけではありません。古いチュートリアルを読む際は、現在のクライアントのドキュメントと手順を照らし合わせてください。
Clash MetaFormer name of mihomo
mihomoの初期のプロジェクト名です。古いチュートリアルや設定コメント、一部のアプリ名には、今もMetaという名称が残っています。この名称はすべてのGUIクライアントを指すものではなく、アプリに付属するコアの新旧を示すものでもありません。設定項目が認識されない場合やプロトコルが未対応の場合は、クライアントに表示される実際のコア情報を確認してください。
mihomoRule-based proxy core
Clash Metaから発展したルールベースのプロキシコアで、プロトコル接続、DNS処理、ルール判定、通信の振り分けを担います。macOS用のメニューバーアプリ一式ではなく、通常はGUIクライアントが起動・管理します。新しい設定が使えるかどうかはコアのバージョン次第です。mihomoのすべての機能が各クライアントで利用できるわけではありません。
GUIクライアントGUI client
メニューバー、サブスクリプション管理、プロキシグループの選択、設定画面などを備えたアプリです。通常、バックグラウンドでは独立したプロキシコアを呼び出します。システムプロキシの設定、ログイン時の起動、補助サービスの権限は、クライアントとシステムの連携に関わり、コアだけで決まるものではありません。同じ設定でもアプリによって操作手順が異なり、アプリとコアの更新時期も一致するとは限りません。

コアに入った通信の出口を選ぶ仕組み

ルールとプロキシグループ

ルールは通信を判定し、プロキシグループは選択できる出口をまとめます。振り分け結果を調べるときは、まずどのルールに一致したかを確認し、次にそのルールが参照するプロキシグループで何が選択されているかを確認してください。

ルールベースの振り分けRule-based routing
ドメイン名、宛先IP、プロセスなどの条件に基づいて、ダイレクト、プロキシ、拒否などの出口を選びます。通常のルールは上から順に判定され、先に一致したルールが優先されます。末尾のMATCHは、それまでのルールに一致しなかった通信を処理します。ルールの位置を変えると結果も変わるため、追加後はファイルが保存されたかだけでなく、通信ログも確認してください。
プロキシグループProxy group
ノードや他のプロキシグループをまとめ、ルールから参照できる設定単位です。一般的な種類には手動選択、自動テスト、障害時の切り替えがあります。自動テストはテスト先への応答を確認し、障害時の切り替えは設定された順に利用可能な出口を探します。両者は同じ動作ではありません。グループを切り替えても、そのグループを参照する通信だけに影響します。
通信モードRule / Global / Direct
一般的な選択肢はルール、グローバル、ダイレクトで、コアに届いた通信の出口を決めます。ルールモードは設定に基づいて振り分け、グローバルモードは通常、グローバル用のプロキシグループを使います。ダイレクトではリモートプロキシを経由しません。グローバルモードはTUNとは異なり、もともとコアに届いていないアプリの通信まで自動的に取り込むことはできません。
GeoIPIP geolocation data
IPアドレスを地域情報に対応付けたデータで、宛先アドレスに応じた通信の振り分けに使われます。ドメインの一覧ではありません。データの更新遅れ、共有IP、CDNの振り分けなどにより、結果が想定と異なることがあります。ドメイン宛ての通信を先に名前解決するかどうかはルールの設定にもよるため、サイト名だけで判定結果を推測しないでください。
GeositeDomain classification data
地域、サービス、用途ごとに整理されたドメイン分類データで、ルールから集合名を指定して複数のドメインをまとめて参照できます。ドメインの集合に基づく判定であり、宛先IPの地域情報を使うGeoIPとは異なります。同じWebサイトが複数のリソース用ドメインを使うこともあります。集合名と収録範囲はデータソースによって異なるため、分類名だけで関連サービスがすべて含まれているとは限りません。

macOSの通信経路とDNSの仕組み

ネットワークとシステム

このカテゴリの設定は、アプリの通信をクライアントに渡す方法と、ドメイン名を解決する場所を決めます。まず通信が取り込まれる経路を確認し、その後に出口を調べると、複数の設定を同時に変更して原因が分からなくなるのを防げます。

システムプロキシSystem proxy
macOSがネットワークサービスごとに保持するプロキシ設定です。システム設定に従うアプリは、指定されたアドレスとポートにリクエストを送ります。ブラウザーでは通常利用できますが、一部のターミナルツール、ゲーム、独自のネットワーク処理を行うアプリは無視する場合があります。クライアント終了時にシステムプロキシが元に戻っていないと、停止済みのローカルポートへ接続しようとすることがあります。
TUNモードVirtual network interface
仮想ネットワークインターフェースとルーティングを使い、対象のIP通信をプロキシコアに転送します。システムプロキシを参照しないアプリの通信を取り込む場合によく使われます。macOSでは通常、権限の許可や補助サービスのインストールが必要です。実際の対象範囲は、ルート、除外設定、DNS設定によって決まります。他のVPNと競合する場合は、ノードを変更するのではなく、まずルーティングとインターフェースの状態を確認してください。
Fake-IPSynthetic DNS mapping
DNSの処理方式の一つで、問い合わせたドメイン名に対して、コア内で対応付ける仮想IPアドレスを返します。その後、コアが対応関係からドメイン名を復元して通信を処理します。ドメイン情報を保ったまま振り分けられますが、返されるIPアドレスはWebサイトの実サーバーのものではありません。LANサービスや実際の名前解決結果に依存するアプリでは、Fake-IPの除外設定が必要になる場合があります。
DNSリークDNS leak
DNSクエリが想定した経路で送信されず、別のDNSリゾルバーで処理される状態です。重要なのは、実際の経路が設定の目的に合っているかどうかです。ブラウザーのセキュアDNS、システムのリゾルバー、クライアントのDNS設定、TUNのルーティングが結果に影響します。テストページに表示されたリゾルバー名だけで判断せず、想定した設定とクライアントのログをあわせて確認してください。
混合ポートmixed-port
同じ待ち受けポートでHTTPプロキシとSOCKSプロキシのリクエストを受け付ける設定で、複数のアプリからローカルプロキシを利用できます。7890はよく使われる例ですが、実際の番号はクライアントの設定を確認してください。変更した場合は、プロキシを手動設定しているアプリも更新します。他のデバイスからの接続可否は、待ち受けアドレス、ファイアウォール、LAN接続の設定にも左右されます。
遅延Latency / URL test
クライアントが指定した宛先への接続テストにかかった時間です。テスト先、接続確立の手順、回線状況によって数値が変わります。遅延が小さくてもダウンロード速度が速いとは限らず、すべてのサイトに接続できる保証もありません。通信速度と宛先までの経路は別の指標です。テストがタイムアウトする場合は、ノード、DNS、テスト先などを確認し、実際の通信とログをもとに原因を調べてください。

設定の取得元と保存方法

購読と設定ファイル

サブスクリプションは設定の配布方法、YAMLは一般的なファイル形式、ノードは設定内の通信出口です。それぞれ役割が異なるため、ファイルをインポートできるかと、実際に接続できるかは別々に確認してください。

サブスクリプションSubscription
リンク経由でノードや設定一式を取得する配布方法です。プロキシプロトコルではなく、クライアントをインストールしただけで接続先が付属するものでもありません。リンクによってClash YAML、エンコードされたノード一覧、その他の形式が返されます。直接インポートできるかどうかは、クライアントの対応状況によります。サブスクリプションリンクにアクセス用の認証情報が含まれることがあるため、問題を調べる際も完全なURLを公開ページに貼らないでください。
ノードProxy entry
プロキシ経由の接続に必要な設定項目で、通常はサーバーアドレス、ポート、プロトコル、認証情報を含みます。表示名は識別用のラベルにすぎず、実際の場所、回線品質、使用プロトコルを示すものではありません。ノードを選んだ後は、ルールがその出口を参照しているかも確認してください。一覧にノードが表示されていても、通信が実際に経由しているとは限りません。
YAMLConfiguration data format
Clash設定によく使われるテキスト形式で、インデント、キーと値、リストによって階層を表します。インデントにはタブではなくスペースを使ってください。構文を解析できても、キー名や参照先、コアの対応状況が正しいとは限りません。手動編集の前にコピーを保存し、編集後は読み込みログを確認して、構文エラーをネットワーク障害と混同しないようにしてください。
サブスクリプションの自動更新Scheduled profile refresh
設定した間隔でクライアントがサブスクリプションを再取得し、ノード、ルール、その他の設定を更新します。どの設定が更新されるかはサブスクリプションの内容によって異なります。アプリやコアの更新とは異なり、Macのスリープ中やネットワーク切断中に予定どおり実行される保証もありません。サブスクリプションファイルを直接編集した内容は上書きされることがあります。変更を保持するには、クライアントのオーバーライド、マージ、ローカル設定機能を利用してください。