Clash、mihomo、Verge Rev の関係とは:オープンソース系譜とカーネル進化の整理

Clashエコシステムに初めて触れると、「結局どれを入れればいいのか」で戸惑う人が多い。Clash、Clash Meta、mihomo、Clash Verge Rev、FlClash……名前は似ているが指しているプロジェクトはそれぞれ違う。本記事ではカーネルとクライアントの継承関係を時系列で整理し、誰が誰の後継なのか、そしてあるプロジェクトが今も維持されているかどうかをどう見分けるかを説明する。

オリジナルClashカーネルの誕生とメンテナンス停止

最初期のClashはGo言語で書かれたルールベースのプロキシツールで、ドメイン名・IPレンジ・GeoIPなどの条件に応じてトラフィックを異なる出口へ振り分け、Shadowsocks、VMess、Trojanなど複数プロトコルを統一的に管理できるのが核心機能だった。設計思想としては「ルールエンジン」と「プロトコル実装」を分離している点が特徴で、設定ファイルにルールを書き、カーネルがマッチングと転送を担うため、利用者は下層のハンドシェイクの詳細を意識しなくてよい。この構造はその後ほぼすべてのClash系クライアントに引き継がれ、エコシステム全体を理解する出発点になっている。

オリジナルのリポジトリは長年のメンテナンスを経て作者によりアーカイブされ、新機能の受け入れも新たな互換性問題の修正も行われなくなった。一般利用者への直接的な影響は、このカーネルを使った旧クライアントを使い続けた場合、新プロトコル非対応や新しいOSバージョンへの適合問題が発生しても公式の更新で解決されなくなるということだ。これがコミュニティによる多数のフォークが生まれた直接の理由でもある——中核機能自体が消えたわけではなく、新たなメンテナーが引き継ぐ必要があっただけだ。

補足:「カーネルのアーカイブ」は「使用不可」を意味しない。すでにダウンロード済みの旧バージョンは動作し続けるが、長期的にはOSやプロトコルの更新に取り残されていくため、今も活発に維持されているブランチを優先的に選ぶことを推奨する。

Clash Premiumとオープンソース版の分岐

オリジナルプロジェクトの発展中期、作者はクローズドソースのPremiumカーネルをリリースし、TUNモード、より完全なルールサブスクリプション、スクリプト拡張などの上級機能を追加し、完全オープンソースの基本版と並行して存在していた。この経緯が、後のコミュニティフォークに2つの方向性をもたらした——ひとつはオープンソースの基盤の上にPremium時代の機能を自前で実装して補う方向(独自にTUN対応を実装するなど)、もうひとつはこれらの上級機能をどう統合・再現するかを軸に展開する方向だ。

これが、現在「機能はほぼ同じだがコードの出自が異なる」複数のクライアントが存在する理由でもある——それぞれオープンソースエコシステムの異なるブランチ上で、Premium時代に生まれた機能要件を独自に再実装している。利用者としては歴史的な経緯にこだわる必要はなく、現在使っているバージョンがTUNモード、ルールサブスクリプション、スクリプトポリシーといった主要機能に対応しているかだけを確認すればよい。

mihomoカーネル:コミュニティが継承した本流

オリジナルカーネルのアーカイブ後、コミュニティ内で最も活発かつ更新頻度の高かった後継プロジェクトが最終的に発展し、mihomoへと名称変更された。機能面では従来のルールマッチングやプロトコル対応を完全にカバーし、新プロトコル(Hysteria2、TUICなど)やOS層の適合(macOS/WindowsのTUN権限モデルの変化など)にも継続的に追随している。現在も積極的に更新されているClash系GUIクライアントの大半は、内部でmihomoカーネルを呼び出しており、アーカイブ済みの最初のバージョンではない。

ここが重要なポイントだ:多くのクライアントは画面上では今も「Clash」というブランド名を製品名として使い続けているが、実際に動いているカーネルはとうにmihomoへ切り替わっている。あるクライアントがプロトコル更新に追随できているかどうかを判断する本質は、紐づいているカーネルのバージョン更新頻度を見ることであり、画面上のブランド名を見ることではない。

