クライアントレビュー · Clash 技術ブログ

iOS で Stash、Shadowrocket、Surge を選ぶには?

三つのアプリはいずれもプロキシルールを扱えますが、適する利用者は異なります。サブスクリプションを読み込むだけか、ルールを頻繁に変更するか、スクリプトによる自動化が必要かによって、Shadowrocket、Stash、Surge のどれを選ぶべきかが決まります。

  • iOS
  • Stash
  • Shadowrocket
  • Surge
目次

スマートフォン用のプロキシアプリは、価格とノードを追加できるかだけでは選べません。デスクトップのルールを引き継ぐ、ほかの端末にプロキシを共有する、スクリプトを管理するといった用途で、その後の手間は変わります。現在の設定と実際に使う機能を整理してからストアと公式説明を確認すれば、購入後に設定の作り直しが必要だと気づく事態を減らせます。

Shadowrocket・Stash・Surgeはどんな用途に向いている?

主な用途優先候補選ぶ際の注意点
一般的なノードの読み込みと基本的な振り分けが中心で、価格を重視するShadowrocketSurgeのモジュールを使う一連の作業やチームでのデバッグが必要な場合、操作方法が十分に統一されていない
Clash形式のポリシーグループとルールを引き継ぐStashノードを一つ使うだけでルールを管理しない場合は、機能が多すぎることがある
リクエスト、スクリプト、モジュール、MITMのデバッグを日常的に行うSurgeサブスクリプションの更新とノード切り替えだけなら、費用と学習の負担が大きい

候補を選んだら、現在の設定を取り込めるか、ルールをどう編集するか、ローカルネットワーク共有が用途に合うか、購入方法と移行の手間を確認します。ノードを取り込めても、元のルールや設定がそのまま残るとは限りません。

Clashの設定をこの三つのアプリにそのまま読み込める?

Stash は、Clash Premium に近い機能を Apple プラットフォームへ提供する製品と公式に位置付けられています。そのため、proxy-groups、rules、Rule Provider をすでに使用している場合は、従来の構成を引き継ぎやすい傾向があります。ただし、実際のインポート結果は確認してください。スクリプト、TUN、DNS、一部の Mihomo の新しいフィールドが一対一で対応するとは限りません。

Shadowrocket は独立したルールベースのプロキシツールです。公式 App Store の説明には、ドメイン、CIDR、GeoIP ルール、リモートルールファイル、DNS、スクリプトフィルター、多段転送が記載されていますが、Mihomo のグラフィカルフロントエンドではありません。ノードのインポートに成功しても、以前の Clash のポリシーグループとオーバーライドが同じ構造を維持するとは限りません。

Surge は独自の Profile と Module の仕組みを使用します。Module は Profile より高い優先度で設定を上書きするため、レビュー可能なローカルパッチの管理に適しています。Clash のサブスクリプションしかなく、ルールを作り直す予定もない場合は、Surge の機能が多いという理由だけで移行コストが最も低いと考えるべきではありません。

ポリシーグループ・ノード・モジュール:日常の管理方法の違い

Stash
Clash 形式のポリシーグループ選択、オーバーライド、ルールセットの管理を中心に使う場合に適しています。iOS、tvOS、macOS、visionOS にも対応します。
Shadowrocket
一般的なノードとルールをすばやく追加でき、iPhone、iPad、Mac、Apple TV で使用できます。現在の機能と購入可能な地域は App Store ページで確認してください。
Surge
接続の確認、モジュールの管理、スクリプトの実行、HTTP トラフィックのデバッグに適しています。公式ドキュメントには Module、MITM、スクリプトに関する包括的な体系があります。
Stash の設定ページ。設定ファイルの入口はページ上部にあります
Stash では設定ファイルの管理を設定ページから行います。スクリーンショットは当サイトの Stash 実機チュートリアルから引用しています。バージョンによって入口の名前が異なる場合があります。Stash の画像付きチュートリアルを見る
Shadowrocket のホーム画面。右上のプラスボタンからサブスクリプションまたはノードを追加できます
Shadowrocket はインポート画面へ直接移動できます。スクリーンショットは当サイトの Shadowrocket 実機チュートリアルから引用し、ノード情報は処理済みです。Shadowrocket の画像付きチュートリアルを見る

