公式ガイド / iPhone・iPadの使い方

Shadowrocket 使い方ガイド

追加、ルーティング、接続、確認、トラブル対処の順に進めます。まず接続を1つ確認してから、ルールや自動接続の設定を調整すると、変更の影響を把握しやすくなります。

STEP 01 / ADD

Add Server:サーバーの追加とサブスクリプションの読み込み

完了の目安:HomeのSERVERに選択可能なサーバーが表示されている。

Shadowrocketを開いたら、まずHomeを表示し、Add Serverまたは画面上の追加ボタンを探します。情報を準備する際は、サブスクリプションURLと個別サーバー情報を区別してください。サブスクリプションURLを使うと複数のサーバーをまとめて読み込めますが、個別サーバーの場合は各項目を入力します。両者は同じものではありません。サブスクリプションURLをサーバーのHostに入力したり、サーバーアドレスをサブスクリプションURLとして送信したりしないでください。

サブスクリプションがある場合:Subscribeを選択

Add Serverを開き、TypeからSubscribeを選択して、自分のサービス提供元から入手した完全なサブスクリプションURLをURLに入力します。メモが必要な場合は、入手元を識別しやすい名前を付けます。貼り付けた後、URLの前後に空白や改行がないか、文字が抜けていないかを確認して保存し、読み込みの完了を待ちます。URLに含まれる認証情報は機密情報です。公開の掲示板に投稿したり、共有用のスクリーンショットに写したりしないでください。

保存後、Homeに戻り、該当するグループにサーバーが表示されているか確認します。サブスクリプション名だけが表示され、サーバー項目がない場合は、読み込みが成功したとはいえません。画面のメッセージを確認し、内容が正常に取得できたか確かめてください。既存の項目を更新する場合は、そのサブスクリプショングループの更新操作を使い、完了後に項目の変化を確認します。サブスクリプションの更新とアプリのアップデートは別の操作です。前者は自分のサブスクリプション内容を読み込み、後者はApp Storeから行います。

手動で追加:Typeに応じて項目を確認

個別サーバーの情報がある場合は、Typeで指定されたプロトコルを選び、Host、Port、認証情報を入力します。スクリーンショットにはPasswordやMethodを含むフォームの例が表示されています。プロトコルによって項目が異なる場合があるため、画像にないパラメータを追加しないでください。通常、アドレスにはサービス提供元から指定されたドメイン名またはIPアドレスを、ポートには指定された数値を入力します。暗号化方式と認証情報も、提供された内容と一つずつ照合してください。

対応するQRコードがある場合は、Scan QR Codeで読み取り、認識されたプロトコルと項目を確認します。Import from Cloud JSONは別の読み込み方法であり、任意のテキストを読み込めるという意味ではありません。保存前に情報の形式と読み込み方法が合っているか確認してください。項目の意味がわからない場合は、まず用語集を参照してください。プロトコルパラメータの詳しい説明はプロトコルリファレンスをご覧ください。推測で値を入力して接続を試さないでください。

追加が完了したら、SERVERでテストする項目を選び、選択マークが目的のサーバーの横にあることを確認します。この段階では他のサーバーをまとめて変更したり、すぐにOn Demandを有効にしたりせず、次の手順でリクエストのルーティング方式を決めます。

ShadowrocketのAdd Server画面。Type、Host、Port、Password、Methodおよび読み込み方法を表示
Add Server:フォーム項目はTypeによって変わります。スクリーンショットの項目をすべてのプロトコルに当てはめないでください。
STEP 02 / ROUTING

Global Routing:ルーティング方式を選択

完了の目安:現在のルーティング方式と、構成ファイルのルールが使われているかを把握している。

Homeに戻り、Global Routingを開きます。ここでは接続リクエスト全体の処理方法を選びます。サーバーのプロトコルを選択する場所ではありません。3つの方式を確認してください:Config(設定)/Proxy(プロキシ)/Direct(直接接続)。サイトごとに構成内のルールで処理を分ける場合はConfigを選択します。選択中のサーバーでプロキシ通信ができるか確認する場合は、一時的にProxyを使えます。Directは直接接続を行う方式で、選択中のプロキシサーバーを使用するという意味ではありません。

