公式ハンドブック · 入門ガイド

Shadowrocketの使い方

情報を追加 → 通信ルーティングを選択 → 接続して確認

iPhone・iPad向けです。まず接続を確認し、その後、日常的に使う設定を一つずつ調整します。プロトコルの詳細やルール全般は、必要に応じて後から確認してください。

App Storeからの入手方法
STEP 01 / INPUT

Add Server:追加または読み込み

サブスクリプションURLと個別のサーバー情報は、別々の入力方法です。手元にある情報に合わせてどちらか一方を選び、重複して追加する必要はありません。

まず手元の情報を確認する

Shadowrocketを開き、Homeに進みます。画面下部のSERVERには選択可能なサーバー項目が表示されます。まだ追加していない場合は、Add Serverを開いてください。サービス提供元から受け取ったサブスクリプションURLは通常、複数の項目を取得するために使います。プロトコル、アドレス、ポート、認証情報が個別に記載されている場合は、手動入力に適しています。URLの長さだけで種類を判断したり、サブスクリプションURLをサーバーのHost欄に入力したりしないでください。

元の情報は安全な場所に保管し、入力時に一項目ずつ照合してください。サブスクリプションURLやPassword、UUIDなどにはアクセス認証情報が含まれることがあります。公開ページに貼り付けたり、全体が見えるスクリーンショットを共有したりしないでください。プロトコルの種類や必須項目が分からない場合は、他のガイドから推測せず、利用中のサービス提供元に確認してください。

方法1:手元のサーバー情報を入力する

  1. HomeでAdd Serverをタップし、まずTypeを開いて、手元の情報に記載されたプロトコルを選択します。例:Shadowsocks、VMess、VLESS、Trojan。Typeによって表示される項目が変わるため、最初に選択してください。
  2. 情報に従ってHostとPortを入力します。Hostにはサーバーのドメイン名またはアドレスを入力し、Webページのパスは付けません。Portには案内されたポート番号を入力し、Webでよく使われるポート番号で代用しないでください。
  3. 選択したプロトコルの認証情報と通信パラメーターを入力します。ShadowsocksではPasswordとMethodを確認します。ほかのプロトコルではUUID、TLS、Server Name、通信方式に関する項目が表示される場合があります。実際に必要な項目だけを入力し、異なるプロトコルの項目を混同しないでください。
  4. 入力内容に前後の空白、改行、誤ってコピーした句読点がないか確認して保存し、Homeに戻ります。SERVERに新しい項目が表示されたら選択してください。これを次のテストに使います。

Add Server画面下部のScan QR Codeでは、手元の情報に含まれるQRコードを読み取れます。読み取り後もTypeと各項目を確認してください。Import from Cloud JSONは特定のJSON形式を読み込むための項目で、あらゆるURLに使える入口ではありません。今回は有効な追加方法を一つ完了すれば十分です。

方法2:手元のサブスクリプションを読み込む

サブスクリプションURLがある場合は、Add ServerのTypeでSubscribeを選択し、URL欄にURL全体を貼り付けます。判別しやすいメモを入力して保存してください。Homeに戻ったら、サブスクリプションの取得が完了するまで待ちます。必要に応じて、該当するサブスクリプションの更新操作を行ってください。取得に成功すると、そのサブスクリプションに含まれるサーバー項目が表示されます。項目を一つ選んでテストしてください。サブスクリプションが保存されていても、リモートの内容を取得できたとは限りません。

項目が表示されない場合は、まずURLが完全か、サブスクリプションが有効かを確認してください。設定をすべて作り直す必要はありません。サブスクリプションURLと、ルールに基づく通信振り分けに使う設定ファイルは別のものです。サーバー一覧を読み込んだ後、リクエストがルールに従って処理されるかどうかは、次の手順で確認するGlobal Routingと現在の設定によって決まります。関連する用語は用語集で確認できます。

