まずコア・GUI・サブスクリプションを区別する

プロキシクライアントは、まずいくつかの層に分けて考えましょう。コアは設定ファイルの読み込み、DNSの名前解決、ルールの照合、通信の転送を担当します。GUI(グラフィカルユーザーインターフェース)は、ボタンの表示やサブスクリプションの管理、プロキシグループの選択、設定の保存を行います。通常は同じインストーラーにまとめられていますが、別々のプロジェクトです。

サブスクリプションは3つ目の層として捉えます。サービス提供元が設定やノード情報を配布する方法であり、コアでもクライアントでもありません。Clash Verge Revをインストールしただけでは、利用可能なノードは手に入りません。また、サブスクリプションを持っていても、「Clash」と名の付くすべてのソフトで読み込めるとは限りません。

レイヤー主な役割問題が起きたときに確認する場所
コアYAML設定の解析、DNS処理、ルールに基づく振り分けと通信の転送コアのバージョン、実行ログ、設定の検証結果
GUIクライアントサブスクリプションの読み込み、モードの切り替え、システムプロキシの設定、バックグラウンドサービスの管理クライアントのバージョン、設定画面、GUIのログ
サブスクリプションと設定ノード、プロキシグループ、ルール、一部の実行パラメーターを提供サブスクリプションの形式、更新日時、ノードのプロトコルと設定項目
OSシステムプロキシの設定、権限、ルーティング、仮想ネットワークインターフェースを提供システムのネットワーク設定、サービスの状態、ファイアウォール

「アプリ → ローカルプロキシの入口 → コア → ルールで選ばれた出口」の順に通信経路を捉えます。たとえば、クライアントの混合ポートが7890に設定されている場合、ブラウザーは127.0.0.1:7890にプロキシリクエストを送り、その後、コアが直接接続するかノードを使うかを判断します。このポート番号は例であり、すべてのクライアントの既定値ではありません。

Clash、Clash Premium、mihomoの変遷

オリジナル版Clash:ルールベースのプロキシコアの始まり

まず、オリジナルのプロジェクトを確認しましょう。一般に「オリジナル版Clash」と呼ばれるのは、Dreamacroが開発を始めたGo製のプロキシコアです。proxies、proxy-groups、rulesなど、多くのユーザーになじみのある設定構造を確立しました。Clash for WindowsやClashXなど、名前にClashを含むデスクトップソフトは、コアを操作するためのGUIを提供するクライアントです。

オープンソースのオリジナルコアとClash Premiumは分けて考えましょう。Premiumは当時、別途公開されていたクローズドソースのコアで、オープンソース版とは対応機能が異なります。古い記事に「Premiumが必要」とあっても、それは当時のコアに関する条件です。現在インストールしたmihomoが同じ設定項目に対応しているかは、それだけでは判断できません。2023年11月には、オリジナルのClashプロジェクトと一部関連クライアントの公開メンテナンスに大きな変化がありました。以降の選定では、各プロジェクトのリポジトリを確認し、ひとつのソフトとして一括りにしないでください。

Clash Meta:Clashのフォークから機能を拡張

次にClash Metaを見てみましょう。Clashのコードを基盤に開発され、プロトコル、DNS、ルール、TUNなどへの対応が拡張されました。TUNは仮想ネットワークインターフェースで、コアがシステムのルーティングを通じて通信を受け取れるようにします。ブラウザーが参照するシステムプロキシとは、通信を取り込む仕組みが異なります。

名称変更の関係も押さえておきましょう。Clash Metaは後にmihomoへ名称変更され、現在はMetaCubeX組織の下で開発されています。古い設定ガイドやプロセス名、クライアントの画面には、今もMetaという表記が残っている場合があります。「Metaコア」と表示されても、まったく別のプロジェクトとは限りません。実際に使われているコアのバージョンと配布元を確認してください。

名前が似ていても、同じ公式プロジェクトとは限らない

メンテナーとリポジトリを個別に確認しましょう。Clash Verge Rev、Clash Nyanpasu、ClashX Metaなどは、それぞれ異なる開発・リリース体制で運営されています。同じ種類のコアを使っていても、同じチームが公開しているとは限らず、あるプロジェクトの更新情報が別のプロジェクトにも当てはまるとは限りません。

各プラットフォームのGUIクライアントとコアの関係

まず以下の対応表を確認し、実際にインストールされているバージョンも調べてください。表は各プロジェクトで一般的なコアの採用状況を示すもので、過去のバージョンや第三者による再パッケージ版、すべての派生版に当てはまるとは限りません。機能を使えるかどうかは、最終的には端末上で動作しているコアとGUIとの連携方法によって決まります。

