選び方の結論:まずmacOSとiOSを分け、設定の互換性を確認

Apple Silicon搭載Macではarm64版があり、コアの情報を確認できるクライアントを優先しましょう。iPhoneとiPadでは、対応するサブスクリプション形式とネットワーク拡張機能を先に確認します。Clash形式のプロキシグループやルール構成を維持したい場合、MacではClash Verge RevやFlClashなどのmihomo対応GUIクライアント、iOSではStashが候補になります。ShadowrocketやSurgeもAppleデバイスでよく使われるプロキシツールですが、ClashのYAML設定をそのまま全て実行できるとは限りません。

「Clash Apple版」は利用シーンを表す検索語であり、MacとiPhoneの両方に対応する単一の公式アプリ名ではありません。GUIクライアント、プロキシコア、サブスクリプション設定は、それぞれ異なる役割を担います。クライアントは接続の切り替えや設定を管理し、コアはプロトコルとルールを処理し、サブスクリプションはノードや場合によってはプロキシグループを提供します。この3つを分けて考えると、問題がインポート、構文解析、接続のどの段階で起きているか判断しやすくなります。

  • ブラウザーや普段使うデスクトップアプリだけで利用する場合:まずmacOSのシステムプロキシで足りるか確認しましょう。機能の多さだけを理由にTUNを有効にする必要はありません。
  • ターミナル、ゲーム、システムプロキシを使わないアプリを利用する場合:画面にスイッチがあるかだけでなく、TUN、UDP、DNS、ルーティング制御を確認しましょう。
  • MacとiPhoneで同じルールを使う場合:まず両方で使える設定の範囲を確認し、そのうえで端末ごとにオーバーライド用ファイルを管理するか決めましょう。

主要クライアントを比較:コア・設定・操作方法

ここでは各プロジェクトの位置づけと利用上の制約を比較します。特定のダウンロード版のバージョンを、今後も変わらない結論として扱うものではありません。最低動作環境、内蔵コアのバージョン、アプリストアでの提供地域は、インストールする版のリリースノートやアプリ詳細で確認してください。

クライアント 対応プラットフォーム・コア 設定形式・通信の取り込み方法 おすすめの利用シーン
Clash Verge Rev macOSなどのデスクトップ環境向け。mihomoを使用 Clash形式のYAMLに対応。システムプロキシとTUNを利用可能 サブスクリプション管理、ルール確認、接続状況の確認が必要な場合
FlClash mihomoベースのクロスプラットフォームGUIクライアント Clash形式の設定に対応。デスクトップでの通信取り込み機能はビルドごとに確認 異なるデバイスでも似た操作感で使いたい場合
ClashX Meta macOSのメニューバー向けクライアント。Meta系統 Clash形式の設定に対応。高度な通信取り込み機能はバージョンごとに確認 メニューバーから操作したい場合や、自分でメンテナンス状況を確認できる場合
Stash iOS・iPadOS向けプロキシアプリ。独自実装 Clash形式のYAMLに対応。システムのネットワーク拡張機能で通信を取り込む プロキシグループとルールの構成を引き継ぎたい場合
Shadowrocket iOS・iPadOS向けプロキシアプリ。mihomoクライアントではない 複数のノードサブスクリプションに対応。独自の設定・ルール体系を使用 ノードを主にインポートし、iPhoneのルールを個別に管理できる場合
Surge macOS・iOS向けネットワークツール。独自実装 独自の設定形式を使用。プロキシグループやネットワーク診断機能を提供 詳しい診断が必要で、設定構文の移行にも対応できる場合

Stash、Shadowrocket、Surgeの購入方法、提供地域、ライセンス範囲は、ストアまたは製品ページで確認してください。macOS版とiOS版のライセンスが共通とは限りません。Clash Verge RevやFlClashはオープンソースのため、実装や不具合の記録を確認できますが、「オープンソース」であることだけでは、現在のバージョンとの互換性は保証されません。

Apple Silicon arm64:インストーラーとコアのバージョンを個別に確認

Macのアーキテクチャを2つの方法で確認

「Appleメニュー」→「このMacについて」を開きます。Apple Mシリーズチップと表示される場合は、arm64、aarch64、またはApple Siliconと記載されたビルドを選びましょう。Intelプロセッサと表示される場合は、x86_64またはx64を選びます。Universalバイナリには両方のアーキテクチャが含まれる場合がありますが、対応するmacOSのバージョンはリリースノートで確認してください。

「アプリケーション」→「ユーティリティ」→「ターミナル」を開き、次のコマンドを実行する方法もあります。Apple Silicon上でネイティブ実行しているターミナルでは、通常arm64と表示されます。ターミナルがRosettaで動作している場合は、変換環境の情報が表示されることがあるため、ハードウェアの確認には「このMacについて」を使いましょう。

uname -m

インストール後に「アクティビティモニタ」を開き、クライアントのプロセスに表示される「種類」を確認すると、Apple Silicon向けのアーキテクチャで動作しているか判断する参考になります。GUIとコアは別のプロセスで動くことが多いため、両方を確認してください。画面が起動しただけで、コアも適切なアーキテクチャだと判断しないようにしましょう。

