proxies
ノード
ノードはプロキシ接続に使うサーバー情報のセットで、通常はアドレス、ポート、プロトコル、認証情報を含みます。単なるIPアドレスではありません。設定ではproxiesでノードを定義し、プロキシグループからノード名を参照します。読み込み後に接続できない場合は、アドレスの名前解決、ポートへの到達性、認証情報、コアのプロトコル対応状況を個別に確認してください。一覧に名前が表示されているだけでは、利用可能とは判断できません。
CONFIGURATION · TERM INDEX
設定キーから用語を調べ、プラットフォームや利用条件を確認できます。よく使われる24の用語を6分野に分類しました。カードの見出しから直接リンクでき、ログやサブスクリプションの内容、クライアント設定との照合に便利です。
初めて設定する場合は、まず入門チュートリアルをご覧ください。インストール方法、権限、プラットフォームごとの違いは全プラットフォームガイドで確認できます。このページの項目説明は、該当機能に対応するClashエコシステムのコアを前提としており、すべてのクライアントに同じ設定項目があるとは限りません。
PROTOCOLS
リモート接続の設定とローカルプロキシの接続先を区別し、認証と通信条件を確認します。
proxies
ノードはプロキシ接続に使うサーバー情報のセットで、通常はアドレス、ポート、プロトコル、認証情報を含みます。単なるIPアドレスではありません。設定ではproxiesでノードを定義し、プロキシグループからノード名を参照します。読み込み後に接続できない場合は、アドレスの名前解決、ポートへの到達性、認証情報、コアのプロトコル対応状況を個別に確認してください。一覧に名前が表示されているだけでは、利用可能とは判断できません。
type: ss
Shadowsocksは暗号化プロキシプロトコルの一つです。よく使われる設定項目はserver、port、cipher、passwordです。クライアントとサーバーで互換性のある暗号方式と同じ認証情報を使う必要があります。暗号方式や追加機能への対応状況はコアによって異なるため、設定を移行する際はサーバーアドレスをコピーするだけでなく、実際に使用するコアのドキュメントを確認してください。
type: trojan
TrojanはTLSを使ってプロキシ通信を行います。接続には通常、サーバー、ポート、パスワード、TLS検証に使うサーバー名が必要です。サーバーアドレスと証明書のドメイン名が異なる場合もあるため、関連する名前の項目を安易にIPアドレスへ置き換えないでください。証明書エラーが発生したら、まずシステム時刻、ドメイン名、証明書チェーンを確認します。証明書検証を無効にすると安全性が損なわれるため、通常の対処方法として使わないでください。
mixed-port
この2種類のプロトコルは、アプリがローカルのプロキシ接続先に接続する際によく使われます。リモートノードのプロトコルとは別の階層です。mixed-portを設定すると、1つのポートでHTTPとSOCKSの接続先を提供できます。ただし、アプリ側でシステム設定に従うか、プロキシ情報を個別に入力する必要があります。ポートが競合する場合は、まずローカルで待ち受けているプロセスを確認してください。ポートを変更したら、その接続先を使うアプリの設定も更新します。
RULES & ROUTING
ルールは通信の経路を決め、サブスクリプションは設定内容を提供します。それぞれ分けて確認してください。
rules
ルールによる振り分けでは、ドメイン名、接続先IP、その他の接続情報に基づいて出口を選択します。rulesは通常、上から順に照合され、最初に一致したルールのポリシーが適用されます。DOMAIN-SUFFIXはドメインのサフィックスに一致するルールですが、接続に対応するドメイン名をコアが取得できるかどうかによって結果が変わります。独自ルールは、それを上書きする広範なルールより前に配置してください。保存後に設定を再読み込みし、接続の詳細で実際に適用されたルールを確認します。
direct / reject / match
DIRECTとREJECTは組み込みポリシーで、それぞれ直接接続と接続拒否に使います。MATCHは残りの通信に一致するルールの種類であり、3つを同じ種類の項目として扱うことはできません。MATCH,DIRECTは残りの通信を直接接続します。MATCH,PROXYを使う場合は、設定内にPROXYという名前のグループまたは出口が必要です。フォールバックルールは通常、一覧の末尾に配置します。
geoip
GeoIPはIPアドレスを地域情報に対応付けます。よく使われる記述例のGEOIP,CN,DIRECTは、データベースで中国に分類された接続先IPへの通信を直接接続する設定です。地域の分類はデータベースの更新、IPアドレスの再割り当て、CDNの経路制御などによって変わるため、ノードの遅延や事業者の情報を推測する用途には使えません。更新時は、クライアントが対応するデータベース形式と取得元も確認してください。ファイルを置き換えても、実行中のコアが古いデータを読み込んでいる場合があります。
subscription / proxy-providers
サブスクリプションのURLからは、更新可能なノードや設定全体を取得できます。一方、proxy-providersは設定内でノードの一覧を読み込む仕組みです。クライアントによるサブスクリプション更新では設定全体が上書きされる場合がありますが、プロバイダーの更新で変わるのは通常、そのノード一覧だけです。そのため、ローカルルールはクライアントが対応する上書き・マージ機能を使って追加してください。サブスクリプションURLにアクセス情報が含まれる場合があります。調査時はURL全体を隠し、公開ログやスクリーンショットに載せないでください。
PROXY GROUPS
ルールからグループを参照し、グループからノードを選びます。手動選択、テスト、自動切り替えなどの動作はグループの種類によって異なります。
type: select
selectでは、候補のノードまたは子グループからユーザーが出口を手動で選びます。接続先を固定したいアプリに適しています。ルールが参照するのはグループ名であり、画面に現在表示されているノード名ではありません。そのため、候補を切り替えるたびにルールを変更する必要は通常ありません。前回の選択が保存されるかどうかはクライアントと設定によります。再起動後に選択が変わる場合は、選択内容の保存設定とサブスクリプション更新の動作を確認してください。
type: url-test
url-testは指定したテストURLに接続し、その結果に応じて候補の出口を自動選択します。intervalはテスト間隔を指定し、toleranceは遅延のわずかな差による切り替えを抑えるために使えます。テスト値は、その時点でテスト先までの経路を測定したもので、ダウンロード速度や、すべてのWebサイトに接続できることを示すものではありません。結果を比較する際は、テストURLとネットワーク環境をそろえ、テストのタイムアウトとアプリの接続失敗を区別してください。
type: fallback
fallbackは候補一覧の順に、利用可能な出口を選択します。固定回線を優先し、使えなくなった場合に予備回線へ切り替える用途に適しています。候補全体から常に最も遅延の小さいノードを選ぶ方式ではなく、優先順位に基づいて動作します。利用前にメイン回線を一覧の先頭に置き、テスト先が対象サービスの利用可否を適切に反映するか確認してください。出口が切り替わると、既存の接続が継続できない場合があります。
type: load-balance
load-balanceは選択した割り当て方式に従って、複数の候補出口へ接続を振り分けます。具体的なアルゴリズムは、使用中のコアが対応しているか確認してください。複数のノードを1本の高速回線にまとめる機能ではなく、通常、1つの接続は1つの出口を経由します。送信元IPに敏感なログイン、決済、セッション管理サービスには固定選択のグループを使うと、リクエストごとに出口が変わることで追加認証を求められる事態を避けやすくなります。
DNS & NETWORK STACK
通信がコアに入る経路とドメイン名の名前解決を分けて考え、プロキシ出口のテストだけでネットワーク全体を判断しないようにします。
tun
TUNは仮想ネットワークインターフェースとルーティングを使って通信を取り込み、システムプロキシを参照しないアプリの一部にも適用できます。ただし、すべての接続を取り込めるとは限りません。デスクトップクライアントではサービスコンポーネントや管理者権限が必要な場合があり、Appleのモバイル端末では通常、システムのトンネル機能を利用します。有効化後に問題が起きた場合は、ルーティング、DNS、他のVPNとの競合を個別に確認してください。システムプロキシの問題が未解決のまま、別の通信取り込み方式を重ねて試すのは避けましょう。
enhanced-mode: fake-ip
Fake-IPはドメイン名に合成アドレスを返し、その対応関係を保持します。後続の接続がコアに入った際に元のドメイン名を特定し、振り分けに利用するための仕組みです。合成アドレスはWebサイトの実際のIPアドレスではないため、実サーバーのIPとして事業者情報などを調べることはできません。LAN内のサービスや実際の名前解決結果を必要とするアプリでは、例外設定が必要な場合があります。変更後はシステムとアプリのキャッシュも確認し、古い対応関係が使われ続けないようにしてください。
dns routing
ドメイン名の問い合わせが想定した経路を通らず、別のリゾルバーに送信される状態を、一般にDNS漏れと呼びます。問題かどうかは、あらかじめ定めたDNSポリシーに照らして判断してください。ブラウザーのセキュアDNS、システムDNS、アプリ内蔵のDNS、コアのDNSが同時に使われる場合があります。Webサイトへの接続に使われた出口IPだけでは、問い合わせ経路が正しいか判断できません。リゾルバーのテストと接続ログを確認し、問い合わせ先を特定してから通信の取り込み範囲を調整してください。
system proxy
システムプロキシは、プロキシのアドレスとポートをOSに登録し、その設定に従うアプリが参照できるようにする機能です。すべての通信を強制的に転送するものではありません。ブラウザー、コマンドラインツール、独自のネットワークスタックを持つアプリでは、設定方法が異なる場合があります。ブラウザーで接続できても、すべてのアプリがプロキシを経由しているとは限りません。クライアント終了後にネットワークの問題が起きた場合は、停止したローカルポートがシステムプロキシに設定されたままになっていないか確認し、設定を戻すかサービスを再起動してください。
APPLE PLATFORM
インストーラーのアーキテクチャ、ネットワーク権限、認証情報へのアクセスは、それぞれ個別に確認します。許可を与えただけでは、ノードに接続できるとは限りません。
network extension
Network Extensionは、Appleが提供するネットワーク機能の拡張フレームワークです。アプリは関連機能を利用して、トンネルや通信を処理できます。クライアントによって実装方法は異なり、すべてのmacOSクライアントで同じネットワーク拡張の承認が必要なわけではありません。システムから許可を求められた場合は、アプリと開発元の情報を確認し、使用中のOSバージョンに応じた設定画面から操作してください。別の補助サービスを使うクライアントでは、実際に表示される権限要件に従ってください。
vpn configuration
iOSクライアントで初めてトンネルを作成する際は、通常、VPN構成の追加を求められます。許可すると、システム接続の入口を作成できます。この許可はリモートノードの有効性を保証するものではなく、すべての通信がプロキシ経由になることを意味するものでもありません。実際の経路はルーティングとルールで決まります。接続できない場合は、まずシステムのVPN状態や他のトンネルとの競合を確認し、その後クライアントのログと現在の設定を確認してください。
keychain
キーチェーンは、Appleのシステムでパスワードや証明書などの機密データを保存する機能です。クライアントが接続に必要な情報の保存や読み込みに使う場合があります。アクセス許可のダイアログが表示されたら、要求しているアプリと対象項目を確認し、適切な範囲で許可してください。キーチェーンへのアクセス、ネットワーク拡張の承認、管理者権限はそれぞれ別のものです。ダイアログが繰り返し表示される場合は、アプリの識別情報や保存済み項目が関係している可能性があります。キーチェーン全体を削除するのは避けてください。
arm64 / x86_64
macOSのインストーラーは、Apple Silicon向けのarm64とIntel向けのx86_64に分かれていることがあります。選ぶ前に、Appleメニューの「このMacについて」でチップまたはプロセッサを確認してください。Apple Siliconでは一部のIntelアプリをRosettaで実行できますが、補助コンポーネントやネットワーク機能まで互換性があるとは限りません。アーキテクチャに合ったネイティブ版を優先し、最低システム要件も確認してください。
CORE & CLIENT
まず実際に動作しているコアを確認し、設定項目を解析できるか、クライアントが設定を上書きするかを判断します。
mihomo
mihomoはClash Metaの流れをくむプロジェクトで、プロトコル接続、ルール照合、DNS、ネットワーク処理などの基盤機能を担います。GUIクライアントに組み込まれている場合もありますが、アプリ名だけではコアのバージョンを判断できません。設定の互換性はクライアントのコア情報で確認してください。項目が認識されない場合は、実行中のバージョンとドキュメントの対象範囲を確認してから、クライアントが設定を除外、書き換え、再生成していないか調べます。
graphical client
GUIクライアントはサブスクリプション管理、出口の選択、ログ、システム連携などの画面を提供し、コアは実際の接続処理を担います。両者は別のコンポーネントです。同じコアを使っていても、プラットフォームによって権限、バックグラウンドでの動作、利用できる設定が異なる場合があります。クライアントを比較する際は、OSへの対応、コアの機能、設定の管理方法をそれぞれ確認してください。選び方はクライアント比較をご覧ください。
config.yaml
YAMLはインデントでマッピングとリストを表す、Clashエコシステムで広く使われる設定形式です。同じ階層の項目はインデントをそろえ、タブではなくスペースを使ってください。構文解析に成功しても、現在のコアが項目に対応していることや、ノードとポリシーの参照が有効であることを意味しません。編集前に復元用のコピーを保存し、変更後は解析エラーと実際に適用された設定を確認してください。サブスクリプションの更新でローカルの変更が上書きされないよう注意しましょう。
external-controller
external-controllerは、クライアントや管理パネルが状態の取得、ポリシーの切り替え、接続の管理に使います。待ち受けポートはHTTPやSOCKSのプロキシ接続先ではありません。通常はローカルからのアクセスに制限し、認証を設定してください。アクセス制御を把握している場合に限り、他の端末への公開を検討します。管理パネルが接続できない場合は、待ち受けアドレス、認証、コアの状態を確認してください。プロキシ用ポートをコントロールインターフェースの設定に入力しないでください。