まずはコア・GUIクライアント・設定ファイルの3つに分けて考える

「Clash ダウンロード」と検索すると、コア本体、デスクトップ用インストーラー、スマートフォンアプリが一緒に表示されることがあります。これらは別のものです。まず3つの役割を整理しておけば、バージョン選びや設定エラー、移行時の問題を切り分けやすくなります。

  • コア:通信を受け付け、DNSを問い合わせ、ルールを照合して、外部への接続を確立します。mihomoはこの層にあたり、GUIなしでも単独で動作します。
  • GUIクライアント:サブスクリプションの読み込み、ノード選択、ログ表示のほか、システムプロキシやバックグラウンドサービスなど、プラットフォームの機能を扱います。Clash Verge RevやFlClashはこの層にあたり、通常はすぐ使えるコアがインストーラーに含まれています。
  • 設定ファイル:コアが使用する待ち受けポートやノード、通信を振り分けるルールを指定します。クライアントによっては、起動前に設定をマージ、上書き、生成することもあります。

たとえば、画面上の「システムプロキシ」ボタンは通常、OSのプロキシ設定を変更します。一方、mixed-port: 7890はコアにHTTP/SOCKS混合プロキシの入口を用意させる設定です。ボタンを有効にしても、アプリがシステムプロキシに従わなければ、通信がこのポートを通らない場合があります。両者は別の設定です。

変遷の流れ:Clash → Clash Meta → mihomo

オリジナル版Clash:ルールベースのプロキシコアの出発点

オリジナル版ClashはGoで開発されたルールベースのプロキシソフトで、proxies、proxy-groups、rulesなど、広く使われるYAML設定の構造を確立しました。後発のクライアントの多くがこの構造を引き継いでいますが、設定形式が共通しているからといって、同じ開発チームのプロジェクトとは限りません。

過去にはClash Premiumも存在しました。オリジナル版のエコシステムで追加機能を提供していたクローズドソースのコアであり、オープンソース版のコアとは区別が必要です。古い解説にある「Premiumが必要」という記述には当時の事情があるため、現在も旧版Premiumを探すべきだとは限りません。

Clash Meta:画面テーマではなく、機能を拡張したコアの派生版

Clash MetaはClashから派生したコアで、対応プロトコルやDNS、ルール処理などの機能を拡張しました。古い設定やサブスクリプション、クライアントの設定で見かける「Metaコア」は、通常この系統を指し、Metaという名前のGUIテーマではありません。

mihomo:Meta系統を引き継ぐプロジェクト名

2023年末ごろ、Clashのエコシステムでは元プロジェクトのリポジトリ閉鎖やクライアントの開発停止を受け、コミュニティによる継続開発が進みました。Clash Metaはその後mihomoに改名され、現在はMetaCubeX組織のもとで開発されています。「Clash Metaとmihomoの違い」を簡潔に言えば、前者はこのコア系統の旧称、後者は後継プロジェクトの名称です。

名称が引き継がれていても、バイナリが常に同等とは限りません。数年前のMetaコアと新しいmihomoでは、設定項目やプロトコル、デフォルトの動作が異なる場合があります。トラブル対応では「Metaを使用」とだけ記録せず、実際のバージョン番号を確認してください。また、mihomoをオリジナル版Clashの開発チームが公開した新バージョンと説明するのも誤りです。

クライアントの系譜:Clash VergeとVerge Revは区別する

以下はプロジェクトの関係をもとに整理したものです。個々のインストーラーに含まれるコアのバージョンを保証するものではありません。配布元がコアを更新したり、ビルド設定や対応プラットフォームを変更したりする場合があるため、実際にインストールしたバージョンのリリースノートと実行情報を確認してください。

プロジェクト 役割とコアの関係 選ぶ際の確認ポイント
mihomo プロキシコア本体。Clash Meta系統を引き継ぐ OS、CPUアーキテクチャ、コアのバージョン、設定の対応状況
Clash Verge 旧デスクトップGUIクライアント。過去のバージョンではClashとClash Metaのコアを選択可能。元プロジェクトはアーカイブ済み 旧版の機能一覧を、Verge Revの現行仕様として扱わない
Clash Verge Rev コミュニティが開発を引き継いだデスクトップクライアント。mihomoコアを使用 バックグラウンドサービス、TUNの権限、サブスクリプションの上書き、コアの更新方法
FlClash Flutter製のマルチプラットフォームGUIクライアント。mihomoコアを使用 プラットフォーム対応、モバイル端末でのVPN権限、ビルドごとの機能差
Clash for Windows 開発が終了した旧GUIクライアント。後期の配布版ではClash Premiumが使われることが多い 名前にClashが含まれていても、現行mihomoの設定項目に対応しているとは限らない

