CLASH / 設定リファレンス

Clash 用語集

6つのカテゴリに分けて、コア、プロトコル、通信の振り分け、設定項目を解説します。各カードでは用語の意味に加え、混同しやすい点も説明。用語へのリンクから該当項目を直接共有できます。

コアとクライアント

接続を処理するプログラムと、操作画面を提供するアプリを区別しましょう。

mihomo

Formerly Clash Meta

mihomoはClash Metaプロジェクトを引き継ぐプロキシコアで、接続処理やルール判定、DNSなどの中核機能を担います。GUIクライアントから利用できますが、クライアント名とコア名は異なる場合があります。設定が使えるかどうかは、実行中のコアとその対応範囲で判断してください。アプリ名だけでは判断できません。

プロキシコア

Proxy core

プロキシコアは、接続を受け付けて振り分けルールを適用し、外部への接続を確立するプログラムです。GUIクライアントにはコアが同梱される場合と、設定画面から更新を管理できる場合があります。設定エラーの調査では、画面上の接続スイッチよりコアのログが参考になることがあります。スイッチがオンでも、すべての接続が確立しているとは限りません。

GUIクライアント

GUI client

GUIクライアントでは、サブスクリプションの追加、グループ選択、接続ログの確認、システムプロキシの設定などを行い、有効な設定をコアに渡して実行します。同じコアを使うクライアントでも、メニュー名や設定の保存方法は異なることがあります。チュートリアルのボタン位置は目安として、画面上の表記が完全に一致するかではなく、該当する機能を探してください。

設定の互換性

Configuration compatibility

設定の互換性とは、使用中のクライアントとコアが設定内の項目、プロトコル、動作オプションを認識できるかどうかです。YAMLを解析できても、すべての機能がサポートされているとは限りません。読み込み時に未知の項目、ポリシーが見つからない、プロトコル非対応などのエラーが出た場合は、まず対象のコアを確認し、項目名、参照名、機能の対応状況を調べてください。

プロキシプロトコル

プロトコルはクライアントとサーバー間の通信方法を定めるもので、ノード名や通信方式とは異なります。

Shadowsocks

SS / type: ss

Shadowsocksは暗号化に対応したプロキシプロトコルです。設定には通常、サーバーアドレス、ポート、暗号化方式、パスワードが含まれます。クライアントとサーバーで互換性のある暗号化方式を使う必要があります。パスワードが同じでも、設定が正しいとは限りません。ノードによっては追加のプラグインパラメーターも必要です。手動で設定する場合は、サービス提供元の案内にある項目をすべて入力してください。

VMess

type: vmess

VMessはプロキシプロトコルの一つで、通常はUUIDでユーザーを識別し、さまざまな通信方式と組み合わせて使います。サーバーアドレス、ポート、トランスポート層のパラメーター、TLS設定をサーバー側に合わせる必要があります。WebSocketのパスやリクエストヘッダーは通信設定であり、ノードの備考欄ではありません。これらが未入力だと、サーバーに到達できてもプロキシ接続を確立できないことがあります。

VLESS

type: vless

VLESSは軽量なプロキシプロトコルで、プロトコル自体は通信を暗号化しません。通常はTLSやREALITYなどと組み合わせて利用します。VMessとは別のプロトコルのため、種類名を変えるだけで相互に変換することはできません。読み込み後にパラメーター非対応と表示された場合は、コアの対応状況とサーバー側の要件を確認してください。特に通信方式、フロー制御、関連するハンドシェイクパラメーターに注意が必要です。

Trojan

type: trojan

Trojanは通常、TLSで暗号化した接続を確立するプロキシプロトコルで、パスワードを使って認証します。接続には、サーバー名、証明書、通信パラメーターが一致していることも必要です。証明書エラーが出た場合は、デバイスの時刻、入力したドメイン名、証明書の有効性を確認してください。証明書の検証を無効にする方法を、日常的な解決策として使うのは避けましょう。

