Clash Wiki・基礎リファレンス

Clashの基本用語と設定概念

mihomoカーネル、ノード、プロトコルから、ルール分岐、サブスクリプション、TUN、Fake-IPまで、利用場面ごとに解説します。クライアントの設定項目や設定フィールドが分からないときは、まずここで概念を確認してからチュートリアルへ進んでください。

Category 01

カーネルとクライアント

ネットワーク通信を処理するカーネルと、操作画面を提供するクライアントを区別すると、問題が設定、画面、基盤プロセスのどこで起きているか判断しやすくなります。

Clash
Clashはルール分岐とプロキシグループを中心としたプロキシツールのエコシステムです。実際の利用では、カーネルが設定の読み込みとネットワーク接続の処理を担い、GUIクライアントがサブスクリプション管理、ノード選択、オン・オフ操作を提供します。クライアントごとに画面は異なりますが、基本概念はおおむね共通しています。
rule-based proxy
mihomo
mihomoは継続的に開発されているClash Meta系カーネルで、ルール分岐、TUN、DNS強化、多様なプロキシプロトコルに対応しています。デスクトップクライアントから呼び出せるほか、Linuxサーバー、ルーター、透過型ルーターでも直接実行できます。クライアント画面が正常でもプロキシが動かない場合は、ログにあるカーネルの起動情報が重要な確認ポイントです。
Clash Meta core
カーネル
カーネルは設定の読み込み、プロキシ接続の確立、ルール照合、DNS処理、通信転送を担う中核プログラムです。GUIとカーネルは通常別の層にあり、画面が操作指示を出し、カーネルが実際に実行します。ポート競合、設定構文エラー、権限不足などにより、画面が開いていてもカーネルが起動しないことがあります。
core
GUIクライアント
GUIクライアントはカーネルを管理する視覚的な画面を提供し、サブスクリプションのインポート、設定の切り替え、プロキシグループの選択、接続履歴の確認、システムプロキシの制御などを行います。プロキシサービスそのものではなく、自動的に利用可能なノードを生成するものでもありません。選ぶ際はOS対応、カーネルの種類、必要な機能を確認してください。
GUI client
Clash Plus
Clash Plusは複数の主要プラットフォームに対応するClash GUIクライアントの一つです。インストール後は、画面からサブスクリプション、プロキシグループ、システムプロキシ、TUNモードを管理できます。複数の端末で似た操作感を使いたいユーザーに適しています。詳しいインストール方法は、プラットフォーム別にクライアントダウンロードページをご覧ください。
cross-platform client

Category 02

プロトコルと通信

プロトコルはクライアントがリモートサービスと通信する方法を定め、通信方式は接続の信頼性、リアルタイム性、アプリとの互換性に影響します。

プロキシプロトコル
プロキシプロトコルは、クライアントがリモートサーバーと接続するときに従う通信規則です。プロトコルによって認証項目、暗号化方式、通信パラメータが異なるため、クライアント設定とサーバー設定を一致させる必要があります。同じプロトコル名でも追加オプションまで互換とは限らないため、読み込み後は設定の解析結果と接続ログを確認してください。
proxy protocol
ノード
ノードは設定内で選択できるプロキシサーバー接続の登録情報で、通常はサーバーアドレス、ポート、プロトコル、認証パラメータを含みます。ノード名は識別用のラベルにすぎず、接続品質を直接決めるものではありません。一つのサブスクリプションに複数のノードを含め、プロキシグループで手動選択、速度テスト、自動切り替えを行えます。
proxy node
遅延
遅延は、ローカルからプローブリクエストを送信して応答を受け取るまでの時間で、通常はミリ秒で表します。遅延が小さいほど操作への応答は速い傾向がありますが、ダウンロード帯域、混雑状況、長期的な安定性を単独で示すものではありません。クライアントの測定結果は、テスト先、現在のネットワーク、ノード負荷にも左右されます。
latency
TCP
TCPは信頼性の高い転送と順序どおりの到着を重視するネットワーク通信プロトコルです。Web閲覧、ファイル転送、完全なデータが必要な多くの接続で使われ、失われたパケットは仕組みに従って再送されます。プロキシ設定での接続タイムアウト、ハンドシェイク失敗、接続リセットは、TCP経路やリモートサービスの状態に関係することがあります。
Transmission Control Protocol
UDP
UDPはデータグラム方式で転送し、信頼性のある接続を事前に確立しないためオーバーヘッドが小さい通信プロトコルです。リアルタイム音声・映像、ゲーム、一部のDNSクエリ、新しいネットワークプロトコルで使われることがあります。ノードやクライアントが対応機能を有効にしていないと、Webは見られてもゲームのボイスチャットや一部アプリの接続に問題が出ることがあります。
User Datagram Protocol