アプリ名だけでなく、GUIとコアのバージョンを記録する

Clashのオリジナル版、過去のPremiumブランチ、Clash Meta/mihomoを、機能が継続的に同期する同一の系統として扱うことはできません。Clash Metaは後にmihomoという名称で開発が続けられています。オリジナル版やPremiumの過去のビルドを、新しいプロトコルへの対応を期待する際の標準的な選択肢にしないでください。クライアントが起動しても、古いコアでは新しい設定項目を認識できないことがあります。

  1. クライアントの「このアプリについて」またはバージョン情報で、GUIの完全なバージョン番号とビルド情報を記録します。
  2. コア管理画面、実行ログ、またはコア情報で、コアの名称と完全なバージョン番号を記録します。確認画面の名称はクライアントごとに異なります。
  3. コアのバージョンに対応するドキュメントを参照し、rule-providers、proxy-providers、DNS、必要なプロトコルのオプションを確認してください。アプリアイコンから対応状況を推測しないようにしましょう。

この記事では、確認できていない「最新バージョン番号」は掲載していません。リリースページではGUIとコアの更新時期が異なることがあります。更新前に、動作中のインストーラーと設定のコピーを保存しておくほうが、バージョン番号だけを比較するより実用的です。

TUNとシステムプロキシ:アプリの通信に合わせて方式を選ぶ

macOSのシステムプロキシで、まず最小限の動作確認をする

システムプロキシは、システム設定に従うアプリにHTTP、HTTPS、またはSOCKSプロキシの接続先を提供します。すべてのプロセスの通信を一律に中継するものではありません。macOS 13以降では、「システム設定」→「ネットワーク」→使用中のネットワークサービス→「詳細」→「プロキシ」で実際の設定を確認できます。接続方式やmacOSのバージョンによって、ボタン名が異なる場合があります。

クライアントでmixed-port: 7890が明示的に設定されている場合、次のコマンドでローカルHTTPプロキシを個別にテストできます。7890は例として使用しているポート番号で、すべてのクライアントに共通する既定値ではありません。画面に表示されている実際の待ち受けポートに置き換えてください。

curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --head https://example.com

このテストで確認できるのは、指定したプロキシ経由でリクエストを試みられることだけです。すべてのアプリの通信が取り込まれることや、出口が想定どおりであることは証明できません。コマンドは成功してもブラウザーで問題が起きる場合は、すぐにクライアントを再インストールせず、ブラウザー独自のプロキシ設定、拡張機能、DNSの動作を確認しましょう。

TUNはより多くの通信を取り込めますが、すべての接続がリモート経由になるわけではない

TUNは仮想ネットワークインターフェースとルーティングを使い、条件に合う通信をコアに渡します。システムプロキシを参照しないアプリに適した方式です。取り込まれた通信も、ルールに基づいてプロキシ経由、直接接続、拒否のいずれかに振り分けられます。LAN通信、除外ルート、システム側の制約によって、対象範囲が変わることもあります。UDPが使えるかどうかは、ノードのプロトコル、サーバー、ネットワーク経路にも左右されます。

  • 権限の仕組み:macOSクライアントは特権ヘルパーサービスを使う場合もあれば、ネットワーク拡張機能を使う場合もあります。すべてのTUNスイッチに対して、同じシステム拡張機能の許可が必要だと決めつけないでください。
  • DNSの動作:クライアントのDNS設定と、TUNによるDNS取り込みのオプションを確認しましょう。ブラウザーの暗号化DNS、別のVPN、セキュリティソフトによって、名前解決の経路が変わることもあります。
  • ネットワークの競合:まず、ルートやDNSを変更するほかのツールを終了してからTUNをテストします。会社のVPNを使う場合は、スプリットトンネルの設定も個別に確認してください。

iOSのプロキシアプリは通常、Network Extensionを使ってVPN構成を作成します。初回接続時にVPN構成の追加を求められるのは、この仕組みを使うためです。Macでプロキシポートを手動入力する操作とは異なります。一般的な個人利用では、同じVPN経路を取り合うアプリを2つ同時に有効にするのは避けましょう。管理対象デバイスには、別の制限が設けられている場合もあります。

サブスクリプションとルールの互換性:Mac・iPhoneで設定を共有する際の確認手順

サブスクリプションURLの応答は、完全なYAMLの場合もあれば、エンコードされたノード一覧だけの場合もあります。完全な設定にはproxies、proxy-groups、rulesが含まれることがありますが、ノード一覧には通常、完全な振り分けルールがありません。どちらも画面上では「サブスクリプション」と呼ばれることがあるため、URLの拡張子だけではインポート内容を判断できません。

