CONFIGURATION DICTIONARY

Clash用語集

まず用語がどの層に属するかを確認してから設定を変更しましょう。ここでは、カーネル、プロトコル、ルール、DNS、設定項目に分けて一般的な概念を整理し、それぞれの用語が制御する範囲と、担当しない範囲を説明します。

クライアント カーネル ルール プロキシグループ ノード

QUICK INDEX

問題のある層から探す

接続失敗が必ずしもノードの問題とは限らず、ウェブページが開けない原因も必ずしもDNSではありません。まずログや現在の操作から該当する層を確認し、その分類で用語を調べてください。

01

RUNTIME LAYER

カーネルとクライアント

この層では、設定を読み込む主体、ネットワーク機能を実行する主体、OSが通信をクライアントへ渡すかどうかが決まります。画面を開けてもGUIが正常なだけで、カーネル、ポート、システムプロキシがすべて有効とは限りません。

Clash
Clashは、ルールに基づいてネットワークトラフィックを処理するプロキシツールのエコシステムです。一般にClashという場合、カーネルを指すことも、グラフィカルクライアントを指すこともあります。トラブル対処の前に、クライアント名、カーネルの種類、現在の動作モードを確認し、画面の問題と接続の問題を混同しないようにしましょう。
mihomo
mihomoはClash Metaの機能を引き継ぐプロキシカーネルで、設定の解析、プロキシ接続の確立、ルール分岐、DNS処理を担当します。グラフィカルクライアントは通常、カーネルを呼び出して実際のネットワーク機能を提供します。カーネルの起動に失敗しても画面上のシステムプロキシスイッチは操作できる場合がありますが、通信は正しく処理されません。
GUIクライアント
GUIクライアントはカーネルを管理するグラフィカルインターフェースで、サブスクリプションのインポート、設定の切り替え、プロキシグループの選択、システムプロキシの制御を担います。画面のバージョンとカーネルのバージョンは独立しています。未対応の項目がある場合は、クライアントが実際に呼び出しているカーネルと、そのバージョンの対応状況を確認してください。
システムプロキシ
システムプロキシは、OSがアプリに提供するHTTPまたはSOCKSプロキシ設定です。有効にしても、その設定に従うアプリにしか影響しません。一部のゲーム、コマンドラインツール、独自にネットワークスタックを管理するアプリはシステムプロキシを迂回するため、アプリ側の設定を確認するか、TUNモードを検討してください。
実行ログ
実行ログには、リクエスト先、適用されたルール、選択されたプロキシグループ、接続先アドレス、エラー原因が記録されます。トラブル対処では操作時刻と一致するログ行を見つけ、エラーが名前解決、ルール照合、接続のどの段階で発生したか確認します。エラー文を一行だけ切り出すと前後関係が失われるため、前後の記録も含めて判断してください。
02

CONNECTION LAYER

プロキシプロトコル

ノード層は、ローカルのカーネルからリモートサーバーへ接続する役割を担います。サブスクリプションが更新でき、ノードが表示されても、接続パラメータが有効とは限りません。遅延を測定できても、実際の帯域幅や対象サイトへのアクセス品質が同じとは限りません。

