設定の読み方・項目の確認

Clashの基本用語集

設定画面のサブスクリプション、プロキシ画面のプロキシグループ、システムのVPN接続リクエストは、それぞれ異なる階層の項目です。以下の5カテゴリから用語を探し、意味を確認してから設定を操作しましょう。

カーネルとクライアント

まずアプリ、設定、接続情報の違いを把握しましょう。設定をインポートした後も、選択して有効にしたことを確認してください。

クライアントアプリ
アプリを開いたときに表示される設定、プロキシ、ログ、サービスの起動スイッチなどは、クライアントが提供する画面です。プロトコル接続、DNS処理、ルール照合は通常カーネルが担うため、画面が似ているアプリでも同じ設定に対応しているとは限りません。機能を探すときは、まずアプリの「情報」や設定画面でクライアント名とカーネル情報を確認し、対応するドキュメントと照らし合わせましょう。
mihomo
mihomoはClash Metaから発展したプロキシカーネルで、プロトコル、DNS、振り分けルールを処理します。特定のAndroidアプリを指す名称ではなく、同じカーネルを複数のクライアントから利用できます。設定項目が非対応と表示された場合は、アプリ名にClashが含まれているかだけで判断せず、実際に使われているカーネルとバージョンを確認してください。
設定ファイル
設定ファイルには、プロキシノード、プロキシグループ、DNS、振り分けルールなどが保存されます。拡張子は .yaml または .yml が一般的です。設定画面からインポートした後、その設定を選択するとクライアントに反映されます。編集前に正常に使えるコピーを保存してください。リモート設定をインポートした場合は、更新時にローカルの変更が上書きされるかも確認しましょう。
YAML
YAMLはインデントで階層を表すテキスト形式で、Clashの設定にもよく使われます。編集時はスペースでインデントし、同じ階層の項目を揃え、リスト項目のハイフンも残してください。保存後に解析エラーが出たら、まずエラー行のインデントと引用符を確認し、その後に項目の内容を見直します。フォントやファイル名を変えても、構文エラーは解消しません。
サブスクリプション
サブスクリプションは、ノードや設定全体を取得・更新するためのリンクを指すことが多く、クライアントの設定画面でURLからインポートして使います。ノードだけでなく、プロキシグループやルールが配信される場合もあります。更新後に追加した設定が消えた場合は、リモート設定で上書きされるファイルを編集していないか確認し、クライアントが対応していれば上書き機能を使いましょう。サブスクリプションURLは適切に管理してください。
ノード
ノードは、アドレス、ポート、プロトコル、認証情報などをまとめたリモートプロキシ接続の設定です。通常はプロキシまたはプロキシグループの画面で選択します。表示名はラベルにすぎず、名前だけでサーバーの所在地や接続品質は判断できません。接続に失敗した場合は、まずログのエラーを確認し、サブスクリプションの有効性、サーバーの稼働状況、端末のネットワークを順に調べましょう。

プロキシプロトコル

プロトコルは、クライアントとサーバーの接続方法を定めます。設定値はサーバー側の情報に合わせる必要があり、名称を変えるだけで互換性のないノードが使えるようにはなりません。

Shadowsocks
Shadowsocksは暗号化プロキシプロトコルの一つで、YAMLノードでは通常、タイプに ss を指定します。手動で追加する場合は、サーバーアドレス、ポート、暗号化方式、パスワードを提供元の情報と一致させてください。ノードによっては追加のプラグイン設定も必要です。暗号化方式が非対応の場合はカーネルの対応状況を確認し、別の方式に変更して同じサーバーを使おうとしないでください。
VMessとVLESS
VMessとVLESSは異なるプロトコルで、ノード設定のタイプにはそれぞれ vmess と vless を指定します。ユーザー識別子のUUIDに加え、通信方式、TLS、サーバー名などの設定が必要な場合があります。インポートやハンドシェイクに失敗したら、提供元の情報をすべて照合してください。タイプの項目だけを置き換えて、同じノードを別のプロトコルとして使うことはできません。
Trojan
Trojanは通常TLSと組み合わせてプロキシ接続を確立し、設定ではタイプに trojan を指定します。パスワードが正しくても接続できない場合は、サーバー名、システム時刻、証明書の検証設定も確認してください。ログに証明書エラーが表示されたら、まずアドレスとサーバー側の設定を確認し、証明書検証の無効化を常用の解決策にしないでください。