まず設定の構造を確認し、次にクライアント固有の機能を確認

  1. プロキシグループを確認:設定で参照しているグループ名が存在するか、特にrulesの振り分け先が定義されているかを確認します。ノードをインポートできても、プロキシグループがなければ設定を使えないことがあります。
  2. リモートリソースを確認:rule-providersとproxy-providersがサポートされているか、リソースURLからデータを取得できるか確認します。ルールセットの形式と動作タイプも一致させる必要があります。
  3. プラットフォーム固有の項目を確認:Mac用のtun、待ち受けポート、コントロール用インターフェース、ローカルファイルのパスを、そのままiOSに適用しないでください。
  4. ローカル変更の保存先を確認:リモートサブスクリプションを更新すると、直接編集した内容が上書きされることがあります。クライアントが提供するオーバーライド、マージ、または独立したローカル設定の仕組みを利用しましょう。

以下の断片は設定項目の関係を示す例であり、そのまま接続に使える完全な設定ではありません。DIRECTは組み込みの直接接続ポリシーです。TUNを有効にしていても、最後のルールで該当する通信が直接接続に指定されていれば、リモートのプロキシ経由にはなりません。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
rules:
  - MATCH,DIRECT

ShadowrocketやSurgeへ移行する場合は、移行先アプリの形式に合わせてルールとプロキシグループを再確認してください。ノードの変換だけで設定全体を移行することはできません。StashがClash形式の構造に対応していても、mihomoの拡張項目すべてと互換性があるとは限りません。対象バージョンの設定ドキュメントを確認してください。

画面と更新状況:同じタスクでクライアントを比較

画面の見た目だけでクライアントを選ぶ必要はありません。同じテスト設定で次の操作を行うと、使い勝手が自分に合うか判断しやすくなります。サブスクリプションのインポート、プロキシグループの選択、接続に適用されたルールの確認、DNSエラーの特定、以前の設定への復元です。状態を頻繁に切り替えるならメニューバー型、接続状況とログを同時に確認するならウィンドウ型が便利です。

確認するタスク記録する結果判断のポイント
サブスクリプションを更新プロキシグループの選択とローカルのオーバーライドが維持されるか更新のたびに設定し直す手間を避ける
Wi-Fiとスマートフォンのテザリングを切り替える接続の復旧状況とDNSエラーのログネットワーク変更後に復旧できるか確認する
Macをスリープから復帰させるシステムプロキシまたはTUNが復旧するか普段のスリープ利用を想定して確認する
クライアントを再起動するプロキシの状態、ルールモード、ポートが維持されるか設定が保存されるか確認する
アップデート後に以前のバージョンへ戻す以前の設定を読み込めるか設定移行後に復元できなくなるのを防ぐ

更新状況は、直近数回のリリースノートを見て判断しましょう。コアの変更が説明されているか、既知のシステム互換性の問題が修正されているか、アーキテクチャ別のインストーラーが提供されているか、互換性を損なう設定変更が明記されているかを確認します。リリース頻度が高くても、すべてのバージョンがすぐに更新すべきものとは限りません。安定稼働中のデバイスでは、特に事前にテストしてから入れ替えましょう。

ノードのレイテンシテストを、そのままクライアントのランキングに使うのは適切ではありません。同じノードでも、テストURL、接続の再利用、DNSキャッシュ、選択したプロトコルが異なる場合があります。比較するなら、ネットワーク、ノード、テスト先、通信の取り込み方式をそろえ、レイテンシ、接続成功率、ダウンロード速度を個別に記録してください。この記事では、実測していない性能数値は掲載しません。

用途別の選び方:3つのパターン

Apple Silicon搭載Macで、主にブラウザーを使う

arm64版を提供するmihomo対応GUIクライアントから始め、まずサブスクリプションをインポートしてシステムプロキシを有効にします。ルールモード、プロキシグループ、実際の接続先が想定どおりか確認したうえで、TUNが必要か判断しましょう。Clash Verge RevとFlClashはどちらも試用候補です。ログの見やすさ、サブスクリプションのオーバーライドのしやすさ、現在のビルドが使用中のmacOSに対応しているかを基準に選びましょう。

MacとiPhoneでプロキシグループ構成を共有したい

両方でサポートされるYAML項目を基本にし、Macでは適切なmihomoクライアントを、iPhoneではStashの互換範囲を確認します。リモート設定にはノードと共通ルールを残し、ポート、TUN、デバイス固有のパスは各プラットフォームのローカル設定に分けましょう。少数のルールで動作を確認してからリモートルールセットを追加すると、差異を見つけやすくなります。

ネットワーク診断を重視する、またはiPhoneのノードだけを管理したい

診断機能を幅広く使いたい場合はSurgeが候補になりますが、設定の移行とライセンス費用も含めて検討してください。iPhoneでノードサブスクリプションを使い、ルールを個別に管理したい場合はShadowrocketを検討できます。どちらを選ぶ場合も、サブスクリプションのインポート、ルールの適用、ネットワークの切り替え、アプリ終了後の復旧を確認してから、長期利用する構成にしましょう。

最終的には、OSとアーキテクチャの適合 → 設定の解析可否 → 通信の取り込みが正しいか → 更新とロールバックを管理できるか、の順に確認します。クライアント名が似ていても、動作まで同じとは限りません。検証済みの設定と明確なバージョン記録を残しておけば、Mac、iPhone、iPadを継続して管理しやすくなります。