ShadowrocketのAdd Server公式画面。Type、Host、Port、Password、Methodと画面下部の読み込み項目を表示
App Store公式スクリーンショット:Add Server。Typeによって表示項目が変わります。選択したプロトコルとアプリの現在の画面に従って操作してください。
STEP 02 / ROUTING

Global Routing:リクエストの処理方法を選ぶ

サーバーはプロキシリクエストの接続先を決め、Global Routingはリクエストの処理方法を決めます。それぞれ個別に確認してください。

Homeに戻り、Global Routingをタップして、現在選択されている項目を確認します。初回はサーバーを選んだだけで、すべてのリクエストがそのサーバーを経由すると考えないでください。Config、Proxy、Directの3つのモードを理解したうえで、今回の確認目的に合ったものを選びます。

3つのモードの用途

  • Config:現在有効な設定のルールに従ってリクエストを振り分けます。リクエストによってPROXY、DIRECT、または別のポリシーが適用されます。明確なルールを用意している日常利用に適していますが、結果は設定内容とルールの順序によって変わります。
  • Proxy:クライアントで処理可能なリクエストをプロキシモードで処理します。選択したサーバーで実際の通信ができるか、初めて確認するときに適しています。ただし、すべてのシステム上の制限を回避できるわけではなく、接続先のサービスが必ず利用できることを保証するものでもありません。
  • Direct:リクエストを直接接続で処理し、プロキシ利用時との比較に使います。サーバーを選択した状態でDirectを選んでも、そのサーバーが正常かどうかは確認できません。

追加したサーバーの動作確認だけが目的なら、まずProxyを選んで、その設定を記録してから次の手順に進みます。信頼でき、用途を理解している設定ファイルがある場合はConfigを選べます。確認後は日常利用に適したモードに戻し、一時的なトラブル対処の設定をそのままにしないでください。

Configを使う前に現在の設定を確認する

ルールによる通信振り分けが必要な場合は、画面下部のConfigに進み、使用する設定が選択されていることを確認します。設定の編集画面にはGeneral、Rule、Hosts、URL Rewrite、HTTPS Decryptionなどのセクションがあります。RuleとAdd Ruleはルール管理に使います。使い始めたばかりなら各セクションを編集する必要はなく、初回接続のためにHTTPS Decryptionを有効にする必要もありません。

たとえばDOMAIN-SUFFIX,example.com,PROXYは、ドメインのサフィックスに一致したリクエストにPROXYポリシーを適用する例です。これはルール構文の例であり、そのまま追加する完全な設定ではありません。ルールは通常、上から順に評価されるため、後方の項目が適用されない場合があります。FINALとDIRECTの関係を確認するには、ハンドブックのGlobal Routingの章をご覧ください。今回の動作確認では、サーバー情報とルールを同時に変更しないでください。

ShadowrocketのConfig設定編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
App Store公式スクリーンショット:Configの編集画面。ここでは設定内容を管理します。Global Routingのモード選択はHomeにあります。
STEP 03 / CONNECT

Home:接続スイッチをオンにする

サーバーとモードを確認してから、システムのVPN構成に関する許可を進めます。システムへの許可とサーバー認証は別の手続きです。

Homeに戻り、SERVERで選択中の項目とGlobal Routingをもう一度確認します。読み込み後や画面を戻った際に変わっていないことを確認してから、画面上部の接続スイッチをオンにします。接続前はNot Connectedと表示される場合があります。スイッチをオンにした後、状態が変わるか、オンのまま維持されるかを確認してください。

初回の接続時に、iPhoneまたはiPadでVPN構成の追加を求めるシステム通知が表示される場合があります。これはシステムのネットワーク拡張機能を使って接続を処理するための許可で、アプリの再購入やサービス提供元によるPasswordの確認ではありません。操作したばかりのShadowrocketからの要求であることを確認して許可し、システムの指示に従ってデバイスのパスコードなどで認証してください。認証はシステム画面で行います。デバイスのパスコードをAdd Serverに入力しないでください。