Configを使う場合は、現在有効な構成ファイルを確認してください。Config画面を開き、実際に使用している構成を確認してから、その中のRuleを確認します。サブスクリプションを読み込んだだけでは、必要なルールが設定されたことにはなりません。サブスクリプション内のサーバー項目と構成ファイルは役割が異なります。前者は接続先と接続パラメータを提供し、後者はリクエストに適用するポリシーを決めます。

まず既存のRuleを確認してから変更する

公式スクリーンショットの構成編集画面には、General、Rule、HostsなどのセクションとAdd Ruleがあります。使い始めは、まずRuleを確認してください。すべてのセクションを一度に変更する必要はありません。特にURL RewriteとHTTPS Decryptionは基本的な接続に必要な手順ではありません。接続スイッチをオンにするためだけに、むやみに有効化したり内容を追加したりしないでください。

ルールは上から順に照合されるため、判定結果を確認するときはルールの順番と最終的なポリシーの両方を見ます。次の2行は、「指定したドメインはプロキシ経由、それ以外は直接接続」にする書き方の例です。example.comは説明用のドメインで、実際にアクセスするサービスのアドレスではありません。すでに適切な構成がある場合は、まず現在の設定を保ったまま確認し、例を既存のルールにそのまま上書きしないでください。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

DOMAIN-SUFFIXはドメインのサフィックスに一致し、PROXYはプロキシポリシーを指定します。FINALは、それ以前のルールに一致しなかった場合のフォールバックです。Configを選択していても、対象がDIRECTに一致した場合、画面上部の接続スイッチがオンだからといって自動的にプロキシ経由にはなりません。トラブルの切り分けでは、一時的にProxyに切り替えて同じ対象への動作を比較できます。比較後は元のルーティング方式に戻し、テスト用の設定をそのまま使い続けないようにしてください。

この手順では、適切なルーティング方式を選び、現在の構成元を把握できれば十分です。ルールキーワードについて詳しくは用語集を、プロトコルパラメータ、通信設定、ルーティングルールの違いについてはプロトコルリファレンスをご覧ください。次にHomeへ戻り、選択したサーバーに接続します。

ShadowrocketのConfig編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
Config:構成ファイルを編集する画面です。Global Routingの選択はHomeから行います。
STEP 03 / CONNECT

Home:接続とシステムの許可

完了の目安:システムでVPN構成が許可され、アプリの接続状態が想定どおりになっている。

Homeに戻ったら、まずSERVERで現在選択されているサーバーを確認し、次にGlobal Routingが先ほど選んだ方式になっているか確認します。サーバーを追加しただけでは選択されたことになりません。複数のグループがある場合は、リストの最上部に表示された名前だけで判断せず、選択マークで対象を確認してください。この2点を確認してから、画面上部の接続スイッチをオンにします。

初回接続時、システムからVPN構成の追加を求められる場合があります。操作元が、いま開いたShadowrocketであることを確認してから、システムの案内に従って許可し、デバイスのパスコード、Face ID、またはTouch IDで認証します。この操作により、アプリがシステムのネットワーク拡張機能を通じて通信を処理できるようになります。サーバー認証の代わりになるものではなく、サブスクリプションやパスワードが自動で補われることもありません。システムの許可が完了しただけで、接続先のサーバーも検証済みだと判断しないでください。

許可を拒否した場合:確認画面を再表示

以前システムの確認画面をキャンセルした場合は、アプリに戻って接続を再度オンにし、システムから確認を求められるか見てください。それでも有効にできない場合は、システム設定のVPN関連画面で構成の状態を確認します。設定場所はシステムのバージョンによって異なる場合があるため、システム設定の検索を利用してください。構成の用途がわからない場合は、どのアプリに属するか確認してから操作し、他の用途で使用中の構成を削除しないようにしてください。