Category 03

ルールとポリシー

ルールは接続がどの種類の通信かを判定し、ポリシーはその通信にプロキシ、直接接続、具体的なノードのどれを使うかを決めます。

ルール分岐
ルール分岐は、ドメイン、IP、ポート、プロセスなどの条件に基づいて通信の行き先を決める仕組みです。ルールは通常上から順に照合され、最初に一致したルールで処理方法が決まるため、内容だけでなく順序も重要です。Clashのカスタムルールを追加する際は、前方の広範なルールに先に一致しないことを確認してください。
rule routing
ルールモード
ルールモードでは、クライアントが設定内のルールリストに従って接続を処理します。プロキシグループへ渡す、直接接続する、接続を拒否するといった結果を指定でき、サイトやアプリごとの細かな振り分けに適しています。ルールに該当しない通信は通常、設定末尾のフォールバックルールに送られます。
Rule
グローバルモード
グローバルモードでは、クライアントに入る通信をすべて指定したプロキシポリシーへ送り、通常のルールによる個別の振り分けを行いません。ノードの利用可否を一時的に確認したり、問題の原因がルール照合にあるか判断したりするのに便利です。確認後はルールモードへ戻し、すべての接続が同じ出口を通らないようにしてください。
Global
直接接続
直接接続は、リモートプロキシサーバーを経由せず、現在のネットワークから対象アドレスへ直接接続する方式です。設定ファイルやプロキシグループでは通常、DIRECTで表します。直接接続の成否は、ローカルネットワーク、DNS名前解決、対象サービスの状態にも左右されます。
DIRECT
プロキシグループ
プロキシグループは、複数のノードや他のポリシーを、ルールから参照できる論理的な出口としてまとめたものです。手動選択、自動テスト、障害切り替え、負荷分散などの種類があり、選択ロジックはそれぞれ異なります。ノードを切り替えるときは通常、各ルールを書き換えるのではなくプロキシグループ内で操作します。
proxy-groups
GeoIP
GeoIPはIPアドレスの帰属情報に基づいてルール照合を行うデータ集合で、特定地域のIP通信を対応するポリシーへ振り分けるために使えます。データベースは定期的な更新が必要で、アドレス割り当ての変更により帰属結果が変わることもあります。ネットワーク分岐の判断には便利ですが、端末の正確な地理的位置を示すものではありません。
IP geolocation database

Category 04

設定とサブスクリプション

設定ファイルはクライアントの動作を定義し、サブスクリプションとProviderはリモートソースからその一部または全体を更新します。