ルールと振り分け

モード選択でルールを使うか共通の出口を使うか決めた後、プロキシグループでノードを選択します。接続が実際にどの経路を通ったかは、接続ログに表示される照合結果で確認してください。

Ruleモード
Ruleはルールモードです。カーネルに届いた接続は、現在の設定条件に応じて直接接続、プロキシ、拒否などのポリシーが適用されます。ルールは通常、上から順に確認され、先に一致したルールが適用されると、同じ接続には後続のルールが適用されません。普段はRuleを選択し、サイトが開けるかどうかだけで判断せず、接続ログで一致したルールと出口を確認しましょう。
Globalモード
Globalはグローバルモードです。カーネルに届いた接続を共通のグローバルポリシーで処理し、通常はそのポリシーで使うノードも選択します。変更されるのはカーネル内のルーティング方法であり、すべてのアプリの通信が自動的にカーネルへ送られるわけではありません。ブラウザーでは使えてもほかのアプリで使えない場合は、通信の取り込み設定やアプリの除外設定も確認してください。Globalモードを何度も切り替えるだけでは解決しないことがあります。
Directモード
Directは直結モードです。カーネルに届いた接続を、リモートのプロキシノードを経由せずに宛先へ直接接続します。設定ルールの DIRECT も直接接続ポリシーですが、そのルールに一致した接続だけが対象です。実行モード全体を切り替えるDirectとは異なります。問題の切り分けにDirectモードを使っても、クライアントがDNS処理を続ける場合があるため、プロキシサービスの完全な停止と同じとは限りません。
ルール振り分け
ルール振り分けは、ドメイン、IPアドレス、ポート、ルールセットなどの条件に応じて、接続ごとに異なる出口を指定する仕組みです。独自ルールを編集する前に、参照するプロキシグループ名が存在するか確認し、通常は最終的なフォールバックルールより前に配置してください。リモート設定の更新後は、ルールが保持されているかも確認しましょう。編集場所はクライアントによって異なります。詳しくは応用ガイドをご覧ください。
プロキシグループ
プロキシグループは複数のノードやポリシーをまとめた出口の集合で、手動選択、自動速度測定、障害時の切り替えに利用できます。ルールでグループ名を指定すると、グループ内の選択や測定結果に基づいて実際の出口が決まります。自動速度測定グループを選んでも、すべての接続が常に最も低遅延のノードを使うとは限りません。既存の接続が切り替わるかどうかも、カーネルやクライアントの動作によります。
GeoIPとGEOSITE
GeoIPはIPアドレスの割り当て情報、GEOSITEはカテゴリ別のドメイン情報に基づいて照合するため、参照するリストは異なります。ドメインがCDNを利用している場合、名前解決後のIPアドレスが変わり、IPアドレスによる分類がサイトの印象と一致しないことがあります。ルールが誤判定されたら、どちらのデータを参照したか、データが最新かを確認してください。これらの分類だけでサーバーの物理的な所在地を証明することはできません。

Androidのシステム機能

VPNの許可、通信の取り込み、バックグラウンドでの動作維持は、それぞれ別の設定です。設定メニューの名称は端末によって異なるため、まずアプリ情報とシステムのVPN設定を確認しましょう。