許可後にHomeへ戻り、画面上部がNot Connectedのままになっていないか、スイッチがオンの状態を保っているか確認します。スイッチがすぐにオフに戻る場合は、短時間に何度も押さず、まずアプリのエラー表示やシステムの許可に関する問題を確認してください。操作後は状態が落ち着くまで待ち、エラーメッセージの重要な文言を控えておくと、失敗した手順を特定しやすくなります。

スクリーンショットのHomeには、Global Routing、Connectivity Test、SERVERが表示されており、各項目の場所を確認できます。状態が切り替わったことは、端末上の接続処理が開始されたことを示すだけです。すべてのサイトにアクセスできることや、リクエストに想定どおりのルールが適用されたことを保証するものではありません。この手順の後にテストを実行し、対象に実際にアクセスして、設定が目的に合っているか確認します。

初回の確認中は端末のネットワーク環境をなるべく安定させ、Wi-Fi、モバイル通信、複数のサーバーを同時に切り替えないでください。ネットワークを切り替えた後に問題が起きた場合は、切り替え前後の状態を記録してから、1つずつ再試行します。On Demandは条件に応じて接続を開始する機能です。手動での接続、切断、再接続を確認してから、必要に応じて設定することをおすすめします。

ShadowrocketのHome画面。Not Connectedのスイッチ、Global Routing、Connectivity Test、SERVER、Add Serverを表示
Home:サーバーとGlobal Routingを確認してから、画面上部の接続スイッチをオンにします。
STEP 04 / VERIFY

Connectivity Test:動作を確認

完了の目安:テスト結果、実際のアクセス、ルールのポリシーが一致して説明できる。

HomeでConnectivity Testを実行し、接続状況を確認します。テストの前にサーバーとルーティング方式を確認してください。確認しないと、別の接続に対する結果を見てしまう可能性があります。テスト方法によって確認対象が異なるため、結果はSettingsのTest Methodと合わせて判断します。1回のテストに成功しても、すべての接続先にアクセスできるとは限りません。1回失敗しただけで、サブスクリプション内のすべてのサーバーが使えないと判断しないでください。

続いてブラウザを開き、利用する予定のサイトにアクセスして、新しいリクエストを送信します。読み込み済みのページを眺めるだけではなく、キャッシュされた内容だけで接続の有効性を判断しないでください。古い内容が表示される場合は、ページを再読み込みするか、同じサイトの別ページを開きます。確認する対象は一度に1つに絞り、アクセス時刻とアプリの接続ログを照合しやすくします。

接続状態とルールの結果を分けて確認

Configを使用している場合は、アプリの接続ログから直前のリクエストを探し、対象ドメイン、適用ルール、最終的なポリシーを確認します。プロキシ経由を想定していたのにDIRECTに一致した場合は、ルールの順番と現在有効な構成を優先して確認してください。PROXYに一致しているのにアクセスできない場合は、選択中のサーバーと対象サービスを確認します。ログの表示場所は実際の画面で確認してください。Dataの通信量は通信があったことを示す手掛かりにはなりますが、増加しただけでは特定ドメインに適用されたポリシーはわかりません。

条件を絞るため、同じサーバー、同じ端末ネットワーク、同じ対象を保ったまま、Global RoutingだけをConfigから一時的にProxyへ変更し、新しいリクエストを送信して比較できます。後者でアクセスできる場合は、ルールや構成の違いをさらに確認します。どちらでも失敗する場合は、サーバー情報、認証、対象からの応答を確認してください。比較後は元のルーティング方式に戻します。

直接接続する対象についても確認してください。ルールによる振り分けは、すべてのリクエストをプロキシ経由にするためではなく、種類ごとに想定したポリシーで処理するためのものです。テスト1件、実際のアクセス先1件、対応する接続ログを確認したら、現在使えるサーバーと構成の名前を記録すれば十分です。1回のテスト結果にこだわり、正常に動いている設定を何度も変更する必要はありません。