名前が似ている場合は、リポジトリと配布元も確認する

Clash VergeとClash Verge Revは、末尾を省略して同じ配布プロジェクトとして扱えるものではありません。インストーラーのファイル名、ソフト内の名称、プロジェクトのリポジトリが一致しているか確認してください。配布サイトやパッケージにFlClashの派生名がある場合も、上流の公式版、再パッケージ版、改変版のどれかを確かめましょう。アイコンが似ているだけで判断するのは禁物です。

デスクトップとスマートフォンで同じ設定を使いたい場合は、まず両方のコアが対応する機能を確認し、そのうえで画面の使い勝手を比べましょう。プラットフォームごとの選び方はクライアント比較を、ダウンロードとインストールはダウンロードページをご覧ください。古い手順を使い続けるために、開発が終了したクライアントに固執する必要はありません。

設定の互換性:同じYAMLでも実行結果は同じとは限らない

プロトコルや設定項目を解釈するのは、実際に動作しているコア

YAMLはあくまでデータ形式です。ファイルを読み込めても、ノードのプロトコルやパラメーターがすべて対応しているとは限りません。たとえばtype: hysteria2を含むノードを使うには、そのプロトコルに対応したコアが必要です。クライアントがYAMLを読み込めるからといって、旧版ClashやPremiumでも必ず接続できるわけではありません。

基本的な設定項目も、意味と組み合わせを確認しましょう。mode: ruleはルールモードを表し、ルールは上から順に照合されます。通常、MATCHは最後のフォールバックとして使います。クライアントの上書き設定でモードがグローバルに変更されると、元のサブスクリプションにルールが残っていても、想定どおりに通信を振り分けられません。

クライアントが別の実行用設定を生成することもある

サブスクリプションの原文、クライアントのエディターに表示される内容、実際にコアへ渡される設定は、別々のファイルである可能性があります。上書きスクリプトや設定のマージ、画面上のスイッチが最終的な設定を変えることもあります。「YAMLを変更したのに反映されない」場合は、まずクライアントに「実行中の設定」「現在の設定」や設定フォルダーを開く機能がないか確認してください。メニュー名はバージョンによって異なるため、別のソフトの手順をそのまま当てはめないようにしましょう。

以下は設定の考え方を確認するためのmihomo設定例であり、完全なサブスクリプションではありません。既存の設定に同じトップレベル項目がある場合は、その項目を編集してください。末尾にそのまま重複して貼り付けないでください。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

tun:
  enable: false
  • 7890は例として示したポートで、すべてのクライアントに共通する固定値ではありません。ブラウザー、ターミナル、システム設定では、実際に待ち受けているポートを指定してください。
  • allow-lan: falseは、LANからのプロキシアクセスを積極的に許可しない設定です。OSのファイアウォール設定の代わりにはなりません。
  • tun.enable: falseは、この設定でTUNを無効にします。クライアントの画面から上書きされる場合は、最終的な値を実行用設定で確認してください。
  • この設定例にはノード、プロキシグループ、ルールが含まれていないため、サブスクリプションが使えるかどうかは判断できません。

ライセンス:コアとGUIを個別に確認

オリジナル版Clashのオープンソースコード、mihomo、Clash Verge Rev、FlClashはいずれもGPL-3.0ライセンスに関係します。ただし、共通点があるからといって同一プロジェクトとは限りません。また、第三者によるすべてのビルドが配布義務を果たしているとも限りません。適用される条項は、後続バージョンのライセンスを選択できるかどうかなども含め、対象バージョンのLICENSEファイルで確認してください。

個人利用と再配布では、確認すべき点が異なる

  • 個人でインストールして使用する場合:通常、クライアントを使うために個人のサブスクリプションやルール、ノードのパスワードを公開する必要はありません。ソフトウェアのソースコードに適用されるライセンスと、個人設定の内容は別のものです。
  • 変更を加えて他者に配布する場合:適用されるライセンスに従い、必要なソースコードやライセンス文、表示を提供する必要があります。プロジェクト名を残すだけでは対応したことになりません。
  • サードパーティ製コンポーネントを同梱する場合:GUI、コア、依存ライブラリ、プラットフォーム用コンポーネントを個別に確認してください。過去のクローズドソース版Clash Premiumは、オープンソースのGUIから呼び出されるだけでGPLのオープンソースコードになるわけではありません。