サブスクリプション
サブスクリプションは、サービス提供者が公開し定期的に更新できるリモート設定の入口です。クライアントが読み込むと、ノード一覧だけでなく、DNS、プロキシグループ、ルールを含む完全な設定を取得する場合もあります。インポートに成功しても接続できるとは限らないため、更新後は設定状態、プロキシグループの選択、カーネルログを確認してください。
subscription
YAML
YAMLはClashの設定ファイルでよく使われる構造化テキスト形式で、インデントによって項目の階層を表します。コロンの後のスペース、リスト先頭のハイフン、同じ階層のインデントが解析に影響し、Tabも形式エラーの原因になります。手動編集後は、まずクライアントの設定チェック機能を使ってからカーネルを再読み込みしてください。
YAML Ain't Markup Language
設定ファイル
設定ファイルには、ポート、動作モード、DNS、ノード、プロキシグループ、ルールなどの設定が保存されます。クライアントの起動時や設定切り替え時にカーネルが項目を読み込んで検証するため、構造エラーがあると起動できないことがあります。全体の構造を理解するには、設定ファイル完全リファレンスも参照してください。
config.yaml
Provider
Providerは、ノードやルールセットなどを独立したファイルまたはリモートアドレスから読み込む設定の仕組みです。proxy-providersはノードのソース管理に、rule-providersはルールセットの読み込みに使われます。分割することで更新間隔を個別に設定でき、毎回メイン設定全体を置き換える必要がなくなります。
proxy-providers / rule-providers
上書き
上書きは、元のサブスクリプション設定に対して指定した項目を追加、置換、調整する処理です。ローカルのDNS、ポート、カスタムルール、プロキシグループの設定を保ちながら、サブスクリプションを更新するためによく使われます。編集前に、クライアントが結合、先頭への挿入、直接置換のどれを行うか確認し、重複項目やルール順序の変化を防いでください。
override / merge

Category 05

ネットワーク基礎

システムプロキシ、仮想ネットワークアダプター、DNS、ローカルの待受ポートが、通信をクライアントへ取り込めるか、取り込んだ後にどう識別・転送するかを決めます。

TUNモード
TUNモードは仮想ネットワークアダプターを介してIP層でシステム通信を取り込み、通常はシステムプロキシより広い範囲をカバーします。システムプロキシ設定を読まないアプリにも対応でき、UDP通信の取り込みにも使われますが、追加権限と正しいルーティング設定が必要です。有効化後にインターネットへ接続できなくなった場合は、権限、DNS、ルート競合、他のネットワークツールを確認してください。
virtual network interface
システムプロキシ
システムプロキシは、OSがアプリに提供するプロキシアドレスとポートの設定です。ブラウザやシステムのネットワーク設定に従う多くのデスクトップアプリが利用しますが、一部のゲーム、コマンドラインプログラム、独自に通信を管理するソフトは無視することがあります。より広い範囲をカバーしたい場合は、環境に応じてTUNモードを検討してください。
system proxy
DNS
DNSはドメイン名を接続可能なIPアドレスへ変換する仕組みで、Webサイトへアクセスする前の基本的な処理です。ClashはDNSクエリを受けたり転送・強化したりして、名前解決の結果をドメインルールと一致させられます。DNSサーバーへ到達できない、キャッシュに問題がある、設定が競合しているといった場合、ノードは正常でもドメインにアクセスできないことがあります。
Domain Name System
DNSリーク
DNSリークは、アプリのドメイン検索が想定した名前解決経路を迂回し、別のDNSサーバーへ直接送信される現象です。プロキシルールと名前解決が一致せず、接続失敗や分岐結果の異常につながることがあります。確認時は特定のサーバーアドレスだけを変更せず、システムDNS、ブラウザのセキュアDNS、TUN設定、クライアントログを同時に確認してください。
DNS leak
Fake-IP
Fake-IPはDNS強化モードの一つで、まずドメインに対して予約済みアドレスプール内のマッピングアドレスを返します。カーネルはそのアドレスへの接続を受けるとマッピングから元のドメインを復元し、より正確なドメインルール照合を行います。LAN内の端末、特殊なアプリ、非対応ドメインには、フィルターリストで実アドレスによる名前解決を残せます。
fake-ip mode
プロキシポート
プロキシポートは、ローカルアプリがクライアントへリクエストを送る際の待受入口です。HTTP、SOCKS、mixed-portでは接続方法が異なり、mixedポートは通常、同じポートでHTTPとSOCKSのリクエストを受け付けられます。他のプログラムがポートを使用していると、カーネルが起動できない、または待受を開始できないことがあります。
port / mixed-port