クライアント主なプラットフォームコアの採用状況と注意点
Clash Verge RevWindows、macOS、Linuxmihomoを採用。初期のClash Vergeの旧バージョンとは区別してください
Clash NyanpasuWindows、macOS、Linuxコア管理機能を提供。GUIの名前だけで判断せず、現在選択されているコアを確認してください
ClashX MetamacOSMeta/mihomo系。オリジナルのClashXとは別のプロジェクトです
FlClashWindows、macOS、Linux、AndroidmihomoをベースにFlutterでGUIを構築。FlutterはGUIの技術であり、プロキシコアではありません
Clash for WindowsWindows、macOS、Linux向けの過去のリリース過去にはClash系コアを採用し、後期にはPremiumが一般的でした。元のプロジェクトはメンテナンスを終了しています
Clash for AndroidAndroid元のプロジェクトはClash系の旧クライアントで、メンテナンスは終了しています。後発のMeta系派生クライアントとは別です

名前の末尾にも注意してください。たとえばFlClashとFlClashsは、綴りが似ているだけで同じ配布元とは判断できません。Meta、Revなどの接尾辞が付いたクライアントも、それぞれプロジェクトの公式サイト、リリース履歴、コアの説明を確認しましょう。当サイトが案内するプラットフォームは、上流プロジェクトの対応プラットフォームをすべて網羅するものではありません。

iOSクライアントは個別に確認してください。iOSの通信制御は、OSが提供するネットワーク拡張機能に依存します。Clash形式の設定を読み込めても、mihomoを直接利用しているとは限りません。Clash Plusなどの製品については、該当プラットフォーム版の技術情報を確認してください。サブスクリプションの形式に対応しているだけでは、同じコアを使っている証拠にはなりません。

Clashのサブスクリプションをmihomoへ移行できるか確認する

読み込む前に、サブスクリプションの内容を確認しましょう。リンクから完全なYAML設定が返る場合もあれば、ノード一覧だけの場合や、別のソフト向けの形式が返る場合もあります。クライアントに「解析に失敗しました」と表示されても、ノードが無効とは限りません。形式の合わないデータを設定解析機能に渡している可能性もあります。

4つの観点で互換性を確認

  1. トップレベルの構造を確認する。Clash形式の完全な設定には、通常、ノード、プロキシグループ、ルールなどの項目が含まれます。ノード一覧しかない場合は、GUIのサブスクリプション管理機能や設定のマージ機能が必要になることがあります。
  2. プロトコルと設定項目を確認する。新しいコアが対応するノードタイプ、トランスポートパラメーター、DNS項目を、古いコアが認識できるとは限りません。unsupported proxy typeのようなエラーが出たら、まずコアのバージョンと該当ドキュメントを確認してください。
  3. 外部リソースを確認する。proxy-providersは外部ノードプロバイダー、rule-providersは外部ルールプロバイダーです。メインの設定ファイルをダウンロードできても、これらの外部URLにアクセスできるとは限りません。
  4. ローカルの上書き設定を確認する。GUIがポート、DNS、コントロールインターフェース、TUNの設定を上書きする場合があります。サブスクリプションファイルに記載された値が、そのまま最終的な実行設定になるとは限りません。

互換性は一方向の関係として捉えましょう。mihomoは多くのClash形式の設定を引き継いで利用できますが、mihomo独自の拡張項目を含む設定が、古いClashでも動作するとは限りません。また、同じmihomoを使うクライアント同士でも、同梱バージョンが違えば挙動に差が出ることがあります。

実際に使われているコアと設定を確認する

まずGUIのバージョンを記録し、次にコアのバージョンを記録します。両者は別々に更新される場合があります。GUIが更新されていても、コアのダウンロードに失敗して古いファイルが使われていることがあります。逆に、コアを入れ替えてもGUIの設定項目は自動では変わりません。

画面表示と起動ログの両方で確認する

  • クライアントの「バージョン情報」または「このアプリについて」を開き、アプリ名と完全なバージョン番号を記録します。メニュー名はクライアントごとに異なるため、別のクライアントの操作手順をそのまま当てはめないでください。
  • コア管理画面を開き、選択中のコア名とバージョンを確認します。複数のコアを切り替えられる場合は、現在有効なものを確認してください。
  • コアを一度再起動し、起動ログに表示されるバージョン情報、設定エラー、待ち受けポートを確認します。ウィンドウが開いているかどうかだけで判断しないでください。
  • コミュニティに相談するときは、OSのバージョン、プロセッサーのアーキテクチャ、GUIのバージョン、コアのバージョンを併記し、システムプロキシやTUNが有効かどうかも記載してください。

mihomoを直接実行する場合は、プログラムのあるディレクトリで次のコマンドを実行できます。例では、現在のディレクトリに自分のconfig.yamlがあるものとします。WindowsではPowerShell、macOSとLinuxではターミナルを使います。設定テストに成功しても、確認対象のチェックを通過したことを示すだけで、すべてのノードへの接続を保証するものではありません。