配布パッケージを確認する際は、ソフトの「バージョン情報」やプロジェクト説明にあるソースコードのURLを見つけ、リリースタグを確認してから、そのタグに含まれるライセンスファイルを読みましょう。ブランドの利用許諾、商標の使用、ソースコードのライセンスはそれぞれ別です。商用再配布を行う場合は、実際のパッケージ内容に応じたコンプライアンス確認が必要です。

移行手順:まず従来の動作を維持し、新機能は後から有効にする

古いClashクライアントからmihomoクライアントへ移行する際に、サブスクリプションの変更、TUNの有効化、DNSモードの切り替え、設定の上書きを一度に行うのは避けましょう。変更点が多いほど、問題の原因を特定しにくくなります。以下の順に進めれば、元に戻しやすくなります。

  1. 現在の環境を記録する。クライアント名とバージョン、コアの名称とバージョン、OSのバージョン、システムプロキシとTUNの状態を記録します。設定をエクスポートする前に、サブスクリプションのトークンが含まれていないか確認してください。
  2. 動作中の設定をバックアップする。元のサブスクリプションURLとローカルでの変更を保存し、上書きルールも別途記録します。クライアントのプログラムフォルダーをコピーするだけでは不十分です。ユーザー設定が別の場所に保存されている場合があります。
  3. 古いクライアントを終了する。旧プロセスやバックグラウンドサービスがプロキシのポートを使っていないことを確認してください。2つのプロセスが同時に127.0.0.1:7890を待ち受けると競合し、起動失敗やプロキシ接続不可につながることがあります。
  4. まず読み込み、次に確認する。新しいクライアントで対象の設定を有効にし、ログに未対応の設定項目、非対応のノード形式、存在しないプロキシグループの参照などのエラーがないか確認します。
  5. まず明示的なプロキシ接続をテストする。TUNはまだ有効にせず、新しいクライアントが実際に使うポートを指定してアプリのプロキシを設定します。Webページへの接続、ドメイン名の解決、ルールの適用状況をそれぞれ確認してください。
  6. 最後にシステム全体への適用を有効にする。必要に応じてシステムプロキシやTUNを有効にし、必要な権限を付与したうえで、ローカルネットワーク、スリープからの復帰、アプリごとの通信振り分けをテストします。一度に変更するのは1項目だけにしてください。

ログにaddress already in useと表示されたら、まずポートの競合を確認します。設定の解析エラーなら、項目名やインデントを確認してください。特定のアプリだけ動かない場合は、そのアプリがシステムプロキシを使うか、独自のDNSやネットワークスタックを使っているかを調べます。接続できないからといって、すぐにノードを変更する必要はありません。

よくある質問:コアの更新、サブスクリプションの読み込み、選び方

クライアントを更新すると、mihomoも自動で更新されますか?

必ずしもそうではありません。インストーラーにコアが同梱されている場合もあれば、コアを別途ダウンロードできるクライアントもあります。画面に表示されるソフトのバージョンとコアのバージョンは別です。更新後はコアの実行情報を確認し、必要に応じて起動ログもチェックしてください。「更新を確認」で最新版と表示されただけでは、コアも更新済みとは判断できません。

Clash対応と書かれたサブスクリプションは、そのままmihomoで使えますか?

一般的なClash形式のYAML設定は、多くの場合、移行の土台として利用できます。ただし、プロトコルや拡張項目、クライアント側の上書き設定を確認してください。リクエストのクライアント識別情報に応じて、サブスクリプションが異なる内容を返すこともあります。元のURLが完全なYAMLではなくノードURIの一覧を返す場合は、新しいクライアントがその読み込み形式に対応しているかも確認が必要です。すべての「サブスクリプションURL」が同じ形式とは限りません。

同じmihomoコアなのに、デスクトップでは使えてスマートフォンでは使えないのはなぜですか?

サブスクリプションURLだけでなく、実行用設定を比較してください。スマートフォンではVPNの許可、アプリごとの対象設定、バックグラウンド制限、他のVPNとの競合も影響します。デスクトップでは、システムプロキシやファイアウォール、サービスの権限が原因になることがあります。対応プロトコルが同じでも、ネットワーク経路全体の違いがなくなるわけではありません。

結局、コアとクライアントのどちらから選べばよいですか?

必要なプロトコル、OS、通信を取り込む方法を整理し、それらに対応する開発継続中のクライアントを探しましょう。GUIで操作したい場合は、使うプラットフォームに合ったものを選びます。サーバーでの運用や自動化が目的なら、mihomoを直接調べる方法もあります。次に実際のコアのバージョンを確認し、最後に設定を読み込みます。詳しい手順は使い方ガイドを、トラブルの切り分けはトラブルシューティングをご覧ください。