Clash / Glossary

Clash用語集

サブスクリプション、ルールによる振り分け、ネットワークスタックの用語を解説します。設定内での位置を手がかりに、接続の入口、判定条件、接続先を区別できます。

Core concepts

基本概念

設定の取得元からアプリの接続方法まで、「何を取得するか」と「どう使うか」を区別します。

サブスクリプション

Subscription

URLを使ってノードや設定を取得・更新する配信方式です。サブスクリプションを更新すると、配信元から内容を再取得します。取得内容は完全なYAML、ノード一覧、エンコード済みテキストなどさまざまで、直接インポートできるかはクライアントが対応する形式によります。サブスクリプションはプロキシサービスそのものではありません。URLにアカウント情報が含まれる場合もあるため、機密情報として管理し、トラブル調査でリンク全体を公開しないでください。

ノード

Proxy node / proxies

サーバーアドレス、ポート、プロトコル、認証情報などをまとめたプロキシ接続設定で、通常は設定内のproxiesに記述します。ノード名はプロキシグループやルールから参照するためのもので、名前に含まれる地域名が実際の接続先を示すとは限りません。接続できるかどうかは、アカウントの状態、プロトコル設定、現在のネットワークにも左右されます。名前を変更しても接続経路は変わりません。

遅延

Latency / URL test

クライアントが指定されたテスト先と方法で測定する応答時間です。測定には接続の確立やテスト先の応答時間が含まれる場合があります。テスト先、タイムアウト設定、ネットワーク経路が異なれば結果も変わるため、数値だけで異なるクライアント間を比較することはできません。遅延が小さくてもダウンロードが速いとは限りません。タイムアウトが表示された場合は、ノードが無効だと決めつける前にテスト先へ接続できるかを確認してください。

プロファイル

Profile

クライアントが管理する設定と、その取得元や更新方法などの情報です。UIではProfileと呼ばれることもあります。プロファイルを切り替えると、ノード、プロキシグループ、ルール、DNS設定も変わる場合があり、接続先を切り替えるだけではありません。リモートプロファイルを直接編集すると、更新時に変更が上書きされる可能性があります。継続して使うカスタム設定は、クライアントが対応するオーバーライド機能で保存してください。

システムプロキシ

System proxy

OSのプロキシ設定をクライアントのローカル待ち受けポートに向ける接続方式です。システムプロキシに従うブラウザーやアプリは、そのポートにリクエストを送ります。一方、独自のネットワーク設定を使うプログラムは直接接続する場合があります。クライアント終了後も無効なプロキシアドレスが残っていると、アプリがインターネットに接続できなくなることがあります。その場合はクライアントの動作状態とOSのプロキシ設定を確認してください。

Proxy protocols

プロキシプロトコル

プロトコルによって、クライアントとプロキシサービス間の通信方式が決まります。ローカルの接続口とリモートノードで異なるプロトコルを使うこともできます。

HTTPプロキシ

HTTP proxy / CONNECT

HTTPプロキシのポートを介してアプリのリクエストを転送する方式です。HTTPSでは通常、CONNECTでトンネルを確立してから、接続先サイトとTLS通信を行います。HTTPプロキシはクライアントが提供するローカルの接続口にも、設定に記述するリモートプロキシの種類にも使われます。「HTTP」と表示されていても、接続全体が暗号化されているとは限りません。アプリからプロキシまでと、プロキシから接続先までを分けて確認してください。

SOCKS5

SOCKS version 5

TCP転送に対応し、UDPの転送方式も定めた汎用プロキシプロトコルです。アプリ側でプロキシの接続先を個別に指定する場合によく使われます。プロトコル自体に通信を暗号化する機能はなく、ユーザー名とパスワードによる認証も暗号化通信を意味しません。UDPを実際に利用するには、アプリ、クライアントの設定、リモートサービスすべての対応が必要です。ドメイン名をどちら側で名前解決するかも、アプリの接続方式によって異なります。

Shadowsocks

Shadowsocks / ss

暗号化方式と認証情報を指定してリモートサービスに接続するプロキシプロトコルで、設定タイプには通常ssと記述します。インポート時はサーバーアドレス、ポート、暗号化方式、パスワードを一致させてください。どれか一つでも異なると、ハンドシェイクに失敗する場合があります。プラグインや特定のプロトコル拡張が必要なサービスでは、クライアントのコアとサーバー側で互換性のある実装を使っているか確認してください。

