まずカーネル、次にクライアント

Clash エコシステムではクライアントとカーネルは別レイヤーです。クライアントは UI、サブスクリプション管理、トレイメニュー、自動起動を担当し、設定の解析、接続の確立、ルールの適用はカーネルプロセスが行います。両者は入れ替え可能で、同じ mihomo カーネルを Clash Verge Rev からも FlClash からも起動でき、設定ファイルは共通です。

カーネルの現状が選定の下限を決めます。オリジナルの Clash と Clash Premium は Dreamacro が管理していましたが、2023 年 11 月にアーカイブされ、リポジトリも公開終了となりました。現在も更新が続いているのは mihomo(旧 Clash.Meta、MetaCubeX が管理)です。見分け方は簡単で、クライアントの「設定」画面でカーネルのバージョン番号を確認します。mihomo は 1.19.x 以降のような形式で、オリジナルカーネルは 1.18.0 で止まっています。

プロトコル対応の差は最も踏みやすい落とし穴です。VLESS、Hysteria2、TUIC、WireGuard、SSH といったアウトバウンド種別は mihomo 系カーネルでしか解析できません。設定ファイルに type: hysteria2 があるのに、クライアントが読み込み段階で unsupported proxy type を出す場合は、カーネルが古いと判断してほぼ間違いありません。

サブスクリプションに Hysteria2 や VLESS ノードが含まれる場合

インポートの前に、クライアントのカーネルが mihomo 系か確認してください。そうでないと、サブスクリプションはダウンロードでき、画面には更新成功と表示されるのにノード一覧が空、という状態になります。エラーはサブスクリプションのダウンロード段階ではなく、カーネルが設定を読み込む段階で起きています。

比較の4項目:カーネル、プラットフォーム、設定方式、更新頻度

候補のクライアントを同じ表に並べると、違いが一目で分かります。

主要 Clash クライアント比較(2026 年 8 月時点)
クライアントプラットフォームカーネルUI シェルメンテナンス状況
Clash Verge RevWindows / macOS / LinuxmihomoTauri活発
Mihomo PartyWindows / macOS / LinuxmihomoElectron活発
FlClashWindows / macOS / Linux / AndroidmihomoFlutter活発
ClashMetaForAndroidAndroidmihomoネイティブ活発
ClashX MetamacOSmihomoネイティブ メニューバー低頻度メンテナンス
StashmacOS / iOS独自開発、Clash 設定と互換ネイティブ活発、クローズドソース
Clash for WindowsWindows / macOS / LinuxClash PremiumElectron2023-11 更新終了
Clash for AndroidAndroidClash Premiumネイティブ2023-11 更新終了

カーネルバージョン

mihomo は rule-providers の3つの behavior(domain、ipcidr、classical)と GEOSITE 分類ルールセットに対応しています。オリジナルの Premium は前の2つのみで、ルールセットのファイル形式も古いままです。サブスクリプションで GEOSITE 分類や classical behavior のルールセットを使うなら、カーネルは mihomo である必要があります。

プラットフォーム対応

デスクトップ、Android、iOS はそれぞれ別の技術スタックです。デスクトップはカーネルを自由に差し替えられます。Android は VPN サービス方式で通信を引き受けます。iOS はサードパーティアプリが独自に TUN サービスを構築することを許可しておらず、App Store の完成品クライアントから選ぶしかなく、カーネルの差し替えもできません。

設定方式

3段階に分かれます。サブスクリプション URL のインポートのみ、サブスクリプション+ローカル YAML、サブスクリプション+Merge 上書き+JavaScript スクリプト。Clash Verge Rev と Mihomo Party は3段階目で、元のサブスクリプションファイルに手を加えずにポート変更、ルール追加、DNS 設定の差し替えができます。

更新頻度

GitHub Releases のリリース間隔を見ます。Clash Verge Rev、Mihomo Party、FlClash、ClashMetaForAndroid は毎月ペースで、ClashX Meta はリリース間隔が長めです。更新が止まったプロジェクトはすぐ使えなくなるわけではありませんが、新しいプロトコルやルール形式には追随しないため、長期的にはサブスクリプションで行き詰まります。

プラットフォーム別の結論

Windows 10 / 11:Clash Verge Rev

Tauri シェルで、インストーラーは 10 MB 程度。Windows 11 でのアイドル時常駐メモリは約 110 MB(ルールセットは一般的なサブスクリプション規模)。既定の混合ポートは 7897、外部制御ポートは 127.0.0.1:9097。よく使うスイッチの場所は次のとおりです。

  • システムプロキシ:「設定」→「システム設定」→「システムプロキシ」
  • TUN モード:「設定」→「Clash 設定」→「Tun モード」。初回有効化時は管理者権限を要求し、wintun ドライバーをインストールします
  • サブスクリプションのインポート:「サブスクリプション」→ 新規作成 → リンクを貼り付け →「インポート」

システムプロキシと TUN の違いは押さえておきたいところです。システムプロキシは OS のプロキシ設定を読むアプリにしか効かず、ブラウザーや多くの Electron アプリは引き受けられますが、コマンドラインツール、一部のゲーム、UWP アプリはこの設定を読みません。TUN は仮想ネットワークアダプター層で TCP と UDP の通信をすべて引き受けるため網羅性が高く、その代わり管理者権限が必要です。

代替候補は Mihomo Party。Electron シェルで、同じ条件での常駐メモリは約 320 MB ですが、その分だけ上書きパネルとサブスクリプション変換の統合が充実しています。低スペック環境なら Tauri 系を優先してください。Clash for Windows の新規導入はおすすめしません。2023 年 11 月にオリジナルカーネルとともに更新が止まり、設定内の hysteria2 や vless ノードを解析できません。

