Clash / CONFIGURATION REFERENCE

Clash用語集

設定項目から用語を、接続状況から通信経路を確認できます。サブスクリプション、ルール分岐、mihomoコアの用語を5つのシーンに分けて解説。各項目はアンカーリンクで共有できます。

CONFIGURATION

基本概念

まず、設定の入手元、接続パラメーター、テスト結果を区別しましょう。設定の取り込みに成功しても、それだけで完了ではありません。設定を有効にし、接続先を確認してください。

サブスクリプションSubscription

サブスクリプションは、リンクからプロキシ設定を取得・更新する仕組みです。ClashのYAML設定一式が返る場合もあれば、変換が必要なノード一覧のみの場合もあります。取り込む前に、配信元の形式がクライアントに対応しているか確認してください。更新後は、対象の設定が引き続き有効になっているかも確認しましょう。

サブスクリプションURLにはアカウント情報が含まれることが多いため、認証情報として管理し、公開するスクリーンショットや投稿に載せないでください。取り込み手順はサブスクリプションの追加ガイドをご覧ください。

ノードProxy

ノードはプロキシサーバーへの接続に使う設定のまとまりで、通常はサーバーアドレス、ポート、プロトコル、認証情報を含みます。設定では一般にproxiesの下に記述します。プロキシグループでノードを選んでも、そのグループに振り分けられた接続だけがノードを使います。

ノード名は設定上のラベルにすぎず、実際の接続先の地域、帯域幅、接続可否を示すものではありません。実際のアクセス結果と接続ログを合わせて確認してください。

遅延テストLatency test

クライアントは通常、指定したプロキシ経由でテスト用URLにアクセスし、そのリクエストにかかった時間を表示します。計測方法は実装によって異なります。テストURL、接続時のハンドシェイク、サーバーの応答、ネットワーク状態に左右されるため、ダウンロード速度と同じではありません。

タイムアウトしてもテスト用URLに接続できないだけの場合があり、テストに成功してもすべてのサイトにアクセスできるとは限りません。ノードを選んだ後は目的のサイトにアクセスし、接続一覧で実際の接続先を確認してください。

YAML設定YAML

YAMLはClashの設定によく使われる構造化テキスト形式です。インデントで階層を表し、ハイフンでリスト項目を記述します。編集時はスペースを使い、同じ階層のインデントをそろえてください。特殊文字を含む値はYAMLの構文に従って引用符で囲む必要があります。

構文を解析できても、設定が正常に動作するとは限りません。使用中のコアが各項目に対応しているか、参照先のプロキシグループが存在するか、起動時にクライアントが設定を上書きしていないかも確認してください。

PROTOCOLS

プロキシプロトコル

ローカルの接続口で使うプロトコルと、リモートノードで使うプロトコルは別のものです。アプリがローカルのHTTPまたはSOCKSポートに接続していても、リモートノードが同じプロトコルを使うとは限りません。

SOCKS5SOCKS version 5

SOCKS5はアプリとプロキシの接続口の間で使うプロトコルで、TCP接続に対応します。UDP転送にはアプリとプロキシの両方が対応している必要があります。アプリでローカルのSOCKS接続口を使う場合、アドレスには通常ループバックアドレスを指定し、ポートはクライアントの実際の待ち受け設定に合わせてください。

ドメイン名をプロキシ経由で名前解決するかどうかは、アプリの接続方法によって異なります。SOCKS5を選んでもリモート名前解決を有効にしていない場合、先にローカルでDNS問い合わせが行われることがあります。

HTTPプロキシHTTP proxy

HTTPプロキシはアプリからのプロキシリクエストを受け付けます。HTTPSサイトへ接続する場合は通常、CONNECTメソッドでトンネルを確立します。ブラウザー、コマンドラインツール、開発環境でよく使われますが、システムプロキシ設定が自動で読み込まれるとは限りません。

設定画面の「HTTPSプロキシ」は、HTTPSサイトへのアクセスに使うプロキシを指す場合があり、プロキシの接続口までTLSを使う意味とは限りません。アプリの説明に従ってプロトコルとポートを設定してください。

Shadowsocksss

Shadowsocksは、決められた暗号方式と鍵を使ってプロキシ通信を行います。Clashの設定では通常、type: ssと記述します。サーバーアドレス、ポート、暗号方式、パスワードはサーバー側の設定に合わせてください。プロトコル名だけから必要な値を推測することはできません。