Trojan

Trojan / TLS

通常はTLSで暗号化接続を確立し、パスワードで認証するプロキシプロトコルです。サーバーアドレスとTLSで使うドメイン名が異なる場合があります。SNI、証明書の名前、システム時刻もハンドシェイクに影響します。証明書エラーが発生したら、検証を無効にして使い続けるのではなく、これらの設定とサーバー側の構成を確認してください。

Rules & routing

ルールと振り分け

ルールで接続先を判定し、プロキシグループで選択し、最終的な接続先が通信を確立します。

ルールによる振り分け

Rule routing / rules

ドメイン、IP、プロセス、ルールセットなどの条件に応じて、接続先を選ぶ仕組みです。ルールモードでは通常、上から順に評価され、最初に一致したルールのポリシーが適用されます。末尾にMATCHを置くと、ほかのルールに一致しない接続を処理できます。ルールを変更する前に、接続ログでどのルールが一致したか確認してください。広い範囲に一致するルールを上位に置くと、後続の詳細なルールが適用されなくなります。

プロキシグループ

Proxy group / proxy-groups

ノードやほかのポリシーをまとめ、ルールから参照できる接続先として使う仕組みです。判定ロジックと実際のノードを分けて管理できます。selectは手動選択、url-testはテスト結果に基づく自動選択、fallbackは順番に利用可能なメンバーを探します。ルールが参照するのはグループ名で、実際の接続先はグループ内の選択によって決まります。名前を変更する場合は、すべての参照先も確認してください。

ルールセット

Rule provider / RULE-SET

rule-providersで定義し、RULE-SETから参照するルールの集合です。ドメインやアドレスの大規模なリストを管理するのに適しています。集合にマッチ条件を格納し、参照するルールで接続先を指定します。利用時はファイル形式、behavior、キャッシュパスを確認してください。ダウンロードに成功しても、項目が想定した形式とは限りません。

GeoIP

IP geolocation / GEOIP

IPの地理情報データベースに基づいて照合するルール機能です。たとえばGEOIP,CN,DIRECTのように指定します。結果はデータベースのバージョンやIPアドレスの登録情報によって異なり、Webサイトの対象地域やユーザーの所在地を正確に示すものではありません。ドメイン接続でIPのルールを判定する際に、名前解決が発生することがあります。no-resolveを付けると、そのルールのための名前解決を抑制できますが、宛先IPがまだないリクエストは一致しない場合があります。

DIRECTとREJECT

Built-in outbound policies

DIRECTは端末のネットワーク経路から直接接続し、REJECTは接続を拒否します。どちらもルールから参照できる組み込みポリシーです。DIRECTは特定の物理ネットワークアダプターを指定するものではなく、通信がシステムVPNなど別のネットワーク層を経由する場合もあります。REJECTは明確な接続先を遮断するのに適していますが、対象範囲が広すぎるとログイン、認証コード、ページの表示に必要なリソースに影響することがあります。

DNS & network stack

DNSとネットワークスタック

ドメイン名の名前解決と通信の取り込みは別の処理です。アプリ、システムのルーティング、コアの設定を合わせて確認してください。

DNS

Domain Name System / dns

ドメイン名をIPアドレスなどのレコードに変換する仕組みです。名前解決の結果によって、後続の接続先となるアドレスが決まります。クライアントのDNS設定で受け取る問い合わせを制御できますが、システムキャッシュ、アプリ内蔵の暗号化DNS、問い合わせの取り込み方も結果に影響します。トラブル時は「ドメイン名を解決できるか」と「解決後のアドレスに接続できるか」を分けて確認してください。原因も対処方法も異なります。

Fake-IP

Fake-IP / enhanced-mode

クライアントがアプリに対応付け用のアドレスを返し、後続の接続時にドメイン名を復元するDNSの動作方式です。振り分けに使うドメイン名を保持しやすくなりますが、アプリに返すアドレスが実際のサーバーのものとは限りません。実際の名前解決結果を必要とするLANサービスや特定のアプリでは、fake-ip-filterが必要になる場合があります。設定変更後は、システムやアプリに残った古いDNSキャッシュにも注意してください。