# Windows PowerShell
.\mihomo.exe -v
.\mihomo.exe -t -f .\config.yaml

# macOS / Linux
./mihomo -v
./mihomo -t -f ./config.yaml

まずGUIの設定検証機能を使って、実際に適用される設定をテストしてください。サブスクリプション、上書き設定、スクリプトの結果をマージするクライアントでは、サブスクリプションの元ファイルだけをテストすると、マージ時の問題を見落とすことがあります。GUIでコアが動作しているときに、同じポートを使う2つ目のインスタンスを起動しないでください。

プロキシポートとコントロールインターフェースを区別する

ポートの用途を確認しましょう。たとえばmixed-port: 7890はHTTPとSOCKSを兼ねるプロキシの入口で、external-controller: 127.0.0.1:9090はGUIやパネルから操作するためのコントロールインターフェースです。いずれも例示値です。ブラウザーのプロキシ先をコントロールインターフェースに設定しても、Webリクエストは正常に転送されません。

端末とメンテナンス状況に合わせてクライアントを選ぶ

まずOSに対応したクライアントを選び、次にGUIの使い勝手を比べましょう。使い慣れた名前だからという理由で、現在のOSに対応していない古いリリースを使い続けるのは避けてください。オープンソースや無料であることはプロジェクトの特徴にすぎません。実際に使う前に、最近のリリース、報告されている問題、インストーラーの配布元を確認しましょう。

  1. OSとアーキテクチャを確認する。Windowsではx64とARM64を、macOSではApple SiliconとIntelを区別してください。Linuxでは、DEBやRPMなど、ディストリビューションに合ったパッケージ形式も確認します。
  2. 設定に必要な機能を確認する。サブスクリプションで使われているプロトコル、ルールプロバイダー、DNSパラメーターに対応しているか、画面の見た目ではなくコアのドキュメントで確認してください。
  3. 通信を取り込む方法を確認する。一般的なブラウザーの利用なら、まずシステムプロキシを使います。システムプロキシを参照しないアプリも対象にする場合は、TUNの利用と、クライアントの権限・サービス管理が信頼できるかを検討してください。
  4. 設定をバックアップできるか確認する。サブスクリプションの登録先、上書きルール、必要なローカル設定を保存します。アップグレード前にコアのバージョンを記録しておけば、問題が起きたときに戻す基準になります。

移行するときは、まず旧クライアントを終了してからサブスクリプションを読み込み、機能をひとつずつ有効にします。2つのクライアントが同時にシステムプロキシ、DNS、ルーティングを書き換えると、原因の特定が難しくなります。「設定の検証 → システムプロキシの動作確認 → ルールによる振り分けの確認 → 必要に応じてTUNを有効化」の順に検証しましょう。

「同じサブスクリプションが旧ソフトでは使えるのに、新しいソフトでは使えない」場合は、まず実際の実行設定とログを比較してください。キャッシュ構造、サービス設定、ファイルパスが異なることがあるため、旧クライアントのデータフォルダー全体をすぐにコピーするのは避けましょう。基本操作は使い方ガイド、症状から原因を調べる場合はトラブル診断をご覧ください。

よくある質問:名前が似ている場合の見分け方

mihomoはClashの新しい公式クライアントですか?

独立してメンテナンスされているコアプロジェクトと捉えるのが正確です。mihomoはClash Metaの開発路線を引き継いでいますが、統一されたデスクトップGUI付きの公式クライアントではありません。GUIを選んだ後も、同梱または呼び出されるコアを確認してください。

同じコアを使えば、接続の挙動も必ず同じですか?

まず設定とシステム環境を比較してください。DNS、振り分けルール、ノードの選択、TUNのルーティング、ローカルファイアウォールは、いずれも結果に影響します。同じコアのバージョンなら変数をひとつ減らせますが、ほかの差をなくすことはできません。クライアント名だけで通信速度を判断することもできません。

任意のクライアントのコアをmihomoに置き換えられますか?

まず、クライアントがカスタムコアに明確に対応しているか確認してください。GUIが特定のコントロールインターフェース、起動パラメーター、ファイル構成に依存している場合があり、モバイルではコアの組み込みやアプリの署名も関係します。明示的な対応がない場合、ファイル名を変えて置き換えるだけの方法は避け、mihomoに対応したメンテナンス中のクライアントを選びましょう。

初心者は複数のクライアントを同時にインストールする必要がありますか?

まずは1つのクライアントで、読み込み、グループの選択、接続確認まで行いましょう。GUI、コア、サブスクリプション、通信の取り込み方法の4点を記録すれば、基本的な利用環境の説明には十分です。比較が必要になった場合に2つ目をインストールし、システムプロキシやTUNを管理するクライアントが同時に1つだけになるようにしてください。