ノード
ノードは、リモートプロキシサーバーへの接続パラメータ一式です。通常はサーバーアドレス、ポート、プロトコル、認証情報が含まれます。ノード名は識別用のラベルにすぎず、実際の所在地、速度、安定性を証明するものではありません。特定のノードだけタイムアウトする場合は、同じサブスクリプションの他のノードと比較し、単一ノードの障害かローカルネットワークの問題かを切り分けます。
サブスクリプション
サブスクリプションは、サービス提供者が管理するリモート設定の入口で、ノード一覧、プロキシグループ、完全な設定などを返します。更新は新しい内容を取得するだけで、ローカルのシステムプロキシやDNS設定を自動修復するものではありません。更新に失敗したら、有効期限、URLへの接続可否、システム時刻、クライアントのネットワーク権限を確認してください。
遅延
遅延は、テストリクエストの往復にかかる時間で、通常はミリ秒単位で表します。特定の時点におけるテスト先への応答速度を示すだけで、継続的なダウンロードや実際のウェブサイト閲覧テストの代わりにはなりません。低遅延のノードでも、帯域幅、混雑、パケットロス、接続先の制限を受けることがあります。
通信量倍率
通信量倍率は、サービス提供者がプラン使用量を計算する際の課金係数です。たとえば2倍のノードで実際に100MB通信すると、プラン側では200MB分が差し引かれる場合があります。倍率はノードの速度を直接示すものではないため、ノード選びでは残り容量、遅延、用途を分けて判断してください。
プロキシプロトコル
プロキシプロトコルは、クライアントとリモートサーバーが接続、認証、データ転送を行う方法を定めます。プロトコルごとに必要な項目が異なるため、サーバー側とクライアント側の種類、ポート、認証パラメータを一致させる必要があります。別のプロトコル用のパラメータを流用すると、通常はハンドシェイクで失敗します。
03

DECISION LAYER

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

ルールはリクエストをどこへ渡すかを決め、プロキシグループは実際にどの出口を使うかを決めます。これは連続する二段階の判断です。ノードを変更しても変化がない場合は、まずリクエストが想定したプロキシグループに一致しているか確認してください。

ルール分岐
ルール分岐は、ドメイン、IP、ポート、ネットワーク種別、プロセスなどの条件に基づいて、リクエストをどのプロキシグループへ渡すか決定します。通常は上から順に照合され、最初に一致した時点で終了します。追加したルールが効かない場合は、前方の広すぎるルールに先に捕捉されていないか確認してください。
プロキシグループ
プロキシグループは、複数のノード、ダイレクト接続、別のプロキシグループを組み合わせ、切り替え可能な出口にします。手動選択型は指定したメンバーを固定して使い、自動テスト型はグループの種類とテスト結果に基づいて選択します。プロキシグループの変更は通信出口だけを変え、ルール内容は書き換えません。
DOMAIN-SUFFIX
DOMAIN-SUFFIXはドメイン末尾に基づいてリクエストを照合し、メインドメインとサブドメインをまとめて対象にできます。たとえばexample.comのルールは通常api.example.comにも一致します。同じ文字列を含んでいても、末尾が異なるドメインには一致しません。
GeoIP
GeoIPは、地理データベースにおける対象IPの所属情報に基づいてルールを適用し、地域単位の通信判定によく使われます。解析済みのIPを処理するもので、ドメインルールとは異なります。データベースの古さ、エニーキャストアドレス、所属情報の変更により、判定と実際の位置が一致しない場合があります。
RULE-SET
RULE-SETは外部のルール集合を参照し、大量のルールを個別に管理・更新するために使います。設定では、ルールセットの取得元、形式、動作タイプ、参照名を同時に定義する必要があります。ダウンロード失敗や形式の不一致があると、関連するルール分岐が想定どおり実行されません。
MATCH
MATCHはフォールバックルールで、それまでの条件に一致しなかった通信を受け取ります。通常はルール一覧の末尾に置きます。MATCHが途中にあると後続ルールは照合されないため、ルール文言の変更より順序の確認が重要です。
リクエスト DOMAIN-SUFFIX,youtube.com,PROXY GEOIP,CN,DIRECT MATCH,PROXY
04

TRAFFIC LAYER

DNSとトラフィック処理

この層では、ドメインの名前解決方法と、どのアプリ通信をカーネルへ取り込むかが決まります。まず通信が引き受けられているかを確認し、次にDNSリクエストの経路、最後に上流リゾルバーの結果を確認します。

