OFFICIAL MANUAL / GETTING STARTED

Shadowrocket はじめに

追加、モード選択、接続、確認、トラブルシューティングの5ステップで初回設定を進めます。まず確認可能な接続を確立し、その後、ルールや自動接続の設定を調整します。

以下では主にiPhoneとiPadでの操作を説明します。必要な情報を準備してから、順に進めてください。初回からすべての設定を把握する必要はありません。公式スクリーンショットは画面や項目を確認するためのものです。実際のレイアウトはデバイスやアプリの更新によって異なる場合があるため、現在のクライアントに表示される英語の項目名を基準にしてください。スクリーンショットに写っている項目の組み合わせが、すべてのプロトコルで必要な固定フォームとは限りません。

「サーバー情報」「サブスクリプションURL」「ルール設定ファイル」は、それぞれ別のものとして考えます。サーバー情報は接続に必要なアドレスや認証情報、サブスクリプションはサーバー項目の一括読み込みと更新、Configの設定ファイルは通信の振り分けなどを決めます。サブスクリプションからサーバーを読み込めても、自分に適したルール設定が選択されているとは限りません。

STEP 01 / ADD SERVER

サーバーの追加または既存のサブスクリプションの読み込み

手元にある情報に合った方法で追加し、保存後にSERVERの項目を確認します。

Add Serverに情報を手動入力する

Shadowrocketを開き、HomeのSERVER欄にあるAdd Serverを選びます。画面上部に追加ボタンがあるレイアウトでは、そのボタンから追加画面を開けます。まずTypeをタップし、手元の情報に記載されたプロトコルを選んでから、残りの項目を入力します。Typeによって表示される認証項目や通信オプションが変わるため、見慣れた項目だからという理由だけで選ばないでください。

Hostにはサーバーのホスト名またはIPアドレス、Portにはポート番号を入力します。Password、Methodなどの認証項目が表示されるかどうかは、選択したTypeによって異なります。たとえばShadowsocksでは、MethodとPasswordをサーバーの設定に合わせる必要があります。他のプロトコルも、それぞれ提供された情報と照合してください。共有リンク全体をHostに貼り付けたり、ホスト名のみを受け付ける項目にWebページのパスを追加したりしないでください。

TLS、サーバー名、通信パスなどの情報がある場合は、現在のフォームの対応項目に一つずつ入力します。接続先アドレスと証明書の検証に使う名前は異なる場合があります。見た目をそろえるために書き換えないでください。項目の意味が不明な場合は、利用中のサービスの設定説明を確認してください。値を推測して何度も試したり、接続のために証明書の検証を無効にしたりすることはおすすめしません。

Subscribeからサブスクリプションを読み込む

手元にサブスクリプションURLがある場合は、Add ServerのTypeでSubscribeを選び、URLに完全なアドレスを入力します。見分けやすいメモを付けて保存し、取得が完了するまで待ちます。コピー時はURLの先頭、末尾、クエリパラメーターがすべて含まれているか確認してください。チャットアプリや文書によって空白や改行が挿入されていないか、表示文字列だけをコピーして実際のURLが欠けていないかにも注意します。

サブスクリプションURLにはアクセスに必要な認証情報が含まれることがあるため、パスワードと同様に管理してください。チュートリアルで実際のURLを共有する必要はありません。完全なURLを公開コメント、スクリーンショット、診断記録に載せないでください。読み込み後はHomeに戻り、SERVERグループに目的の項目が表示されているか確認します。サブスクリプション名だけが表示され、サーバーがない場合は、まず更新結果を確認してください。同じものをすぐに何度も追加する必要はありません。

共有リンクまたはQRコードがある場合

単一の共有リンクとサブスクリプションは別の情報です。前者は通常、一つのサーバー情報を示し、後者はまとめて取得・更新できる項目を提供します。クライアントの該当するリンク読み込み機能を使うか、Add ServerでScan QR Codeをタップして自分のQRコードを読み取ります。スキャンする前に、情報の入手元が信頼できることを確認してください。Import from Cloud JSONは、対応するJSON情報を実際に持っている場合に使う機能で、あらゆるリンクを読み込むための汎用入口ではありません。

どの方法で追加した場合も、最後にHomeへ戻り、使用するサーバーを選んで詳細を開き、Type、Host、Portを確認します。項目を選択したことは、次回の接続にその項目が使われるという意味であり、接続可能であることの証明ではありません。続けてGlobal Routingを設定してください。サーバー名や地域のメモだけで実際の接続結果を判断しないでください。プロトコル項目の意味はプロトコル解説をご覧ください。

ShadowrocketのAdd Server公式スクリーンショット。Type、Host、Port、Password、Method、Scan QR Code、Import from Cloud JSONを表示
Add Server:まずTypeを選び、手元の情報に合わせて項目を入力します。