TUNモード

Virtual network interface / tun

仮想ネットワークインターフェースでIPパケットを受信し、コアで処理する接続方式です。システムプロキシに従わない一部のアプリも対象にできます。実際に通信を取り込める範囲は、ルーティング、権限、ネットワークスタック、除外設定によって異なります。スイッチをオンにすれば全通信が必ず対象になるわけではありません。TUNが担うのは通信をクライアントに取り込む部分で、その後の接続先はルールに応じてDIRECT、プロキシ、REJECTから選ばれます。

DNS漏洩

DNS leak

DNS問い合わせが想定外の経路やDNSサーバーを通る状態です。確認する前に、どの問い合わせをどの接続経路に通す想定かを明確にしてください。システムの名前解決、ブラウザーのセキュアDNS、IPv6、クライアントが通信を取り込んでいないアプリなどが原因で、想定と異なる結果になることがあります。検査ページに表示されたDNSサーバーは手がかりの一つです。問い合わせログと実際のルーティングも確認し、地域表示だけで結論を出さないでください。

ドメインスニッフィング

Sniffer / protocol metadata

接続の初期段階で見えるプロトコル情報からドメイン名を識別する機能です。HTTPやTLSのハンドシェイク情報の一部を読み取る場合があります。元の接続に宛先IPしか含まれない場合、ドメインによる振り分けを補助できますが、HTTPSの内容を復号する機能ではありません。プロトコルの違い、暗号化されたハンドシェイク情報、識別できる項目の不足などにより、ドメイン名を取得できない場合があります。DNSやルーティングの設定に代わるものではありません。

Client & core

クライアントとコア

UIが管理を担い、コアが処理を実行します。互換性を確認するときは、設定の取得元と最終的に適用される内容の両方を確認してください。

クライアントとコア

Client / core

クライアントは通常、UI、サブスクリプション管理、システム連携を担い、コアはプロトコル接続、DNS、ルールの処理を担います。それぞれ別に更新される場合があるため、UIのバージョンだけでは対応する設定項目を判断できません。トラブル時は実際に使っているコアの名称とバージョンを記録し、最終的に適用される設定を確認してください。同じ項目でも、クライアントによってUI上の場所やオーバーライド方法が異なる場合があります。

mihomo

mihomo / formerly Clash.Meta

Clashエコシステムで開発が続くプロキシコアで、以前はClash.Metaという名称でした。プロトコル処理、プロキシグループ、振り分け、DNSなどの機能を備えています。接続処理を実行するコンポーネントであり、すべてのクライアントUIに共通する名称ではありません。設定例を使う前に、実際に使用しているコアが該当する項目に対応しているか確認してください。新しい機能が旧バージョンや別のコアで使えるとは限りません。

YAML

YAML / config.yaml

インデントでマッピングやリストなどの構造を表すテキスト形式です。Clashの設定には通常YAMLが使われます。インデントにはスペースを使い、同じ階層のフィールドは揃えてください。見た目が似た文字列、真偽値、リストも、解析後は異なる型として扱われます。構文が正しくても設定が有効とは限りません。プロキシグループ名の参照ミス、フィールド名の誤記、コアの非対応などで読み込みに失敗する場合があります。

オーバーライド

Override / merge

サブスクリプションや元の設定にルール、マージ用ファイル、スクリプトを追加し、最終的に適用される設定を変更する仕組みです。ローカルのカスタム設定を維持するのに適しています。リストを追加するか置き換えるか、フィールドをどの順序でマージするかはクライアントによって異なります。変更後は元のサブスクリプションだけでなく、生成された適用後の設定とログも確認してください。編集前に復元できる設定のコピーを保存しておきましょう。

外部コントローラー

External controller / API

クライアントのUIやコントロールパネルから状態を取得し、ポリシーを変更するための管理インターフェースです。通常はexternal-controllerで待ち受けアドレスを指定します。HTTPやSOCKSのプロキシ接続口とは異なり、一般のアプリの通信を転送する機能はありません。待ち受けアドレスと認証設定によってアクセス範囲が決まります。ローカルで使う場合はループバックアドレスに制限し、信頼できないネットワークに直接公開しないでください。