DNSリーク
DNSリークは通常、ドメイン問い合わせが想定していたClashのDNS経路を迂回し、システム、ルーター、ブラウザが指定した別のリゾルバーへ送られる状態を指します。システムDNS、ブラウザのセキュアDNS、カーネルのリスニングポート、TUN設定を同時に確認してください。異なるリゾルバーが表示されても、接続内容までプロキシを迂回しているとは限らないため、2つの経路を別々に検証します。
Fake-IP
Fake-IPモードは、ドメインに対して予約アドレス帯の一時的なIPを返します。アプリがそのアドレスへ接続すると、カーネルが元のドメインを復元してルールを適用します。この一時アドレスはリモートサーバーの実際のグローバルIPではありません。LAN機器、特定のゲーム、実IPを必要とするアプリで問題が起きる場合は、除外リストを確認してください。
Redir-Host
Redir-Hostモードは、アプリに実際の名前解決結果を返し、接続情報と組み合わせて通信を処理します。Fake-IPとはドメイン復元の経路が異なるため、互換性も異なります。モードを切り替えた後は、古い結果が判断に影響しないようシステムとブラウザのDNSキャッシュを削除してください。
TUNモード
TUNモードは仮想ネットワークインターフェースを作成し、システムプロキシより広い範囲の通信をネットワーク層で引き受けます。有効化には通常管理者権限が必要で、他のVPN、仮想NIC、ファイアウォール、セキュリティソフトと競合することがあります。全体がネットワークに接続できなくなった場合は、まずTUNを無効にして基本ネットワークを確認し、その後ルーティングとDNSの引き受け設定を調べてください。
DNSハイジャック
DNSハイジャックは、条件に一致するDNSリクエストをClash内蔵のリゾルバーへ転送する機能で、TUNモードと組み合わせて使われることがあります。解決経路を引き受ける機能であり、上流リゾルバーが利用できることを保証するものではありません。リクエストがカーネルに届いているのにタイムアウトする場合は、上流アドレスと出口側のプロキシグループを確認してください。
ドメインスニッフィング
ドメインスニッフィングは、TLSやHTTPなどの接続ハンドシェイク情報から対象ドメインを復元し、ルール照合の補助情報を提供します。アプリがIPへ直接接続していても、ハンドシェイクにドメインが含まれている場合に有効です。対象のプロトコルとポート範囲を限定し、無関係な通信を誤認識しないようにしてください。
05

CONFIGURATION LAYER

設定ファイルの項目

Clash設定で重要なのは項目数ではなく、階層、名前の参照関係、処理順序です。編集前に動作する元設定を保存し、一度に一種類の項目だけ変更してください。読み込みに成功してから次の項目へ進みます。

YAML
YAMLはClashの設定ファイルでよく使われるデータ形式で、インデントによってオブジェクトとリストの階層を表します。タブ、インデントのずれ、空白不足、コロン位置の誤りにより設定を読み込めなくなることがあります。断片をコピーする際は親フィールドも確認し、最深部の数行だけを取り出さないでください。
proxies
proxiesフィールドには、手動で定義したプロキシノードの一覧を保存します。各ノードには、名前、タイプ、プロトコルに応じたサーバー、ポート、認証パラメータが必要です。ノード名はプロキシグループからも参照されるため、名前を変更したらすべての参照箇所を確認してください。
proxy-groups
proxy-groupsフィールドには、プロキシグループの名前、タイプ、メンバーを定義します。メンバーにはノードだけでなく、別のプロキシグループやダイレクト接続を指定できます。ルールが参照するプロキシグループ名は、ここで定義したものと大文字・小文字、空白、記号を含めて完全に一致させる必要があります。
rules
rulesフィールドには、順序を持つルール分岐の一覧を保存します。各ルールには通常、照合タイプ、照合値、対象プロキシグループが含まれ、タイプによっては追加パラメータも指定します。編集時は構文、プロキシグループ名、MATCHの位置を同時に確認してください。
external-controller
external-controllerは、外部制御インターフェースのリスニングアドレスを指定します。グラフィカルパネルはこのインターフェースから接続状態を読み取り、プロキシグループを切り替えます。パネルがカーネルに接続できない場合は、リスニングアドレス、ポートの使用状況、アクセス認証を確認してください。本機以外のアドレスで待ち受ける場合は、LANからのアクセス範囲も評価する必要があります。
config.yaml 項目の参照関係
proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - DIRECT

rules:
  - DOMAIN-SUFFIX,youtube.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY