設定の基礎 · 項目ガイド

Clash用語ガイド

用語から設定の問題を特定するため、まずクライアントとコアを区別し、次にプロキシプロトコル、ルール、DNS、更新に関する項目を確認しましょう。

よく使われる用語を25項目掲載しています。解説はClashエコシステムとmihomoで一般的な設定を対象としています。実際の対応状況は、利用中のコアとクライアントの説明を確認してください。各項目には個別のアンカーがあり、該当箇所を直接共有できます。

コアとクライアント

画面は操作の入り口、コアは通信処理、サブスクリプションは設定の配布を担います。互換性の問題を調べる際は、この3つを分けて確認してください。

クライアントClient / GUI
設定のインポート、プロキシの切り替え、ログ確認、更新などの操作機能を提供するアプリです。実際の通信処理は通常コアが担います。同じクライアントでもコアを切り替えられる場合があるため、画面の名称だけで対応プロトコルが同じとは判断できません。問題を報告する際は、アプリのスクリーンショットだけでなく、クライアント名、コア名、それぞれのバージョンも記録してください。
コアCore
設定の読み込み、プロキシプロトコルの処理、ルール判定、通信の転送を担うプログラムです。項目が有効になるかどうかは、設定画面に対応するスイッチがあるかだけでなく、コアとそのバージョンによって決まります。クライアントの更新、コアの更新、サブスクリプションの更新はそれぞれ別の操作です。新しいプロトコルへの対応は、サブスクリプションを更新するだけでは実現できません。
mihomoClash Metaの後継プロジェクト名
Clash Metaプロジェクトから発展したプロキシコアで、ルール分岐、プロバイダー、TUN、DNSなどの機能を備えています。特定のデスクトップ画面だけを指す名称ではなく、GUIクライアントから管理することも、単独で実行することもできます。設定をコピーする前に、必要な機能が現在のバージョンに対応しているか確認してください。バージョンの変遷はコアの違いを解説をご覧ください。
Clash Meta旧称・エコシステム上の名称
Clashエコシステムにおけるコアの派生版の名称で、後継プロジェクトはmihomoとして開発されています。古いガイドや設定コメント、一部のクライアント名にはMeta表記が残っていますが、名称だけで設定の新旧を判断することはできません。項目の解析エラーが起きたら、実行中のコアのバージョンとエラー箇所を確認し、コアを更新するか設定を修正するか判断してください。
サブスクリプションSubscription
リモートURLから設定やプロキシリソースを取得・更新する配布方式です。リンクの応答はYAML設定一式の場合も、プロキシ一覧だけの場合もあり、同じ形式として扱うことはできません。設定一式を更新すると、ルールやプロキシグループが置き換わる場合があります。変更を維持するには、クライアントが対応するオーバーライド機能を使ってください。サブスクリプションURLにはアクセス情報が含まれることがあるため、公開スクリーンショットやログ、オンライン変換サービスに載せないでください。

プロキシプロトコル

プロトコルはクライアントとサーバーの通信方法を定めます。サーバーアドレス、認証情報、トランスポート方式、TLS設定をあわせて指定して、接続に必要な設定が揃います。

プロキシノードProxy entry
プロキシ接続の設定を指す一般的な呼び方で、通常はサーバーアドレス、ポート、プロトコル、認証情報、トランスポート設定を含みます。ノード名は表示用のラベルにすぎず、所在地や帯域幅、利用可能性を保証するものではありません。インポート後に接続できない場合は、設定が揃っているか、コアがプロトコルに対応しているか、端末からサーバーに接続できるかを確認してください。リストに名前が表示されるかどうかだけでは判断できません。
Shadowsockstype: ss
一般的なプロキシプロトコルで、設定では通常ssタイプを指定します。サーバーアドレス、ポート、暗号化方式、パスワードなどが必要です。クライアントとサーバーは同じ暗号化方式に対応し、同じ方式を使う必要があります。プラグインや追加オプションが必要な設定もあります。同じプロトコル名でも、すべての実装が同じ拡張機能に対応するとは限りません。設定を移行する際は、項目ごとに確認してください。
VMesstype: vmess
ユーザー識別子などを使って認証するプロキシプロトコルで、さまざまなトランスポート方式やTLS設定と組み合わせられます。インポートできても、識別子、パス、サーバー名が正しいとは限りません。認証やハンドシェイクに失敗する場合は、サーバー側の設定とシステム時刻も確認してください。認証情報が一致していない問題は、DNSだけを変更しても通常解決しません。
VLESStype: vless
軽量な認証方式を特徴とするプロキシプロトコルです。プロトコル自体に通信の暗号化機能はなく、TLSやREALITYなどと組み合わせて使います。接続できるかどうかはユーザー識別子だけでなく、トランスポート方式、サーバー名、ハンドシェイク関連の設定にも左右されます。対応する組み合わせはコアのバージョンによって異なる場合があるため、別のクライアントの項目を確認せずにYAMLへ貼り付けないでください。
Trojantype: trojan
通常TLSで接続するプロキシプロトコルです。一般的な設定項目はサーバー、ポート、パスワード、サーバー名です。証明書の検証エラーは、サーバー名の不一致、証明書チェーンの異常、端末の時刻ずれなどが原因で起こります。まず原因を特定してください。証明書検証を無効にすると接続の安全性が変わるため、あらゆるハンドシェイクエラーへの対処として使うのは避けてください。

ルールと分岐

ルールが接続先を判定し、プロキシグループが実際の出口を決めます。分岐の問題は、設定を何度も入れ替えるより、ルールのマッチ記録を確認するほうが原因を特定しやすくなります。

ルール分岐rules / DOMAIN-SUFFIX / MATCH
ドメイン名や宛先IPなどの条件に基づいて、直結、プロキシ、拒否といった処理を選ぶ仕組みです。ルールは通常上から順に照合され、一致したルールのポリシーが適用されます。そのため、条件の広いルールを上に置くと、後続の細かいルールが適用されない場合があります。まずルールモードになっていることを確認し、接続がどのルールに一致したかを調べてください。フォールバック用のMATCHは通常、リストの末尾に置きます。
プロキシグループproxy-groups
複数のプロキシやポリシーをまとめ、ルールから安定したグループ名で参照できるようにします。selectは通常、ユーザーが手動で選択します。url-testはテスト結果に基づいて出口を選び、fallbackは順番に利用可能な出口を選ぶ方式です。自動選択はテスト先や検査間隔に左右され、実際のダウンロード速度が最速の回線を自動で見つける機能ではありません。
ルールセットrule-providers / RULE-SET
複数の条件を独立したファイルにまとめると、更新や再利用がしやすくなります。通常はrule-providersで定義し、RULE-SETで参照します。ルールセットのbehaviorとformatは、ファイルの内容に合わせてください。リソースを取得できても分岐に使われているとは限らないため、参照名、ルールの順序、適用先のポリシーも確認してください。
GeoIPGEOIP
IPの地理情報データベースを使って宛先を分類・照合する方式で、ドメインルールでカバーできない接続を補うのに適しています。データベースの地域情報はサーバーの正確な所在地ではありません。CDN、IPアドレスの割り当て変更、データベースの更新時期によって判定結果が変わることがあります。ドメイン接続でこのルールを適用する際は、名前解決が発生する場合があります。no-resolveを指定すると、ルール照合のための名前解決を抑制できますが、特性を理解したうえで使ってください。
遅延Latency / URL test
クライアントが指定したテスト先に対して計測する応答時間です。値の意味はテストURL、プロトコル、接続の再利用、ネットワーク環境によって変わります。テスト値が低くてもダウンロードが速いとは限らず、特定のサイトにアクセスできる保証にもなりません。比較する際は条件を揃え、実際のアプリでも確認してください。結果に問題がある場合は遅延のトラブル対処を順に確認してください。

DNSとネットワーク

通信がコアに入るか、どのDNSがドメインを解決するか、解決結果がルールにどう使われるかは、それぞれ別の問題です。スイッチを一つ有効にしただけで経路全体を確認したことにはなりません。