STEP 02 / GLOBAL ROUTING

Global Routingのモードを選ぶ

Config、Proxy、Directによって、リクエストの経路の選択方法が変わります。

サーバーを読み込んだらHomeに戻り、Global Routingをタップして現在の選択を確認します。ここで設定するのは全体のルーティングモードで、サーバーのプロトコル種別ではありません。この項目を切り替えてもサーバーのTypeは変わらず、認証情報の入力ミスも修正されません。初回の動作確認では、現在のモードを把握し、モードの違いを接続トラブルと混同しないようにします。

Config:現在の設定ファイルに従ってルールを適用

Configは、ルールに応じてリクエストを振り分ける場合に適しています。Configを開き、使用する設定ファイルが現在の有効項目として選択されているか確認してください。設定ファイルを読み込んだり、保存したり、編集画面を開いたりしただけでは、有効になっているとは限りません。設定ファイル内のRuleは上から順に照合され、一致したルールに対応するPROXY、DIRECT、REJECTなどのポリシーが適用されます。サーバーを経由しないリクエストがあっても、クライアントが動作していないとは限らず、DIRECTに一致した可能性があります。

現在のルールがどのファイルに由来するかわからない場合は、むやみに大量のルールを追加しないでください。現在有効な設定ファイルを記録し、該当するRuleとその順序を確認します。次の例は「条件に続けてポリシーを指定する」構造を理解するための断片です。完全な設定ファイルではなく、初回接続時に既存のファイルへ貼り付けて置き換える必要もありません。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,DIRECT

この例では、example.comで終わるドメインへのリクエストにPROXYを使い、指定されたローカルネットワークのアドレス範囲にはDIRECTを使い、それ以外のリクエストはFINALで処理します。先に一致したルールによって、後のルールが適用されるかどうかが変わります。スクリーンショットにはGeneral、Hosts、URL Rewrite、HTTPS Decryptionの各セクションも表示されていますが、初回接続時に項目ごとの変更は不要です。HTTPS Decryptionを有効にする必要もありません。

Proxy:振り分け条件を減らして確認する

Proxyでは、このモードで処理される一般的なリクエストを、現在選択しているプロキシ経路に送ります。サーバーが利用可能か一時的に確認する場合に適しています。Configで失敗する対象がProxyでは正常に戻る場合は、ルール、ポリシー、関連する名前解決設定を確認します。Proxyはデバイス上のすべての通信を必ず対象にするものではなく、サーバーの認証情報や稼働状況を自動的に正しくするものでもありません。

Direct:選択したサーバーを経由せず接続する

Directは、サーバーを経由せずにアクセスする場合に使います。接続先が手元のサーバーによる経路を必要とするなら、Directでの成功・失敗だけでそのサーバーを評価することはできません。比較の基準を明確にするには、元のモードを記録し、一時的にProxyで確認してから、実際に使うConfigへ戻します。切り替えるたびに新しいリクエストを実行してください。以前から確立している接続の結果を、新しいモードの結果と取り違えないようにします。

モードを決めたらHomeに戻り、Global Routingに目的の選択肢が表示されていることを確認してから接続をオンにします。設定ファイルのセクションやルール管理については機能と設定をご覧ください。初回操作では、設定をシンプルに保ち、情報の入手元が明確なものを使います。

ShadowrocketのConfig公式設定編集スクリーンショット。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
Config:設定ファイルの内容を確認し、現在有効な設定も別途確認します。

STEP 03 / CONNECT

接続スイッチをオンにしてシステムの許可を行う

初回接続のシステム通知に進む前に、サーバーとモードを確認します。

Homeに戻り、SERVERで選択中の項目を確認してから、Global Routingを確認します。サーバーを編集した場合は変更が保存されているか、Configを切り替えた場合はテストする設定ファイルが実際に有効か確認してください。この2点を確かめてから、Home上部の接続スイッチをオンにします。公式スクリーンショットに表示されているのは未接続のNot Connected状態であり、接続成功を示す画像ではありません。

初回接続時、システムからShadowrocketによるVPN構成の追加を求められることがあります。これはクライアントがシステムのネットワーク接続を確立するために必要な許可で、アプリを再購入するという意味ではありません。通知に表示されたアプリ名と要求内容を読み、直前の接続操作によって表示されたことを確認したうえで、案内に従って許可し、本人確認を完了します。デバイスのパスコードや、システムが対応する認証方法を求められる場合があります。画面の案内に従ってください。

誤ってキャンセルしても、サーバーを何度も削除する必要はありません。Homeに戻って接続を再試行し、システムの確認画面が再び表示されるか確認します。それでも進めない場合は、システム設定にVPN構成があるか、デバイス管理の制限で追加が禁止されていないか確認してください。学校や勤務先の管理下にあるデバイスは、ポリシーによって制限される場合があります。クライアントの項目を繰り返し変更する前に、デバイスの利用ルールを確認してください。