STEP 05 / CHECK

Settings:問題が起きた手順を確認

完了の目安:問題が起きた手順を説明でき、その箇所に関係する設定だけを変更できる。

問題が起きたら、まず状況を具体的な手順に分類します。サブスクリプションの読み込みに失敗した、サーバーを追加しても接続できない、接続中なのにリクエストが失敗する、一部の対象だけに問題がある、といったケースです。サブスクリプションの削除、構成の変更、DNSの調整、プロトコルパラメータの変更を同時に行わないでください。現在の設定を残して一度に1項目だけ変更し、4つ目の手順を繰り返して確認すれば、どの変更が影響したか判断できます。

サブスクリプションが空、または更新に失敗する

まず端末自体がインターネットに接続できることを確認します。次にサブスクリプションURLが完全か確認してください。特に、コピー時に認証情報が抜けていないか注意します。サブスクリプションが無効になった、または内容が空の場合は、自分のサービス提供元に有効状態と対応形式を確認してください。同じサブスクリプションを何度も追加しても、読み込みエラーが直るとは限りません。識別しにくいグループが増える原因にもなります。更新後は、サブスクリプション名が一覧に残っているかだけでなく、サーバー項目が実際に変わったか確認してください。

スイッチがオンのままにならない

まずシステムでVPN構成が許可されているか確認し、次に有効なサーバー項目が選択されているか確認します。アプリにパラメータエラーが表示される場合は、Add Serverに戻り、元の情報とType、Host、Port、認証情報を照合してください。プロトコルによっては、通信方式やTLS関連の項目もあります。提供された情報に従い、名前が似ているという理由だけで値を置き換えないでください。項目同士の関係を確認するには、プロトコルリファレンスを読んでから設定を変更します。

接続中だが、アクセスが想定どおりにならない

まずGlobal Routingを確認します。Directでは選択中のプロキシサーバーを使用しません。Configでは、ルールによって対象が直接接続または拒否のポリシーに振り分けられる場合があります。ログにREJECTと表示された場合は、意図したブロックなのか、ルールの範囲が広すぎるのか確認してください。すぐにサーバーを変更する必要はありません。一部のドメインだけで失敗する場合は、ドメインの名前解決、ルールの適用、対象からの応答をそれぞれ確認します。1つのページで問題が起きただけで、構成全体をリセットしないでください。

Settingsを開き、Test MethodとDiagnosticsを確認して、利用できる診断情報から失敗した手順を特定します。画面のProxy、TCP、UDPなどはそれぞれ用途があり、まとめて使える「修復スイッチ」ではありません。設定を変更したときの動作がわからない場合は、現在の値を保ち、意味を確認してから試してください。使い始めの段階で、すべての設定を順に変更する必要はありません。

問題を報告する前に再現条件を整理

端末のネットワーク種別、現在のルーティング方式、すべての対象で問題が起きるか、一部だけか、テスト方法、エラーメッセージの重要な文言を記録します。スクリーンショットや診断情報を共有する前に、サブスクリプションURL、サーバーの認証情報、その他の機密情報を隠し、原因の特定に必要な情報だけを残してください。「接続できない」とだけ説明するより、変更前後で同じ対象を比較した結果の方が、原因を判断しやすくなります。

手動接続と実際のアクセスが安定してから、On Demandや細かいルールを検討してください。サブスクリプションの更新、構成の変更、ルーティング方式の変更後も、「項目を確認 → 方式を確認 → 接続 → リクエストを検証」の順で確認できます。画面に表示される用語は用語集をご覧ください。購入、再インストール、購入済みアプリの復元についてはApp Storeでの購入済みアプリの復元方法をご確認ください。接続パラメータのトラブル対処とは分けて確認します。

ShadowrocketのSettings画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
Settings:まずTest MethodとDiagnosticsを確認し、具体的な症状に関係する項目を調べます。
App Storeでダウンロード