許可したらShadowrocketに戻り、接続状態を確認します。通知を拒否していた場合は、スイッチを再度オンにして、許可を求める通知がもう一度表示されるか確認してください。それでも接続できない場合は、手順5に進み、システムのVPN構成の状態を確認します。スイッチを短時間に何度も切り替えたり、許可手続き中にサーバー情報を編集したりしないでください。原因の切り分けが難しくなります。

接続スイッチがオンのままでも、クライアントの通信処理が開始したことを示すだけで、リモートサーバー、DNS、接続先のWebサイトがすべて正常とは限りません。ここではOn Demandを変更せず、手動接続の状態を保って次の手順に進みます。iPadでは画面の配置が異なる場合がありますが、Homeでサーバー、Global Routing、接続スイッチの順に確認してください。

ShadowrocketのHome公式画面。上部にNot Connectedのスイッチ、下部にGlobal Routing、Connectivity Test、SERVERを表示
App Store公式スクリーンショット:Home。上部のスイッチで接続を操作します。Global Routingとサーバーの選択は個別に確認してください。画像内の状態は、現在の接続状態を示すものではありません。
STEP 04 / CHECK

Connectivity Test:実際のアクセスを確認する

「サーバーのテスト結果」「スイッチがオンのままか」「Webリクエストが成功したか」を分けて確認すると、どの段階まで完了したか判断できます。

まず選択中の項目をテストする

HomeでConnectivity Testを実行し、結果が表示されるまで待ちます。テスト方法と現在のネットワークも記録してください。表示値は選択中のテスト方法で得られた結果であり、固定的な通信品質の順位ではありません。一度タイムアウトしただけで、サーバーが継続的に利用できないとは限りません。

次に実際のリクエストを確認する

ブラウザーで、自分がアクセスできることを確認済みのWebページを開き、更新して新しい内容が表示されるまで待ちます。すでに読み込み済みのページやキャッシュ画像だけで判断しないでください。また、一つのWebサイトに接続できないからといって、すべての通信が失敗しているとは限りません。

テスト結果が表示されてもWebページを開けない場合は、まず現在のGlobal Routingを確認します。Configでは、そのWebページにDIRECTや別のルールが適用され、テストしたサーバーを経由していない場合があります。元の設定を記録したうえで、一時的にProxyに切り替え、同じアドレスを再度開いてみてください。Proxyではアクセスでき、Configでは失敗する場合は、認証情報をすぐに再入力せず、設定とルールを確認します。

次にDataを開き、新しいリクエストを送信したときに通信量の表示が変わるか確認できます。リクエストが行われたかを判断する手掛かりにはなりますが、集計の範囲はサービス提供元の管理画面の使用量と異なる場合があります。数値が増えただけで、接続先の内容が正常に返されたとは判断できません。システムのVPNアイコンも接続状態を示す手掛かりにすぎず、実際のアクセス確認の代わりにはなりません。

現在のネットワークの基準を確認する場合は、まず現在のモードを記録してからDirectに切り替えるか接続をオフにし、同じアドレスを使って比較します。Directでも失敗する場合は、現在のWi-FiでWeb認証が必要か、ネットワークが利用可能か、接続先のサービスに問題がないかを確認してください。比較が終わったら元のモードに戻し、テスト時の設定をそのまま残さないようにします。

STEP 05 / DIAGNOSE

Settings:失敗した段階に応じて対処する

最初に完了しなかった手順まで戻ります。毎回一つの条件だけを変更し、同じテストを繰り返してください。変更を元に戻せるよう記録を残します。

サブスクリプションを保存したのにサーバー項目が表示されない