TUNモードtun
仮想ネットワークインターフェースとルーティング設定を使って通信を取り込み、システムプロキシに従わない一部のアプリにも適用する方式です。通常は追加の権限が必要で、実際に適用される範囲は自動ルーティング、除外ルート、システムのネットワーク環境にも左右されます。TUNを有効にしても、すべてのDNSやアプリの通信が取り込まれるとは限りません。他のVPNと併用する場合は、ルートの競合やインターフェースの衝突を特に確認してください。
DNSDomain Name System
ドメイン名をIPアドレスなどに変換する仕組みで、解決結果が後続のルール判定に使われる場合もあります。OSの名前解決、クライアント内蔵のDNS、ブラウザーの暗号化DNSでは異なる経路を使うことがあり、一つを変更しても他の経路には影響しない場合があります。設定を調べる際は、リゾルバーのアドレス、DNSクエリの送信経路、キャッシュを区別してください。設定の詳しい順序は完全ガイドのDNSセクションをご覧ください。
Fake-IPenhanced-mode: fake-ip
アプリには仮想アドレスを返し、コアが仮想アドレスとドメイン名の対応を管理するDNS方式です。これにより、後続のルールでドメイン名に基づく分岐ができます。アプリに表示される仮想アドレスは接続先サーバーの実アドレスではないため、サーバーの所在地を判断する材料にはなりません。実際の名前解決結果を必要とする特殊なアプリは、fake-ip-filterに追加が必要な場合があります。変更後は古いキャッシュを削除し、接続を張り直してください。
DNS漏れDNS leak
DNSクエリが想定した経路を外れ、意図しないリゾルバーに届く状態です。異常かどうかを判断するには、まず各クエリに期待する経路を明確にしてください。TUN、Fake-IP、暗号化DNSを有効にしただけでは、名前解決が想定どおりだとは確認できません。システム設定、ブラウザー独自のDNS、クライアントのログ、テスト結果をあわせて確認してください。テストページに表示されるリゾルバーの地域だけで、DNS漏れの有無を判断することもできません。
Redir-Hostenhanced-mode: redir-host
通常、アプリに実際の名前解決結果を返すDNS拡張モードで、仮想アドレスを返すFake-IP方式とは異なります。実アドレスに依存する一部のアプリには適していますが、ドメイン名と接続の紐付け条件も変わります。モードを切り替えてもOSやアプリに古いDNSキャッシュが残る場合があります。キャッシュを消すか、関連アプリを再起動してから効果を比較してください。

設定ファイルの項目

項目を読むときは、名前だけでなく階層と単位も確認してください。同じ「更新間隔」に見えても、設定一式、プロキシリソース、ヘルスチェックのいずれを制御するかは異なります。

YAMLconfig.yaml
Clashの設定で広く使われるデータシリアライズ形式です。インデントで階層を表し、キーと値、リストで項目を構成します。インデントにはタブではなくスペースを使い、特殊文字を含む文字列は構文に応じて引用符で囲んでください。YAMLの構文が正しくても、すべての項目がコアに認識されるとは限りません。変更後は設定の検証結果を確認してから読み込み、元に戻せるよう元の設定も保存してください。
moderule / global / direct
コアの動作モードを指定するトップレベルの項目です。よく使われる値はrule、global、directで、それぞれルール、グローバル、直結モードを表します。コアに入った通信の経路を決める項目であり、アプリの通信を自動的にコアへ取り込むものではありません。グローバルモードでも、システムプロキシやTUNが対象アプリをカバーしていなければ、すべてのアプリがプロキシを使うわけではありません。
proxy-providersプロキシプロバイダー
プロキシリソースの取得元を定義し、リモートURLやローカルファイルからプロキシ一覧を読み込み、設定に応じて更新します。設定一式のサブスクリプションとは異なり、通常はルール全体やDNS設定を定義しません。読み込み後はプロキシグループから参照する必要があります。リソースの更新に失敗した場合は、URLへの接続、応答形式、ローカルのキャッシュ先、参照関係をそれぞれ確認してください。
interval設定階層と時間単位
間隔を表す項目ですが、意味は設定階層によって異なります。プロバイダーのintervalは通常リソースの更新間隔、health-check.intervalは接続性の検査間隔を指定し、一般的な単位はいずれも秒です。クライアントの設定一式の更新画面では分単位の場合があるため、数値をそのまま流用しないでください。間隔を短くしても、形式や認証のエラーは解決しません。更新に失敗する場合はサブスクリプション更新のトラブル対処を確認してください。
mixed-portHTTP / SOCKS共通待ち受けポート
同じポートでHTTPとSOCKSのプロキシを提供し、アプリが共通のローカル待ち受けポートを利用できるようにします。他のプログラムがポートを使っていると、コアが待ち受けを開始できない場合があります。システムプロキシのアドレスだけを変更するのではなく、ログも確認してください。LANからの利用には、待ち受けアドレス、ファイアウォール、アクセス制御の設定も関係します。別の端末にポート番号を入力するだけでは設定完了になりません。