利用できる暗号方式はコアによって異なる場合があります。設定を読み込めないときは、まず対応状況を確認してください。プロトコルの種類だけでは、ノードの速度や現在のネットワークでの接続可否は分かりません。

TrojanTLS-based proxy protocol

Trojanは通常、TLS接続上で認証を行い、プロキシリクエストを転送します。アドレス、ポート、パスワードに加えて、サーバー名やトランスポート設定が必要な場合があります。サーバー名はTLS接続で使われるため、サーバー証明書や構成に合わせてください。

接続できない場合は、システム時刻、証明書、サーバー名、ポートが正しいか確認してください。証明書の検証を無効にするとサーバーの身元確認を省略することになるため、通常の対処方法として使わないでください。

ROUTING

ルールとルーティング

ルールは接続を照合し、プロキシグループは接続先を提供します。特定のサイトがDIRECTになるのかプロキシ経由になるのか調べるときは、該当したルールとプロキシグループの現在の選択先を両方確認してください。

ルール分岐Rule-based routing

ルール分岐では、ドメインや宛先アドレスなどの条件に応じて、接続をDIRECT、拒否、または指定したプロキシグループへ振り分けます。Ruleモードでは通常、ルールを上から順に照合し、最初に一致したルールで接続先が決まります。そのため、具体的な条件はMATCHなどの最終ルールより前に配置してください。

たとえばDOMAIN-SUFFIX,github.com,PROXYは、一致するドメインをPROXYという接続先に振り分けます。PROXYという名前が設定に存在する必要があります。設定手順はルール分岐のガイドをご覧ください。

プロキシグループproxy-groups

プロキシグループは、ルールが接続先として選べる出口の集合です。ノード、別のプロキシグループ、または設定で許可されている組み込みの出口を含められます。よく使われるタイプには、手動選択のselect、テスト結果に基づいて選ぶurl-test、設定順に利用可能な出口を探すfallbackがあります。

グループを変更しても、すべての接続が切り替わるわけではありません。対象の接続に適用されたルールと振り分け先のグループを確認し、そのグループが最終的にどのノードを選んでいるか調べてください。

GeoIPIP geolocation database

GeoIPはIPアドレスのデータベースを使って宛先IPの地域を判定します。よくある使い方はGEOIP,CN,DIRECTです。照合対象はIPアドレスの情報であり、ウェブページの内容やドメインの登録地ではありません。CDNの振り分けやデータベースの更新遅れが結果に影響する場合もあります。

GeoIPを更新してもサブスクリプションやドメインルールセットは更新されません。想定外のルールに一致する場合は、実際の宛先アドレスを確認してからGeoIPの更新設定を確認してください。

ルールプロバイダーrule-providers

ルールプロバイダーはルールの集合を独立したリソースとして管理し、メイン設定からRULE-SETで参照します。広告ドメイン、アプリのドメイン、IPアドレス範囲などを個別に管理する場合に便利です。リソースの形式、behavior、更新間隔を確認し、ドメイン一覧を別の形式として読み込まないようにしてください。

ルールリソース自体は通常、接続先を決めません。接続先はそれを参照するルールで指定します。ダウンロードに成功しても、ルールの順序によっては前にある大まかなルールが先に一致するため、照合順も確認してください。

DNS & NETWORK

DNSとネットワーク

ドメイン名の名前解決と通信の取り込みを分けて考えましょう。設定を有効にした後、アプリのDNS問い合わせと接続が想定した経路を通っているか確認してください。

DNSDomain Name System

DNSはドメイン名をIPアドレスなどのレコードに変換します。システム、ブラウザー、アプリ、プロキシコアが名前解決に関わる場合があります。コアのdnsセクションで指定するのは、コアが受け取った問い合わせの処理方法です。デバイス上のすべての問い合わせが自動的にコアへ送られるわけではありません。

名前解決の異常を調べるときは、システムのリゾルバー、アプリ内蔵の暗号化DNS、TUNによるDNSの取り込み、キャッシュを確認してください。また、ドメイン名を解決できない状態と、解決後に接続できない状態を区別しましょう。

Fake-IPSynthetic address mapping

