サブスクリプション
リモートから設定を取得 · subscriptionサブスクリプションは、リモートリンクから設定を取得する仕組みです。ノード、プロキシグループ、ルールなどを含む場合があり、ノード一覧だけとは限りません。更新すると提供元が公開した内容を再取得するため、ローカルで直接変更した項目が上書きされることがあります。リンクにはアクセス情報が含まれる場合があります。トラブル対処の際は機密情報を隠し、リンク全体を公開ページに貼らないでください。
サブスクリプションからネットワークスタックまで、設定内での使われ方に沿って用語を解説します。各項目では概念、用途、適用範囲を説明。カードの見出しを共有リンクにすれば、同じ用語をすぐに開けます。
まず設定の取得元、プロキシ項目、通信の捕捉方法を整理してから、接続状況を確認しましょう。
サブスクリプションは、リモートリンクから設定を取得する仕組みです。ノード、プロキシグループ、ルールなどを含む場合があり、ノード一覧だけとは限りません。更新すると提供元が公開した内容を再取得するため、ローカルで直接変更した項目が上書きされることがあります。リンクにはアクセス情報が含まれる場合があります。トラブル対処の際は機密情報を隠し、リンク全体を公開ページに貼らないでください。
Profileはコアが読み込む設定一式で、通常はYAML形式でノード、プロキシグループ、ルール、DNS設定を管理します。サブスクリプション設定はリモートから取得し、ローカル設定はユーザーが保存・管理します。どちらも現在の設定として使用できます。設定を切り替えるとルールやプロキシグループも変わる場合があるため、名前だけで判断せず、選択内容を確認してください。
ノードは接続先として利用できるプロキシサービスの設定項目で、通常はサーバーアドレス、ポート、プロトコル、認証情報を含みます。設定に表示されていても、項目が読み込まれたことを示すだけで、サーバーが稼働中か、認証が有効かは分かりません。接続できない場合は、サブスクリプションの有効性、設定値の一致、ネットワーク経路をあわせて確認しましょう。名前が似た項目を何度も切り替えるだけでは解決しないことがあります。
クライアントに表示されるレイテンシは、指定したテスト先へのリクエストにかかった時間です。名前解決、ハンドシェイク、応答までの時間が含まれる場合があり、回線に固有の固定値ではありません。テスト先、タイムアウト値、ネットワーク環境によって結果は変わります。レイテンシが低くても帯域幅が広いとは限らず、特定のサイトにアクセスできる保証もありません。実際の利用では接続の安定性と接続先の応答も確認してください。
システムプロキシは、OSのプロキシ設定をClashクライアントのローカル待ち受けアドレスに向け、設定に従うアプリのリクエストを転送します。独自のネットワーク設定を使うアプリは、システムプロキシを有効にしても直接接続する場合があります。TUNとは通信を捕捉する階層が異なります。クライアントを終了する前にシステムプロキシを無効にすると、停止したポートへリクエストが送られるのを防げます。
プロトコルは接続と認証の方式を定めます。通信の安全性は暗号化、証明書、サーバー側の設定にも左右されます。
HTTPプロキシは、ブラウザーなどのアプリでよく使われるプロキシ方式です。CONNECTメソッドを使ってHTTPS接続の中継トンネルを確立できます。ここでいうHTTPはプロキシ方式を指し、接続先のWebページが平文のHTTPに限られるという意味ではありません。HTTPSを正常に中継する場合も、暗号化接続はアプリと接続先サーバーの間で確立されます。プロキシを使うためにルート証明書を追加でインストールする必要はありません。
SOCKS5はTCP接続を中継でき、UDPデータグラムの転送方式も定義しています。ただし、アプリ、クライアント、サーバーがそれぞれ該当機能に対応している必要があります。プロトコル自体に通信を暗号化する機能はなく、SOCKS5を暗号化トンネルと同じものと考えることはできません。ドメイン名をローカルで名前解決するアプリもあれば、プロキシ側に問い合わせるアプリもあります。DNS経路を調べる際は、具体的な実装を確認してください。
Shadowsocksは暗号化方式を使ってネットワーク通信を中継します。設定ではサーバーアドレス、ポート、暗号化方式、パスワードを一致させる必要があります。プロトコルのバージョンや暗号化方式によって互換性が異なるため、ノード名だけで利用可否を判断できません。サーバーでプラグインを使う場合は、クライアントが対応していることを確認し、該当パラメーターを正しく設定してください。暗号化方式を変更しても、サーバーとの互換性が自動的に高まるわけではありません。
Trojanは通常、TLS接続を確立し、パスワードで認証するプロキシプロトコルです。サーバーとポートに加え、TLSホスト名、証明書の検証、トランスポート設定も接続結果に影響します。証明書エラーが発生した場合は、まずシステム時刻、ホスト名、サーバー証明書を確認してください。証明書検証の無効化はサーバーの本人確認を損なうため、一般的な解決策として使うべきではありません。
VLESSは、UUIDでユーザーを識別することが多いプロキシプロトコルです。接続にはサーバー指定のトランスポート方式とセキュリティレイヤーも必要です。TLS、REALITY、トランスポート経路と関連設定は自由に置き換えられるものではなく、すべてのノードが同じ組み合わせを使うわけでもありません。インポート後に接続できない場合は、コアの対応状況と設定一式を確認してください。UUIDを追加するだけで設定が完成するとは限りません。
ルールが条件に一致する通信を判定し、ポリシーが処理方法を決め、プロキシグループが接続先の選択を担います。
ルール分岐では、ドメイン名、IPアドレス、プロセスなどの条件に応じて、各接続にプロキシ、ダイレクト、拒否などのポリシーを適用します。ルールは通常、上から順に評価され、最初に一致したルールで処理が決まります。そのため、広い条件のルールを上に置きすぎると、後続の詳細なルールに一致しません。分岐を調べる際は、ルールが存在するかだけでなく、接続ログで一致したルールと最終的なポリシーを確認してください。
プロキシグループは複数のノードや別のプロキシグループをまとめた入口です。ルールからこの入口を参照すれば、特定のノードに固定せずに接続先を選べます。selectは手動選択、url-testはテスト結果に基づく選択、fallbackは通常、順番に利用可能な項目を探します。自動選択はテスト先や検出間隔に依存するため、すべての利用状況で同じ最適な結果が得られるとは限りません。
ルールセットは複数の条件を独立して保存し、メイン設定から参照する仕組みです。ドメイン名やネットワーク範囲のリストをまとめて管理するのに適しています。内容はbehaviorとファイル形式に合っている必要があり、ドメイン用のリストを任意のルールセットとして読み込むことはできません。リモート取得に失敗した場合は更新ログとローカルキャッシュを確認してください。メイン設定の読み込みに成功しても、すべてのルールセットが更新されたとは限りません。
GeoIPはデータベースを使ってIPアドレスの地域や分類を判定し、接続先の振り分けに利用します。結果はデータベースのバージョンやアドレスの割り当て情報によって異なり、サイトの言語、運営主体、実際のサービス提供場所を示すものではありません。ドメイン名に複数のIPアドレスが割り当てられる場合、名前解決の結果によって判定が変わることもあります。特定のサービスを細かく制御するには、通常、ドメイン名のルールも組み合わせます。
ルールモードではルールに基づいてポリシーを選択し、グローバルモードでは通常、捕捉した接続にグローバルポリシーを適用します。ダイレクトモードでは捕捉した接続を宛先へ直接接続します。モードはコアが受け取った通信の処理方法を示すもので、アプリが通信をコアに渡すかどうかを決めるものではありません。グローバルモードでも、すべてのアプリの通信が捕捉されるとは限りません。捕捉範囲はシステムプロキシ、TUN、アプリの設定によって決まります。
名前解決と通信の経路をあわせて確認しましょう。設定を一つ変更しても、すべてのアプリの動作が変わるとは限りません。
DNSはドメイン名をIPアドレスなどのレコードに変換し、アプリが接続先を特定できるようにします。OS、ブラウザー、Clashコアで名前解決経路が異なる場合があるため、設定のDNSを変更しても、ブラウザーが独自に有効にしたセキュアDNSには反映されないことがあります。トラブル対処では、まずクエリの発信元と通過するリゾルバーを確認してから、DNSサーバーや振り分け設定を変更してください。複数の箇所を同時に変更するのは避けましょう。
Fake-IPはドメイン名に合成アドレスを返し、コア内に対応関係を保存します。そのアドレスへの接続時に元のドメイン名を参照して処理できます。合成アドレスはWebサイトの実際のサーバーアドレスではないため、DNSと通信経路を適切に捕捉する必要があります。実際の名前解決結果に依存するアプリでは、fake-ip-filterへの追加が必要な場合があります。すべてのドメインを除外するのではなく、具体的な互換性の問題に応じて調整してください。
TUNは仮想ネットワークインターフェースとルーティング設定を使ってIP通信を捕捉し、システムプロキシに従わない一部のアプリにも適用できます。有効にするには通常、追加の権限が必要です。実際の捕捉範囲はルート、除外設定、ネットワークスタック、DNS設定によって異なり、スイッチを有効にすればすべての接続を捕捉できるとは限りません。ほかのVPNと併用する場合はルートの競合を確認し、TUNを無効にして復旧できるようにしておきましょう。
DNS漏れとは、DNSクエリが想定した名前解決経路やプロキシ経路を通らない状態です。たとえば、ローカルネットワークのDNSリゾルバーにクエリが送られる場合があります。Webサイトへの通信がプロキシ経由でも、DNSクエリが同じ経路を通るとは限りません。暗号化DNSも、プロキシ経由でアクセスしていることを自動的に意味するわけではありません。OSのDNS、ブラウザーのセキュアDNS、TUNによる捕捉、ログを確認してください。テストサイトで分かるのは一部の状況だけです。
ドメイン名スニッフィングは、対応する接続のハンドシェイクやプロトコルメタデータからドメイン名を識別し、宛先IPアドレスしか分からない接続のルール判定を補助します。任意のHTTPS通信を復号する機能ではなく、すべての接続を識別できるわけでもありません。特にプロトコルや暗号化ハンドシェイクの仕組みによる制約があります。既存の宛先情報を上書きするかどうかは設定によって異なるため、適用状況をログで確認してください。DNS設計の代わりにスニッフィングを使うことはできません。
画面、コア、設定ファイルはそれぞれ役割が異なります。問題が起きたら、まず該当する層を特定しましょう。
mihomoはClashエコシステムのコアプロジェクトで、プロキシ接続、ルール判定、DNS、ネットワーク通信の捕捉などを処理します。GUIクライアントは操作画面を提供し、通常はコアを内蔵しますが、GUIとコアのバージョンは別々です。設定項目が使えない場合やプロトコルに互換性の問題がある場合は、実際に動作しているコアとそのバージョンを確認し、関連する設定資料と照らし合わせてください。
Clashクライアントでは、設定のインポート、ポリシーの選択、接続の制御、ログの確認ができます。画面やOSとの連携方法はアプリによって異なります。メニュー名が似ていても、内部の機能が同じとは限りません。設定項目の対応状況は、内蔵コアにも左右されます。クライアントを選ぶ際は、まずOSとプロセッサーのアーキテクチャを確認し、必要な機能に対応しているかを調べてください。プラットフォーム別の情報はダウンロードページをご覧ください。
YAMLはClashの設定によく使われるテキスト形式です。インデントで階層を表し、キーと値、リストなどを使って設定項目を整理します。インデントにはスペースを使い、特殊文字を含む文字列は引用符を適切に扱ってください。ドキュメントの表示上の記号をそのままコピーしないよう注意が必要です。YAMLパーサーで読み込めても、コアの設定として有効とは限りません。項目名、プロキシグループの参照、値の型も確認してください。
外部コントローラーパネルは、コアの制御インターフェースを通じて接続の確認、ポリシーの切り替え、実行状態の管理を行います。プロキシ通信の出口そのものではありません。external-controllerは制御インターフェースの待ち受けアドレスを指定し、external-uiはパネルの静的ファイルの場所を指定できます。待ち受け範囲を制限し、認証を設定して、無許可のユーザーによるポリシー変更や接続情報の閲覧を防いでください。
設定の上書きは、元の設定を読み込む前後に、クライアントの仕組みに従って指定項目を置き換えたり、マージしたりする方法です。ローカルのDNS、ルール、通信捕捉の設定を維持するためによく使われます。マップやリスト、処理順の扱いはクライアントによって異なるため、上書きが常に追加になり、元の内容が置き換わらないとは限りません。変更後は最終的に適用された設定を確認し、サブスクリプション更新時や複数の設定を切り替えたときも、意図した設定が維持されるかを確かめてください。
インポートに失敗する場合は、まずサブスクリプションとYAMLを確認します。アプリの通信がプロキシ経路に入らない場合は、システムプロキシとTUNを切り分けます。通信がコアに届いているのにポリシーが想定と異なる場合は、ルール、プロキシグループ、ドメイン名の識別を確認してください。この順に調べることで、設定の取得元、通信の捕捉範囲、振り分け結果を混同せずに済みます。