Windows
まずClash Plusを確認し、Clash Verge Rev、FlClash、Clash Nyanpasuと比較しましょう。初回接続では、設定を読み込んでシステムプロキシを有効にするのが一般的です。システムプロキシを使わないアプリの通信も取り込みたい場合は、TUNを検討してください。ダウンロード前に、システム設定の「情報」でCPUの種類を確認しましょう。パソコンのメーカー名だけでアーキテクチャを判断しないでください。
ダウンロードクライアントは操作画面を、コアは接続とルールの処理を担います。まず役割の違いを把握してから、インストールするアプリと設定方法を選びましょう。
CLIENT / PLATFORM
まずOSとCPUアーキテクチャを確認し、クライアントを比較しましょう。ダウンロードページでは、OSごとの入手先、対応条件、配布状況を案内しています。このページからインストーラーへ直接リンクすることはありません。
まずClash Plusを確認し、Clash Verge Rev、FlClash、Clash Nyanpasuと比較しましょう。初回接続では、設定を読み込んでシステムプロキシを有効にするのが一般的です。システムプロキシを使わないアプリの通信も取り込みたい場合は、TUNを検討してください。ダウンロード前に、システム設定の「情報」でCPUの種類を確認しましょう。パソコンのメーカー名だけでアーキテクチャを判断しないでください。
ダウンロードApple SiliconとIntelでは、対応するインストーラーが異なります。Clash Plus、Clash Verge Rev、FlClashを比較し、ClashX Metaはアーカイブ版として確認できます。まず「このMacについて」でチップを確認し、クライアントの案内に沿ってネットワーク権限を設定してください。インストール後は、現在使用中のネットワークサービスのプロキシ設定を確認し、以前のクライアントの設定が接続に影響していないか確認しましょう。
ダウンロードClash Plus、Clash Meta for Android、FlClash、Surfboardを比較できます。スマートフォンでは通常、システムのVPN権限を使って通信を取り込みます。ブラウザーのプロキシを設定するデスクトップとは手順が異なります。初回起動時に権限を許可してから、設定とプロキシグループを選びましょう。画面ロック後に接続が切れる場合は、バッテリー最適化とバックグラウンド実行の制限を確認してください。クライアントによって対応する設定形式は異なります。
ダウンロードダウンロードページからClash PlusのApp Storeページと公式サイトclashplus.ioにアクセスできます。インストール後、アプリの案内に従って設定を読み込み、VPN構成の追加を許可してください。接続できない場合は、まずサブスクリプションの内容がアプリに対応しているか確認し、次にプロキシグループの選択とシステムVPNの状態を確認しましょう。デスクトップ版のサービスインストール、待ち受けポート、ファイアウォールの設定をそのまま流用しないでください。
ダウンロードデスクトップ環境ではClash Verge RevとFlClashを比較できます。まずディストリビューションに合ったパッケージ形式を確認し、次にCPUアーキテクチャを確認してください。サーバーやルーターなどでは、mihomoコアを直接使うことが多く、設定ディレクトリ、プロセス権限、サービスの起動を自分で管理する必要があります。端末上のアプリがデスクトップ環境のシステムプロキシを参照するとは限りません。各アプリのドキュメントを確認し、プロキシ環境変数を設定するか、プロキシアドレスを明示してください。
ダウンロードCONFIG / GLOSSARY
まず通信がどのようにコアへ届くのかを把握し、次にルールが出口をどう選ぶのかを確認しましょう。以下の断片は各項目の説明用であり、単独で動作する完全な設定ではありません。Proxyは別途定義が必要なプロキシグループの例です。
ルールによる振り分けでは、接続ごとに異なる出口を選べます。設定ファイルのrulesリストには、ドメインの末尾やキーワード、接続先アドレスなどの条件を指定できます。コアは上から順に確認し、最初に一致したルールで処理を決めます。それ以降のルールは判定されません。ルールとプロキシグループは役割が異なります。ルールは接続をどのグループに渡すかを決め、プロキシグループは実際に使うノードを決めます。細かく指定したいドメインは、範囲の広いルールより前に置きましょう。MATCHは通常、末尾に配置します。問題を調べるときは、接続ログで適用されたルールを確認してから、順序を変えるかグループ内の選択を見直してください。
mode: rule
rules:
- DOMAIN-SUFFIX,github.com,Proxy
- DOMAIN-KEYWORD,adservice,REJECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
プロキシモードは、コアに届いた接続をどの出口ロジックで処理するかを決めます。Ruleはルールリストに従うため、宛先ごとに振り分けたい通常の利用に適しています。Globalは接続をグローバル用のプロキシ選択に渡し、Directは直接接続します。通常はクライアントのモード選択から切り替えられます。設定のmodeフィールドで指定することもできます。モードとシステムプロキシは別の設定です。前者はコアでの接続処理を決め、後者はアプリが接続をコアへ送るかどうかに影響します。Globalに切り替えても、すべてのアプリが自動的に取り込まれるわけではありません。プロキシに送られていない通信は別途確認が必要です。
# 選択可能な値:rule / global / direct
mode: rule
mixed-port: 7890
allow-lan: false
TUNは仮想ネットワークインターフェースを通じて通信を取り込み、システムプロキシ設定を参照しない一部のアプリにも対応できます。デスクトップクライアントでは、通常ネットワーク設定やTUN設定から有効にできますが、サービスコンポーネントや管理者権限が必要な場合があります。設定のauto-routeはルートを自動設定し、dns-hijackは指定したDNSリクエストを取り込みます。TUNは通信を取り込む仕組みであり、ルールやプロキシグループの代わりにはなりません。他のVPNと併用しても競合しないとは限りません。初めて有効にする際は、元の設定を残してルートとDNSを確認し、対象アプリで動作を検証しましょう。ネットワーク設定を一度に複数変更するのは避けてください。
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
DNSはドメイン名を接続に使えるアドレスへ変換します。Fake-IPでは、まず対応付け用のアドレスを返し、その後の接続時にコアが元のドメイン名と関連付けることで、ドメインに基づく振り分けを可能にします。設定のdnsセクションで名前解決サービスを有効にし、enhanced-modeをfake-ipに設定します。これはプロキシモードとは別の機能で、有効にしただけですべてのシステム問い合わせを取り込めるわけではありません。アプリ内蔵の暗号化DNSは別経路を使うことがあるため、実際の接続方法に応じて確認が必要です。変更前に、DNSリクエストをどのソフトウェアが処理するかを確認しましょう。一部の端末やアプリで問題が起きる場合は、フィルター範囲をむやみに広げず、必要に応じてfake-ip-filterを設定してください。
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.alidns.com/dns-query
サブスクリプションは設定内容の取得や更新に使い、ルールセットは再利用できる判定条件をまとめて管理します。完全な設定を含むサブスクリプションには、ノードやプロキシグループ、ルールが含まれる場合があります。一方、proxy-providersとrule-providersは、それぞれプロキシの一覧とルールの一覧を管理するもので、互いに置き換えることはできません。通常、クライアントの設定画面やサブスクリプション画面でリンクを読み込みます。ルールセットは設定で定義したうえで、RULE-SETから参照します。サブスクリプションの更新で手動変更が上書きされることがあるため、保持したい設定にはクライアント対応のオーバーライド機能を使いましょう。サブスクリプションURLにアクセス認証情報が含まれることがあります。ログやスクリーンショット、設定を共有する前に、該当情報を削除してください。
rule-providers:
local-direct:
type: file
behavior: domain
format: yaml
path: ./rules/local-direct.yaml
rules:
- RULE-SET,local-direct,DIRECT
- MATCH,Proxy
外部コントローラーパネルは、コアの制御インターフェースを通じて接続を取得し、ログの確認やプロキシグループの切り替えを行います。ブラウザーからコアを管理したい場合に便利です。設定のexternal-controllerで待ち受けアドレスを指定し、external-uiでローカルのパネルファイルのディレクトリを指定します。コントロール用ポートとmixed-portは用途が異なり、ブラウザーのプロキシポートとして使うものではありません。単一端末で使う場合は、ループバックアドレスへのバインドを優先してください。リモートアクセスが必要な場合は、認証を設定し、接続元ネットワークも制限しましょう。デスクトップクライアントがこれらの項目を管理している場合があります。変更前にクライアントのドキュメントを確認し、内部で使うインターフェース設定を上書きしないようにしてください。
external-controller: 127.0.0.1:9090
external-ui: ./ui
# ./ui ディレクトリに対応するパネルファイルをあらかじめ配置してください
クリックするかキーボードでフォーカスすると自動閲覧が停止します。矢印キーで用語を切り替え、HomeとEndで先頭または末尾に移動します。
SOURCE / PRACTICE
Clash百科は、クライアントの入手先と設定方法を紹介するサイトです。コアの機能はプロジェクトのドキュメントを、画面操作は利用するクライアントの案内を基準にしてください。名前の似たクライアントでも、設定項目やメンテナンス状況、必要な権限が同じとは限りません。
Clashでは当初、YAML設定、プロキシグループ、ルールによる振り分けを中心とした使い方が広まりました。オリジナルのプロジェクトがメンテナンスを終了した後も、互換性のあるエコシステムはコミュニティで発展を続けています。mihomoはClash Metaのプロジェクト路線を引き継ぎ、プロキシプロトコル、ルールセット、ドメインスニッフィング、ネットワークへの接続方式などを継続的に進化させています。そのため、古いガイドにあるClash Metaと現在のドキュメントに記載されたmihomoは、同じコアの開発系譜を指すことがよくあります。ただし、古い設定項目がすべて現行の実装でも使えるとは限りません。
クライアントは画面を備えたアプリで、コアはネットワーク接続を実際に処理するプログラムです。クライアントには特定のコアが組み込まれている場合もあれば、ユーザーがコアを変更できる場合もあります。機能が使えるか判断するには、コアが対応しているか、クライアントに設定項目が用意されているか、利用中のOSで必要な権限を得られるかを確認する必要があります。アプリ名だけでは実行環境が分からず、設定がそのまま使えるか判断できないことがほとんどです。iOSなどには独自のネットワーク接続方式があるため、デスクトップ版の仕組みをそのまま当てはめないでください。
設定項目を確認するときは、まずmihomoの設定ドキュメントを参照し、次にmihomoのソースコードリポジトリで解説やリリース情報、課題の議論を確認してください。公開ソースコードは実装の理解や問題の切り分けに役立ちますが、すべてのGUIクライアントで同じ名前の設定項目が使えるとは限りません。当サイトでは、よく使う概念を用語ごとに解説し、設定全体の手順は応用マニュアルにまとめています。画面上の操作手順と内部パラメーターを、ひとつの固定手順として混同しないためです。
サンプルを読むときは、完全な設定ファイルと部分的な記述を区別してください。rulesで指定するプロキシ名は設定内で定義されている必要があります。rule-providersが参照するファイルは実際に存在しなければなりません。DNSの待ち受けポートと制御インターフェースのポートは、他のプログラムと競合しないようにしてください。YAMLの階層はスペースで表し、インデントにタブを使わないでください。保存前にクライアントの設定チェック機能を実行し、再読み込み後にログで成功したことを確認しましょう。画面に古い設定が表示される場合は、同じリンクを何度も読み込むのではなく、現在有効な設定を確認してください。
アプリ、コア、サブスクリプションの更新は、それぞれ異なる部分に影響します。アプリの更新では画面やサービスコンポーネントが変わる場合があり、コアの更新ではプロトコルの実装や設定項目の動作が変わる場合があります。サブスクリプションの更新ではサーバーやプロキシグループ、ルールが置き換わることがあります。アップグレード前に現在使える設定とローカルオーバーライドを保存し、関連するリリースノートを確認しましょう。アップグレード後は、まず従来の接続を確認してから新機能をひとつずつ有効にしてください。「サブスクリプションの更新成功」はサーバーの稼働を保証せず、「インストール完了」はシステムプロキシがすべてのアプリの通信を取り込んだことを意味しません。
継続して使う場合は、サブスクリプションでリモートの設定を管理し、ローカルオーバーライドで個別の要望を反映する方法がおすすめです。たとえば、少数の業務用ドメインだけにルールを追加したり、ローカルの待ち受けアドレスやDNS設定を保持したりできます。オーバーライドやマージの方法、適用順はクライアントごとに異なります。エディター上の一部分だけで判断せず、最終的に生成された設定を確認してください。複数のサブスクリプションを統合する場合は、名前が重複するプロキシグループ、重複ルール、出口の依存関係にも対処が必要です。詳しい手順は設定応用マニュアルで解説しています。初回接続時にまとめて設定するのは避けましょう。
「インターネットに接続できない」という問題は、まず通信の取り込み、名前解決、ルール判定、出口の4段階に分けて考えましょう。ブラウザーがシステムプロキシを参照しているか、コアが接続を認識しているか、ドメインが想定どおりに解決されているか、どのプロキシが選ばれたかを確認すると、設定を何度も変えるより効率的に原因を絞れます。コアに接続ログがない場合は、まず通信の取り込み方法を確認してください。ログはあるもののプロキシの選択が誤っている場合は、ルールの順序とグループ内の選択を確認します。選択が正しいのに接続できない場合は、サブスクリプションの状態、ノードのプロトコル、出口ネットワークを調べましょう。原因を特定するため、設定は一度にひとつだけ変更してください。
レイテンシテストの結果は、特定の測定先、プロトコル、測定時のネットワーク状況を反映するもので、実際の用途での動作確認に代わるものではありません。Webページ、動画、コマンドラインツールでは、DNSや接続の再利用方法、通信プロトコルが異なる場合があります。動作確認では、まず対象アプリをひとつ決め、接続ログを見てから、出口がルールの想定どおりかを確認してください。調査内容を共有するときは、エラーの種類と必要な項目だけを残し、サブスクリプションURLのアクセス情報、サーバーのパスワード、個人を特定できるネットワーク情報を削除しましょう。具体的な手順はよくある質問から確認できます。
有効なサブスクリプションをお持ちの場合は、まずOSとCPUアーキテクチャに合ったクライアントをインストールし、設定画面からサブスクリプションを読み込んで現在の設定に選びます。次にRuleモードを選び、実際に使うプロキシグループでノードを選択してから、システムプロキシまたはモバイルのVPN接続を有効にしてください。まず普段使うアプリが接続できるか確認し、その後ルールが想定どおりかを調べます。この順序なら、設定の有効性、通信の取り込み、出口の選択を個別に確認でき、問題が起きたときもどの段階で止まったか判断しやすくなります。ネットワーク設定をすべて一度に有効にして、ひとつずつ原因を推測する必要はありません。
対象アプリがシステムプロキシに従わない場合や、より広い範囲の通信を取り込む必要がある場合に限り、TUNを検討してください。有効にする前に、ルートを変更する可能性のある他のVPNを終了し、現在のDNSとプロキシ設定を記録します。クライアントの案内に従ってサービスをインストールするか、必要な権限を付与してください。ネットワークに問題が起きたら、直前の変更を取り消し、動作が確認できている状態に戻しましょう。使い方ガイドでは、読み込み、選択、通信の取り込み、動作確認までを順に解説しています。用語の確認には用語集をご利用ください。どちらも応用マニュアルとは役割が異なります。
NOTES / RECENT
よくある操作から具体的な設定項目まで解説します。ノードを選ぶ際は測定結果の意味を理解し、設定を移行する際はコアの違いを確認しましょう。初めて使う場合は、サブスクリプションとプロキシモードから始めてください。
レイテンシテストの数値が示す意味、通信量倍率の計算方法、地域と接続先サービスの関係を解説。Trojan、VLESS、Hysteria2などのプロトコルをネットワークごとに比較します。
記事を読む →mihomoとオリジナルClashコアのプロトコル対応、ルールセットの購読、ドメインスニッフィング、TUNスタックの実装、設定項目の違いを比較し、古い設定を移行する際の変更点を解説します。
記事を読む →初めて使うときにつまずきやすい10の疑問を解説します。サブスクリプションURLの入力場所、RuleとGlobalの選び方、システムプロキシが機能しない原因、設定の更新に失敗したときの対処など、すぐ試せる手順を紹介します。
記事を読む →