Fake-IPは問い合わせのあったドメイン名に内部用のマッピングアドレスを割り当てます。アプリがそのアドレスへ接続すると、コアが元のドメイン名を復元して接続先を選びます。このアドレスは実際のサーバーのIPアドレスではありません。名前解決結果だけで接続先の地域を判断せず、コアを経由しない機器から直接アクセスしないでください。

LAN内のサービスや実際のIPアドレスを必要とするアプリで互換性の問題が起きた場合は、fake-ip-filterを必要な範囲に絞って確認してください。設定変更後は、古いDNSキャッシュも削除しましょう。

DNSリークDNS leak

DNSリークとは、名前解決の問い合わせが想定した経路から外れ、別のDNSサービスに接続先のドメイン名が知られる状態です。リゾルバーがどの地域にあるかではなく、問い合わせ経路が想定と異なるかを指します。特定のドメインを意図的にローカルで名前解決するルールと、意図せずプロキシを迂回するケースは分けて判断してください。

確認時は検査結果、コアのログ、アプリのDNS設定を合わせて見てください。暗号化DNSは問い合わせの通信方法を変えるものです。問い合わせが想定したプロキシ経由になっていることを自動的に保証するわけではありません。

TUNモードVirtual network interface

TUNモードは仮想ネットワークインターフェースで通信を受け取り、システムプロキシを使わない一部のアプリも対象にできます。実際の範囲はルーティング、権限、除外設定によって異なります。デスクトップではサービスや管理者権限が必要な場合があり、モバイルでは通常、システムのVPNインターフェースを使って通信を取り込みます。

有効にした後も、DNSの経路や他のVPN、仮想ネットワークアダプター、LANルーティングとの競合を確認してください。TUNで通信を取り込めても、すべての接続がルールによってプロキシへ振り分けられるとは限りません。

CLIENT & CORE

クライアントとコア

画面上の設定、実行中の設定、システムの接続口はそれぞれ別の層にあります。クライアントを何度も再インストールするより、層ごとに問題の箇所を確認するほうが原因を見つけやすくなります。

mihomoコアmihomo

mihomoはClash Metaから派生したプロキシコアで、プロトコル接続、ルール照合、DNS、通信の転送を担います。GUIクライアントに組み込まれ、管理画面から操作できる場合もあれば、クライアントが対応する方法でコアの設定を変更する場合もあります。

GUIアプリとコアの更新時期は必ずしも同じではありません。設定を使う前に、クライアント名や設定ファイルの拡張子だけで判断せず、実際に動作しているコアとその対応範囲を確認してください。

GUIクライアントGUI client

GUIクライアントは、サブスクリプション管理、プロキシグループの選択、ログ確認、システム連携などの画面を提供します。プラットフォームによって、Clash Plus、Clash Verge Rev、FlClashなどがあります。起動時にサブスクリプション、オーバーライド、ローカル設定を統合する場合があるため、実行中の設定が元のサブスクリプションファイルと一致するとは限りません。

変更を長く維持したい場合は、サブスクリプションの更新で手動編集が上書きされないよう、クライアントのオーバーライドや設定統合の仕組みを確認してください。クライアントはダウンロードページでプラットフォームを選べます。

システムプロキシSystem proxy

システムプロキシは、システムのプロキシ設定に従うアプリにローカルの接続口を提供します。一般には、ループバックアドレスとクライアントの待ち受けポートを指定します。すべての通信を一括して制御するものではなく、ゲーム、ターミナルツール、独自のネットワーク設定を持つアプリなどは、この設定を無視することがあります。

クライアント終了後にブラウザーも接続できない場合は、システムに無効なプロキシアドレスが残っていないか確認してください。接続口の設定を解除すると直接接続を再開できますが、ノードやサブスクリプションの問題が解決するわけではありません。

混合ポートとコントローラーポートmixed-port / external-controller

mixed-portはHTTPとSOCKSのリクエストを同じポートで受け付け、external-controllerはコアの操作や状態確認に使う管理APIを提供します。一般的なポート番号はそれぞれ7890と9090ですが、クライアント側で変更されている場合があります。指定前に実際の設定を確認してください。

アプリのプロキシ設定にコントローラーポートを指定しないでください。ローカルで使う場合はループバックアドレスへのバインドを優先します。他の機器から接続できるようにする場合は、認証とファイアウォールも確認してください。詳しくはポート設定の説明をご覧ください。