動作モード

rule、global、directは出力先の選択を決め、TUNは通信をコアに取り込む方法を決めます。

ルールモード

Rule mode / mode: rule

ルールモードはmode: ruleに対応し、コアが設定内のルールを上から順に照合して、受信した接続の出力先を選びます。最初に一致したルールのポリシーが適用されるため、直接接続とプロキシ接続を同時に使うこともできます。ルールモードに切り替えた後は、プロキシグループで選択されている出力先も確認してください。モードを切り替えても、ノード選択は行われません。

グローバルモード

Global mode / mode: global

グローバルモードはmode: globalに対応し、コアに入った接続をすべてGLOBALポリシーで処理します。変更されるのはコア内の出力先の選択であり、すべてのアプリの通信が自動的にコアへ送られるわけではありません。システムプロキシを使わないアプリでは、グローバルモードに切り替えるだけでは効果がない場合があります。通信を取り込む方法も確認してください。

ダイレクトモード

Direct mode / mode: direct

ダイレクトモードはmode: directに対応し、コアに入った接続をリモートプロキシ経由にせず、接続先へ直接送ります。クライアントを完全に終了する操作とは異なり、コアがDNSや接続を処理する場合があります。元のネットワーク状態と比較する際は、ダイレクトモードへの切り替え、システムプロキシの無効化、TUNの停止を区別してください。それぞれ影響する箇所が異なります。

TUNモード

Virtual network interface

TUNモードは仮想ネットワークインターフェースを通じて通信を取り込み、システムプロキシに従わない一部のアプリにも適用できます。通信を取り込む方式の一つで、ルールモードやグローバルモードと併用できます。有効にすると、通常はシステム権限、ルーティング、DNSの制御が関係します。ほかのVPNを同時に使う場合は、ノードを何度も切り替えるのではなく、デフォルトルートの競合に注意してください。

ルールと通信の振り分け

ルールは条件を照合し、ポリシーは処理を実行し、データセットは再利用可能な照合条件を提供します。

ルールによる振り分け

Rule-based routing

ルールによる振り分けでは、ドメイン、接続先IP、プロセスなどの条件に基づいて、接続を直接接続、拒否、指定したプロキシポリシーへ振り分けます。通常は上から順に照合するため、順序が結果に影響します。条件の広いルールを先に置くと、後続の細かいルールに到達しない場合があります。Webサイトの出力先が想定と異なるときは、接続ログで一致したルールを確認し、順序や条件を見直してください。

プロキシグループ

proxy-groups

プロキシグループは、ノードやほかのポリシーをまとめ、ルールから参照できる出力先を作ります。selectは手動選択に使い、url-testとfallbackはそれぞれの検査方法に基づいて利用可能な出力先を選びます。ルールはプロキシグループ名を参照します。名前を変更した場合は、すべての参照先も更新してください。更新しないと、ポリシーが見つからない設定エラーが発生することがあります。

GeoIP

IP geolocation matching

GeoIPはIPデータベースの割り当て情報を使って接続先IPを判定し、国や地域に応じたポリシー選択などに利用されます。データベースの結果はWebサイト運営者の所在地を示すものではなく、IPアドレスの割り当て変更に追いつかない場合もあります。ドメインルールとGeoIPルールは異なる条件で照合されます。特定のWebサイトに決まった出力先を使う場合は、まず明示的なドメインルールを検討してください。

ルールプロバイダー

rule-providers / RULE-SET

ルールプロバイダーはrule-providersでルールセットを定義し、ルール一覧からRULE-SETで参照します。ルールを個別に管理・更新しやすくなりますが、参照位置やルールの順序の影響は受けます。ルールセットの形式は、宣言した動作タイプに合わせる必要があります。ダウンロードに成功しても、想定どおりに解析・適用されるとは限りません。

DNSとネットワーク