macOS 12 以降:Clash Verge Rev または Stash

Clash Verge Rev は Apple Silicon ネイティブの arm64 パッケージを提供し、メニューバーに常駐してウィンドウを閉じてもプロセスは終了しません。初めて TUN を有効にする際はシステムの許可が必要です。ClashX Meta は操作がより軽快で、メニューバーのメニューだけを備え、ノード切替とプロキシのオンオフだけをしたい場面に向いていますが、更新頻度は低めです。

Stash はクローズドソースの商用クライアントで、設定構文は Clash と互換ですが、カーネルは mihomo ではなく独自開発です。選ぶ前提として、サブスクリプション内のプロトコルをすべてサポートしているか確認し、そうでなければ mihomo 系に戻したほうが安定します。

Android 8 以降:ClashMetaForAndroid

VPN サービス方式で通信を引き受け、「設定」→「ネットワーク」でルーティングモード(ルール / グローバル / ダイレクト)を切り替えられます。よくある競合として、システムの「プライベート DNS」を固定の DoT アドレスにしていると Clash の DNS 処理が迂回され、一部ドメインの名前解決がおかしくなったりルールが効かなくなったりします。「自動」に戻せば解決します。デスクトップとスマートフォンで同じ UI を使いたい場合は FlClash が便利で、同じ設定ファイルが両方のプラットフォームで使えます。

iOS:App Store のクライアントから選ぶしかない

iOS はサードパーティアプリが独自に TUN サービスを構築することを許可していないため、「mihomo カーネル+独自シェル」という組み合わせは存在しません。選択肢は App Store にある完成品クライアントで、それぞれカーネルを内蔵しており、Clash 形式のルール設定はインポートできてもカーネルの差し替えはできません。選定時は、サブスクリプション内のプロトコルが目的のクライアントで対応しているかを先に確認してください。Hysteria2 と VLESS Reality は一部の iOS クライアントで対応が遅れました。

Linux とルーター

デスクトップディストリビューションでは Clash Verge Rev の AppImage または deb パッケージを使い、デスクトップ環境を入れない場合は mihomo カーネルと systemd サービスを直接使って設定を /etc/mihomo/config.yaml に置きます。OpenWrt では OpenClash プラグインを使い、カーネルを mihomo ブランチに切り替えれば、LAN 内の各機器で個別設定は不要です。ルーターのメモリが 128 MB 未満の場合は、GEOSITE ルールセット全体の有効化は慎重に。データベース1つを展開すると数十 MB を占めることがあります。

プラットフォーム別の第一候補と代替
プラットフォーム第一候補代替候補主な制約
Windows 10 / 11Clash Verge RevMihomo PartyTUN には管理者権限と wintun ドライバーが必要
macOS 12+Clash Verge RevStash、ClashX Meta初回の TUN 有効化にはシステムの許可が必要
Android 8+ClashMetaForAndroidFlClashプライベート DNS を「自動」に設定
iOS 15+App Store の完成品クライアントなしカーネルは差し替え不可
Linux デスクトップClash Verge RevFlClashAppImage は手動で実行権限を付与
OpenWrtOpenClashmihomo カーネルを直接導入メモリ 128 MB 未満ではルールセットを絞る

設定方式と移行コスト

クライアントを乗り換えるときに本当に持ち出すものは3つだけです。サブスクリプション URL、ローカルのカスタムルール、上書きスクリプト。ポート番号、TUN のオンオフ、自動起動などはクライアント側の設定なので、新しいクライアントで設定し直せば済みます。

Clash Verge Rev の上書き機構は特筆に値します。サブスクリプションカードの「Merge」は YAML フィールドのマージに、「Script」は JavaScript による設定変更に使います。たとえばサブスクリプション既定のポートをまとめて変更する場合:

# Clash Verge Rev の Merge 上書き例
mixed-port: 7897
allow-lan: false
external-controller: 127.0.0.1:9097
tun:
  enable: true
  stack: mixed
  auto-route: true

この上書きはサブスクリプション更新のたびに自動で適用され、元のファイルを手で編集する必要もなく、再ダウンロードで失われることもありません。

同時に起動するクライアントは1つだけ

2つのクライアントで同時に TUN を有効にするとルーティングテーブルが互いを上書きし、カーネルログは正常に見えるのにどのサイトも開けない、という症状が出ます。切り替える前に、古いクライアントで TUN とシステムプロキシをオフにしてからプロセスを終了してください。

ポートの競合もよくあります。既定の混合ポート 7897 が古いプロセスに使われていると、新しいクライアントの起動ログに bind: address already in use が出ます。Windows では netstat -ano | findstr 7897 で使用中のプロセスを探して終了し、macOS と Linux では lsof -i :7897 を使います。

導入前に確認する5つのこと

  1. サブスクリプションに hysteria2、vless、tuic ノードが含まれていないか。含まれるならカーネルは mihomo 系が必須です。
  2. 対象プラットフォームが iOS ではないか。iOS なら App Store のクライアントから選ぶしかなく、カーネルは差し替えできません。
  3. TUN が必要か。必要なら管理者または root 権限を確認し、Windows では wintun ドライバーのインストールを許可します。
  4. 残しておきたいローカルルールや上書きスクリプトがないか。あるなら Merge と Script の上書きに対応したクライアントを選びます。
  5. デバイスのメモリ余裕。ルーターや低スペック機器は Tauri かネイティブシェルを優先し、Electron は避けます。

この5項目を順に確認すれば、導入後に使えないと気づく事態はほぼ避けられます。カーネルは mihomo、シェルはプラットフォームに合わせて選ぶのが、現時点で最も手間の少ない組み合わせです。