フェーズ主要プロジェクト状態
初期オリジナルClashカーネルアーカイブ済み、更新停止
過渡期Clash Premium(クローズドソース)過去のバージョン、以後の更新なし
現在の本流mihomoカーネル活発に維持、主要クライアントの基盤

GUIクライアント系譜:どのクライアントがどのカーネルを使っているか

カーネルの上には各社のGUIクライアントがあり、画面表示、サブスクリプション管理、システムプロキシ設定など利用者が直接触れる部分を担い、内部では特定バージョンのカーネルを呼び出している。この階層関係を整理してこそ、あるクライアントが「新しいかどうか」を判断できる。

  • Clash for Windows(通称CFW):初期に最も普及したデスクトップクライアントの一つ。オリジナルカーネルのメンテナンス停止に伴い、このプロジェクト自体も更新が止まっており、新規利用者には推奨しない。
  • Clash Verge / Clash Verge Rev:Tauriフレームワークをベースにした軽量デスクトップクライアント。元プロジェクトが停滞した後、コミュニティがRev(revive、復興)ブランチとして継承し、mihomoカーネルの更新に継続的に追随。現在Windows/macOS/Linuxで活発度の高い選択肢の一つ。
  • ClashX / ClashX Meta:macOS向けの歴史あるクライアント。以後のバージョンも同様にmihomoを基盤カーネルとする方向へ移行した。
  • FlClash:Flutterで書かれたクロスプラットフォームクライアント。Windows、macOS、Androidで一貫した画面を維持し、同様にmihomoカーネルをベースに構築されている。
  • Clash Plus:iOS向けにApp Store経由で配布されるクライアント。iOSのネットワーク拡張とVPN権限モデルに準拠し、タッチ操作や小画面向けに専用の調整が施されている。

これらのクライアント間の関係は「誰が誰をコピーしたか」ではなく、同じカーネル機能が異なるプラットフォーム・異なる技術スタックで実装された画面違いであることが分かる。どれを選ぶかは、OS、画面の好み、更新頻度によって決めればよく、「本流か否か」にこだわる必要はない。

Clash関連プロジェクトが現在も維持されているかを見分ける方法

似たようなプロジェクト名が並ぶ中、経緯を丹念に追うよりも実用的な判断方法を押さえておく方が効率的だ:

  1. 更新日時を確認する

    直近数ヶ月以内に新バージョンがリリースされているかが最も直接的な指標。長期間更新が止まったままダウンロード可能なバージョンは、大半が一時的な応急使用にしか向かない。

  2. 紐づいているカーネルバージョンを確認する

    クライアントの設定画面や「このアプリについて」ページには紐づいているカーネルのバージョン番号が表示されることが多く、比較的新しいmihomoバージョンかどうかを確認できる。

  3. 対応プロトコルの範囲を確認する

    新しく登場したプロキシプロトコルがクライアント側に対応する選択肢すら見当たらない場合、カーネルバージョンが古い可能性が高い。

  4. OS適合状況を確認する

    OSアップデート後(特にmacOSのネットワーク拡張権限、Windowsの TUNドライバ署名要件)、クライアント側が追随して適合しているかどうかも、メンテナンス活発度を示す指標になる。

注意:プロジェクト名に「Clash」が入っていることは、活発に維持されていることを保証しないし、逆に機能が劣っていることも意味しない。判断基準は常に更新履歴とカーネルバージョンであり、名前そのものではない。

日常的な利用においては、オープンソースの歴史の専門家になる必要はなく、ダウンロードページで現在も積極的に更新されているクライアントのバージョンを選び、有効なサブスクリプションリンクと組み合わせれば、ルール振り分けやTUNモードといった一通りの機能を利用できる。技術選定の詳細はプロジェクトのメンテナーに委ね、一般利用者が気にすべきはただ「安定して使いやすく、OS更新に追随しているか」という2点だけだ。

Clashクライアントを入手する

カーネルの系譜を理解したら、ダウンロードページから現在活発に維持されているクライアントバージョンを選び、プラットフォームに合わせてインストールパッケージを取得しよう。

Clash をダウンロード