名前解決、通信の取り込み、接続のテストはそれぞれ異なる段階です。個別に確認しましょう。

DNS

Domain Name System

DNSはドメイン名をIPアドレスなどのレコードに変換し、ネットワーク接続の前段階を担います。コアのDNSを有効にしても、システムやアプリの問い合わせが実際にその経路を通っているか確認が必要です。ブラウザー内蔵の暗号化DNSは別の経路を使う場合があります。名前解決の問題を調べるときは、クライアント、システム、アプリのそれぞれを確認してください。

Fake-IP

dns.enhanced-mode: fake-ip

Fake-IPでは、コアが対応関係を保持しながら、アプリにマッピング用の仮想IPを返します。そのアドレスへの接続を受けると、コアはドメイン名を復元し、適切な振り分けと接続処理を行います。このアドレスはWebサイトの実サーバーIPではありません。名前解決モードを切り替えた後もアプリに古いキャッシュが残っている場合は、接続をやり直すか、DNSキャッシュを更新してください。

DNSリーク

DNS leak

DNSリークとは通常、ドメイン名の問い合わせが想定した名前解決経路を迂回し、別のDNSサービスに送られる状態を指します。Webページをプロキシ経由で開けても、DNSも想定どおりの経路を使っているとは限りません。テスト結果は、ブラウザーの暗号化DNS、システムのリゾルバー、クライアントのDNSポリシーを踏まえて判断してください。複数のDNSサービスが検出されても、必ずしも設定ミスとは限りません。

レイテンシ

Latency / URL test

クライアントに表示されるレイテンシは、通常、指定されたテスト先へ接続を試みたときの所要時間です。測定方法は実装によって異なり、ダウンロード速度やすべてのWebサイトでの使い勝手を示すものではありません。ノードを比較する際は、同じテスト先と条件を使ってください。テストのタイムアウトは接続先サービスの制限が原因の場合もあるため、一度の結果だけでノードが完全に使えないと判断しないでください。

設定の構造

ファイル形式、リモートの設定元、ローカルでの変更の関係を把握してから編集しましょう。

YAML

Configuration data format

YAMLはClashの設定によく使われるデータ形式で、キーと値、リスト、インデントを使って設定を記述します。インデントにはスペースを使い、同じ階層の位置をそろえます。リスト項目は通常、ハイフンで始まります。編集時はキーの重複を避け、特殊文字が解析に影響しそうな場合は引用符で囲んでください。構文が正しくても、項目の意味やポリシーの参照先は別途確認が必要です。

サブスクリプション

Subscription

サブスクリプションは、クライアントがリモート設定やノード一覧を定期または手動で取得する仕組みです。リンクから完全な設定が返る場合も、ノード情報のみが返る場合もあり、読み込めるかどうかは形式とクライアントの対応状況によります。リンクに個人用のアクセス情報が含まれることがあるため、機密情報として管理してください。サブスクリプションの更新は契約の更新とは別で、有効期限とデータの更新は別のものです。

ノード

Proxy node / proxies

ノードは、リモートのプロキシサービスに接続するためのパラメーター一式です。通常、名前、プロトコル、アドレス、ポート、認証情報が含まれます。ノード名は表示用のラベルにすぎず、実際の所在地や品質、利用可否を保証するものではありません。ノードを読み込んだ後は、プロキシグループからそのノードを選び、対象の接続がそのポリシーを使うように設定してください。一覧に表示されているだけでは、利用中とは限りません。

オーバーライドとマージ

Override / merge

オーバーライドとマージは、サブスクリプション設定とは別にローカルの変更を保存し、実行用設定の生成時に反映する仕組みです。項目の置き換え、リストへの追加、適用順序の扱いはクライアントによって異なる場合があります。サブスクリプションのキャッシュを直接編集すると、次回の更新時に変更が上書きされることがあります。設定を長期的に維持する場合は、クライアントのオーバーライド機能を使い、最終的に適用された設定を確認してください。