許可が完了したらHomeに戻り、状態が更新されるまで待ちます。システムにVPN接続済みと表示されれば、デバイスからクライアントのネットワーク拡張機能までの接続が開始されたことを示します。ただし、リモートサーバーの認証成功や、すべてのサービスへのアクセスを保証するものではありません。接続スイッチがオンになった状態は次の確認への出発点であり、手順全体の完了ではありません。

スイッチがすぐにオフへ戻る場合は、エラー表示と発生したタイミングを記録します。システムの許可前か、許可後か、それともアクセスを開始したときかを確認してください。この場合は、まず接続の確立に関する問題を解決し、DNS、Rule、サーバー情報を同時に変更しないでください。スイッチがオンのままアクセスできない場合は、その状態を維持し、次の手順でテスト結果と実際のリクエスト結果を切り分けます。

iPadでも、サーバーを選択し、Global Routingを確認し、スイッチをオンにしてシステムの許可を行い、その後アクセスを確認する流れは同じです。画面のレイアウトによってボタンの位置が異なる場合がありますが、Homeや各画面の項目名を目印にしてください。初回接続が安定して成功するまでは、On Demandの設定は後回しにできます。手動接続を繰り返し再現できるようになってから、自動接続の条件を検討します。

ShadowrocketのHome公式スクリーンショット。Not Connectedの接続スイッチ、Global Routing、Connectivity Test、SERVER、Add Serverを表示
Home:Global RoutingとSERVERを確認してから、画面上部の接続スイッチを操作します。

STEP 04 / VERIFY

テスト結果と実際の通信を確認する

一つの数値だけで判断せず、サーバーへの到達性、接続状態、対象へのリクエストをそれぞれ確認します。

まずConnectivity Testを実行する

HomeでConnectivity Testをタップし、結果が返るまで待ちます。このテストは現在のネットワーク環境での初期的な接続確認に使います。測定方法はSettingsのTest Methodなどの設定に左右されます。結果を比較する際は、できるだけ同じネットワークと同じテスト方法を使ってください。条件が異なる場合、数値の変化がサーバーの性能によるものとは限りません。

テストで応答や遅延の数値が表示されても、実際のサービスへのリクエストが完了するとは限りません。遅延が小さくてもファイル転送が速いとは限らず、実際の速度は利用可能な帯域幅、サーバーの負荷、接続先のサービス、通信条件にも左右されます。一度のタイムアウトだけで接続全体が使えないと判断せず、テスト方法とその後の実アクセスを合わせて確認してください。

次に実際のリクエストを行う

接続をオンにしたまま、実際に利用する権限のあるサービスを開き、ページを再読み込みするか、新しい操作を実行します。文字だけのページや明確な再読み込み操作など、結果がわかりやすいものを選び、すでに読み込まれている画像だけで判断しないでください。アプリが古い接続を保持している場合は、そのアクセスを終了してから再度開いて確認し、キャッシュを新しい通信と取り違えないようにします。

Configを使う場合は、対象に想定どおりのポリシーが適用されているかも確認します。Directで正常にアクセスできても、PROXY経路が使えることの証明にはなりません。REJECTに一致した対象が遮断されても、サーバーのエラーとは限りません。クライアントの接続ログで対象、ルール、ポリシーを確認し、過去の記録から現在の結果を推測するのではなく、同じリクエストに対応する記録を探してください。

一度に一つだけ変えて範囲を絞る

実際の結果が予想と異なる場合は、現在のネットワーク、サーバー、Global Routing、アクセス先を記録し、そのうち一つだけを変更します。たとえばサーバーを固定して、同じ対象をConfigとProxyで比較します。またはモードを固定し、利用可能な自分のサーバー2つを切り替えて比較します。一度のテストでネットワークの変更、DNSの変更、サブスクリプションの更新、ルールの置き換えを同時に行うと、復旧しても原因を特定しにくくなります。

確認の目安は、接続状態が想定どおりであること、実際の対象で操作が完了すること、関連するリクエストの経路が現在のモードと一致することです。確認後は、普段使う予定のモードに戻します。遅延の数値をよく見せるために、動作を確認できた設定を何度も変更する必要はありません。まだ失敗する場合は、具体的な症状を確認して次の手順に進んでください。

STEP 05 / TROUBLESHOOT

症状に応じて設定を確認する

まず基本のネットワーク接続を復旧し、読み込み、認証、ルール、接続先サービスのどこで問題が起きているかを絞り込みます。

基本のネットワークに接続できない