VpnService
VpnServiceはAndroidが提供する端末内のVPNインターフェースで、クライアントが端末のネットワーク通信を受け取り、処理するために使います。サービスを初めて起動すると、通常はシステムからVPN接続のリクエストが表示されます。アプリ名を確認してから許可してください。この許可によってリモートサーバーが提供されるわけではありません。また通常、同じユーザーまたはプロファイルでは一度に1つのアプリだけがVPNサービスを使用できるため、ほかのVPNアプリと競合することがあります。
TUNモード
TUNは、仮想ネットワークインターフェースでIPパケットを受け取る通信の取り込み方式で、システムプロキシ設定に従わない一部の通信も処理できます。Rule、Global、Directとは異なる階層の設定で、有効にした後もルールによる振り分けが可能です。Androidでは通常、クライアントがVpnServiceを使ってインターフェースを作成します。デスクトップでは追加の権限が必要な場合があり、設定場所や仕組みをスマートフォンと同じように考えることはできません。
バッテリー最適化とバックグラウンド制限
Androidがバッテリー消費を抑えるため、バックグラウンドのアプリを管理する仕組みです。制限が厳しすぎると、プロキシサービスの動作が維持されない場合があります。画面ロック後に切断される場合は、システム設定のアプリ情報からクライアントのバッテリー設定を確認し、必要に応じてバックグラウンド動作を許可するか、制限なしに設定してください。一部メーカーには独自の自動起動管理もあるため、別途確認が必要です。これらの設定でノード自体の通信品質が改善するわけではありません。
VPNを常時接続
VPNを常時接続は、指定したアプリのVPNサービスを維持しようとするAndroidのシステム設定で、通常はシステムのVPN一覧にあるアプリ設定から変更できます。クライアントの「起動時に開始」とは別の機能で、「VPNなしの接続をブロック」とも異なります。後者を有効にすると、サービス停止時や設定に問題があるときに端末がインターネットへ接続できなくなる場合があります。接続が安定していることを確認し、制限を解除する方法も把握しておきましょう。

ネットワークとDNS

ドメイン名の名前解決、プロキシへの接続、接続先サイトからの応答は、それぞれ別の段階です。トラブル時は、名前解決の経路、実際の出口、テスト対象を分けて確認しましょう。

DNS
DNSはドメイン名を接続に必要なIPアドレスへ変換します。クライアントのDNS設定、AndroidのプライベートDNS、ブラウザーのセキュアDNSは、それぞれ名前解決の経路に影響することがあります。一か所だけ変更しても、すべてのアプリに反映されるとは限りません。ドメインに接続できない場合は、まずログに名前解決エラーがないか確認し、アプリが実際に使っているリゾルバーを調べましょう。名前解決の失敗をノードの障害と混同しないことが大切です。
Fake-IP
Fake-IPは、ドメイン名にマッピング用アドレスを先に返し、その後カーネルがドメイン名と関連付けて接続を処理するDNS方式です。198.18.0.0/16のような設定範囲内のアドレスが表示されても、接続先サーバーの実IPアドレスとは限りません。実際の名前解決結果を必要とする一部のアプリでは、例外リストへの追加が必要です。まず問題のあるドメインを特定し、フィルター範囲を調整してください。ドメイン振り分けをすべて無効にする必要はありません。
DNSリーク
DNSリークは通常、DNSクエリが想定した経路を通らず、別のリゾルバーに送られることを指します。検出ページに表示されたリゾルバーがノードの地域と異なっていても、それだけでリークが起きたとは断定できません。直接接続ルール、DNSサービスの構成、ブラウザーの設定も確認してください。確認時は、どのドメインをプロキシ経由で名前解決するかを明確にし、クライアントのログと実際の接続記録で経路を照合しましょう。
DoH
DoHはDNS over HTTPSの略で、DNSクエリと応答をHTTPS経由で送受信する方式です。対応クライアントでは上流の名前解決方式として設定できます。また、ブラウザーが独自にDoHを有効にしている場合もあります。クエリが暗号化されても、必ずプロキシ経由で通信するわけではありません。リゾルバーへの実際の出口を確認してください。リゾルバーをドメイン名で指定する場合は、最初の接続に必要な名前解決経路も用意する必要があります。
レイテンシとタイムアウト
クライアントに表示されるレイテンシは、指定されたテスト先への接続にかかった時間で、ダウンロード速度やすべてのサイトの応答時間を示すものではありません。タイムアウトは制限時間内にテストが完了しなかった状態で、端末のネットワーク、名前解決、ノードへの接続、テスト先のいずれかが原因の可能性があります。同じ条件で再テストし、ログを見ながら段階ごとに調べてください。トラブル対処Q&Aも参考になります。一度の測定結果だけで設定を削除しないでください。
クライアントをダウンロードする