LAN共有はどこまで対応し、どんな制限がある?

LAN で共有する方法

アプリケーション確認できる方法選択時の注意点
Stash公式ドキュメントでは、iOS で HTTP プロキシと SOCKS プロキシを提供できることが明記されています。「LAN 接続を許可」を有効にした後、iPhone の LAN IP とポート 7890 を使用しますこれは手動プロキシによる共有です。iPhone が完全な透過ゲートウェイになるわけではありません
ShadowrocketApp Store の説明にはローカルトラフィックの処理と多段転送が記載されていますが、LAN 共有は主要機能として明記されていません現在のバージョンの設定に共有用リスナーが明示されていない場合は、サードパーティーが公開した古いスクリーンショットから推測しないでください
Surge公式の仕組みに関するドキュメントでは、iOS のローカルプロキシサービスで別のデバイスからのリクエストを処理できると説明されています接続先デバイスでは引き続きプロキシを手動入力する必要があります。具体的なリッスンアドレスと権限は、現在の Profile とバージョンに従ってください

どのアプリケーションを使用する場合でも、共有前に iOS の「ローカルネットワーク」権限を許可し、二台のデバイスを同じ Wi-Fi またはインターネット共有へ接続します。まず別のデバイスでテスト用 Web ページを一つ開き、iPhone のリクエスト記録から、想定したポリシーへ実際に入ったことを確認してください。使用しないときはリスナーを無効にし、公衆 Wi-Fi では認証のないプロキシを公開しないでください。

通常のサブスクリプション接続にMITMルート証明書は不要

三つのツールはいずれも、書き換え、スクリプト、HTTPS 復号に関する機能を備えている場合があります。ただし、通常のサブスクリプション接続にルート証明書のインストールは不要です。MITM ではアプリケーションがローカルで証明書を再発行するため、証明書ピンニングを採用する一部の App は接続を拒否します。

Moduleやリモートスクリプトを入れる前にソースファイルを読み、どのホスト、リクエストヘッダー、レスポンス内容を変更するか確認してください。Surgeの公式文書では、ModuleがRule、Script、URL Rewrite、MITMの設定を上書きできると説明されています。出所不明のモジュールはこれらの設定を変える可能性があるため、安易に読み込まないでください。

価格・配信地域・対応端末は現在のストア情報で確認する

価格、配信地域、ファミリー共有、対応デバイスは変更される場合があります。現在の米国向け App Store ページでは、Shadowrocket は買い切り型の有料アプリケーションとして表示され、プロキシサービスは付属しないと明記されています。Stash と Surge についても、購入アカウントの地域に対応するストアページと公式説明を確認してください。

今後 Apple TV、Mac、家族のデバイスでも使用する場合は、同じ購入でダウンロードできるか、設定をどのように同期するか、スクリプトと証明書も移行されるかを先に確認します。これらを含めた費用が、実際の価格です。

クライアントを変えるとき、サブスクリプション・ルール・設定はどう移す?

クライアントを変えるときは、以前のアプリのキャッシュや証明書を丸ごとコピーしないでください。新しいアプリにサブスクリプションを読み込み、固定した一つのノードで通信を確認してから、自分で管理しているルール、モジュール、スクリプトを一つずつ追加してください。

移行手順

  • 元のサブスクリプションアドレスと、現在利用できるポリシーグループ名を保存する
  • 自分で作成したルール、モジュール、スクリプトを列挙し、不明なキャッシュはコピーしない
  • 新しいアプリケーションの初回テストでは、サブスクリプション、固定ノード、画面ロック、ネットワーク切り替えだけを検証する
  • 高度なルールは一項目ずつ作り直し、追加するたびに接続を一度確認する
  • 新しいアプリケーションが数日間安定してから、以前の設定と証明書を削除する

参考資料