まずサブスクリプションURLが途中で切れていないか、コピー時に空白が入っていないか、サービス提供元によるURLの再発行が必要でないかを確認してください。Subscribeの項目を保存しても、アプリにURLが記録されるだけです。リモートへのリクエストが失敗した場合や、想定外の内容が返された場合、SERVERに利用可能な項目が表示されないことがあります。現在のネットワークからサブスクリプションを取得できることを確認し、自分のサブスクリプションが有効か調べてください。認証情報を含むURL全体を公開してトラブル対処に使わないでください。

サーバー項目は表示されるがテストに失敗する

手動で追加した項目は、まずType、Host、Port、認証情報を確認し、TLSや通信パラメーターが元の情報と一致しているか調べます。サブスクリプションから読み込んだ項目は、まず更新してから、選択中の項目が有効か確認してください。SettingsでTest Methodを確認し、現在のテストが実際のリクエストに依存するかを把握します。テスト方法が異なる結果を単純に比較することはできません。Wi-FiとCellularを切り替えて結果が変わる場合は、その違いをネットワーク層の手掛かりとして記録し、すべての項目を同時に変更しないでください。

スイッチはオンになるがWebページを読み込めない

まず手順4に戻り、ProxyとConfigの結果を比較します。Configだけで失敗する場合は、現在の設定とルールを確認してください。どちらのモードでも失敗し、サーバーテストには応答がある場合は、DNSの名前解決、接続先アドレス、TLS、通信設定を確認します。デバイスの日付と時刻が大きくずれていると、安全な接続に影響することもあります。DNSは変更を重ねればよいわけではありません。まず現在の値を保存し、一度に一項目だけ変更して、同じ接続先を再テストしてください。詳しくはFAQの通信ルールとトラブル対処をご覧ください。

接続を切っても再接続する、またはネットワークを切り替えると動作が変わる

SettingsでOn Demandを確認してください。設定した条件に応じて接続が開始するため、「手動で接続を切った後、条件によって再接続した」ということが起こり得ます。初回のトラブル対処では、現在のOn Demand設定を記録し、関連する自動接続条件を一時的に無効にして、手動スイッチで再テストします。基本的な接続が安定したら設定を戻し、条件を一つずつ確認してください。自動接続を、サーバー情報が保存されていない状態と誤認しないようにします。

必要最小限のトラブル記録を残す

SettingsのDiagnosticsは、さらに詳しく調べる際に利用できます。Proxy、TCP、UDPなどの項目はネットワーク動作に関わるため、初回接続のために一つずつ変更する必要はありません。サポートを求める際は、どの手順で失敗したか、現在のモード、Wi-FiかCellularか、テスト方法、エラーの文面を記録してください。診断情報を共有する前に、サブスクリプションURL、Password、UUIDなど、個人や契約を特定できる認証情報を削除してください。設定全体をそのまま公開しないでください。

アプリの再インストールは、最初に試す方法ではありません。元の設定や原因を探る手掛かりが失われる可能性がある一方、リモートサービスの状態は変わらないためです。まず自分の設定と元のサーバー情報を保存し、失敗した段階ごとに確認してください。サブスクリプションの管理、ルールの順序、各種設定の詳しい説明は、Shadowrocketのハンドブックをご覧ください。

ShadowrocketのSettings公式画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
App Store公式スクリーンショット:Settings。まずTest MethodとOn Demandの影響を確認し、実際の症状に応じてほかの設定を調べてください。

完了後:利用可能な状態を保存する

接続を確認できたら、選択中のサーバー、Global Routingのモード、現在の設定を記録します。テストのために一時変更した項目を元の状態に戻してから、日常利用に必要なルールやOn Demandを一つずつ設定してください。サーバーのサブスクリプションと設定ファイルは別々に管理します。どちらかを更新した後も、実際のリクエストを再確認してください。

次に問題が起きたときは、すべての設定をリセットする前に、「読み込みに成功したか」「スイッチがオンのままか」「テスト結果と実際のアクセスが一致するか」を確認すると、原因を特定しやすくなります。