まずクライアントの接続をオフにし、現在のWi-Fiまたはモバイル通信で通常のアクセスができるか確認します。公衆Wi-Fiでは先にログインが必要な場合があり、システムでモバイルデータ通信が制限されていることもあります。基本のネットワークが使えないと、サブスクリプションの取得、サーバー接続、対象へのアクセスがすべて失敗する可能性があります。まずこの段階を解決してください。基本的なアクセスを確認できたら、同じサーバーとモードでHomeから再試行します。

Subscribeの更新に失敗する、または項目が表示されない

サブスクリプションURLが完全か、現在も有効か、基本のネットワークからそのURLへアクセスできるか確認します。サブスクリプションURLとアカウント管理ページのURLは同じとは限りません。Webログイン用のURLをコピーしても、サーバー一覧を取得できないことがあります。認証情報を含むURLを公開の検査ページに送信しないでください。必要な場合は、利用中のサービスのサポート窓口にURLの状態と応答形式を確認します。既存の利用可能な項目は残し、更新結果を確認してから重複項目を整理してください。

サーバーは表示されるが、認証またはハンドシェイクに失敗する

該当項目の編集画面を開き、Type、Host、Port、認証情報、通信パラメーターを一つずつ照合します。手入力した場合は、大文字と小文字、前後の空白、似た文字に注意してください。TLSを使用する項目では、デバイスの日付と時刻、指定されたサーバー名も確認します。Passwordだけを変更して他の項目も正しいと判断したり、Methodを無作為に変えたり、証明書の検証を省略して設定の不一致を隠したりしないでください。

Proxyでは使えるが、Configで一部の接続先に失敗する

現在有効なConfig、ルールの順序、適用されたポリシーを優先して確認します。まず失敗した対象のリクエスト記録を見つけ、先に一致したルールによってDIRECT、REJECT、または意図しないポリシーが適用されていないか確認してください。ドメイン名とアドレスの名前解決に違いがある場合は、実際の記録をもとに切り分けます。最初からすべてのDNS設定を置き換えないでください。一つの変更の効果を確認してから必要なものだけを残し、他の試験的な変更は元に戻して、説明できない設定が増えないようにします。

Connectivity Testの結果と実際の使用感が異なる

SettingsでTest Methodを開き、現在の比較目的に合った方法が選ばれているか確認します。テストの接続先と実際のサービスの接続先は異なるため、結果に差が出ることがあります。特定のテストへの応答が遅くても、すべての実際のリクエストが遅いとは限りません。文字のページは表示できるのに特定のサービスだけ失敗する場合は、そのサービスの接続方式、接続先の状態、必要な通信機能に範囲を絞って確認します。SettingsのProxy、TCP、UDPは関連する設定項目ですが、試しにすべて変更する必要はありません。

接続が自動的にオンまたはオフになる

SettingsでOn Demandが設定されているか確認します。On Demandは条件に応じて接続を開始する機能であり、通信を高速化する設定ではありません。初回の切り分けでは、既存の条件を記録して自動接続を一時的に無効にし、Homeから手動で接続して再現可能なテストを行います。テスト後は必要な条件に戻してください。デバイスで別のVPN構成が有効になっている場合は、現在どの構成が実際に使われているかも確認します。接続状態を取り違えないようにしてください。

Diagnosticsの記録では情報を保護する

さらに調査が必要な場合は、SettingsでDiagnostics関連の機能を確認できます。失敗した時刻、ネットワークの種類、選択中のモード、エラーの原文、再現するかどうかを記録すると、「使えない」とだけ説明するより問題を特定しやすくなります。診断情報を共有する前に、サブスクリプションURLに含まれる認証情報、サーバーのパスワード、認証ID、その他の個人情報を確認して隠してください。エラーの種類と必要な状況だけを残し、機密情報を含む設定全体を公開しないでください。

切り分け後は確認手順に戻る

設定を一つ変更するたびに、接続と実際のアクセスをもう一度確認します。問題がサーバー側の状態や既存サブスクリプションの利用権限にある場合、クライアント側の変更でサーバー側の対応を代替することはできません。利用中のサービスのサポート窓口に確認してください。一つの接続先だけで問題が起きる場合は、その接続先自体が一時的に利用できない可能性もあります。設定全体を作り直す必要はありません。

初回設定はここまでで完了です。動作を確認したサーバーを一つ残し、現在のGlobal Routingと使用中のConfigを把握し、接続を手動で停止する方法を確認しておきます。続けて学ぶ場合はプロトコル解説と機能と設定をご覧ください。操作の全体を確認するには、このページの追加と読み込みの手順に戻ります。

ShadowrocketのSettings公式スクリーンショット。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
Settings:問題に応じてTest Method、On Demand、Diagnosticsを確認し、複数の項目を同時に変更しないでください。