Official Manual / Getting Started

Shadowrocketの使い方

サブスクリプションの追加 → Global Routing → 接続許可 → リクエストの確認 → 問題の切り分け。

このガイドでは、主にiPhoneとiPadでの初期設定を説明します。まず接続を1つ確認してから、複雑なルールに進みましょう。初回起動時にすべての設定を変更する必要はありません。公式スクリーンショットは画面や項目を見分けるためのものです。アプリの画面構成は変更される場合があるため、操作時は端末に表示されている英語の項目名を確認してください。スクリーンショット内のサーバー情報をそのまま使ったり、表示されている設定を必須項目とみなしたりしないでください。

01 · Add Server:追加・インポート

Shadowrocketを開き、HomeのSERVER欄でAdd Serverを選ぶか、画面上の追加ボタンをタップします。まず、手元の情報が何かを確認してください。サブスクリプションURLは複数のサーバーを取得・管理するためのものです。サーバー情報を1件ずつ登録する場合は、プロトコルと認証項目を個別に入力します。この2つは入力方法が異なるため、サブスクリプションURLをサーバーのHost欄に入力しないでください。

サーバー情報がある場合:まずTypeを選択

Add Serverを開いたら、最初にTypeをタップし、手元の情報に合うプロトコルを選びます。次にHostとPortを入力し、選択したTypeに表示される認証項目を入力してください。たとえばShadowsocksでは、通常PasswordとMethodを確認します。ほかのプロトコルでは必要な項目が異なるため、前のプロトコルと同じ入力方法を使わないでください。

Hostにはサーバーのドメイン名またはアドレス、Portには対応するポート番号を入力し、認証項目は元の設定どおりに入力してください。前後の空白、改行、大文字・小文字にも注意します。TLS、トランスポート方式、サーバー名などの項目も、手元の設定に合わせてください。項目名が似ているからといって推測で設定しないでください。入力後に保存してHomeに戻り、SERVER一覧に項目が追加されたことを確認します。一覧に表示された時点では保存が完了しただけなので、後の手順で接続をテストしてください。

ShadowrocketのAdd Server画面。Type、Host、Port、Password、Methodとインポート項目が表示されています
App Store公式スクリーンショット · Add Server。まずTypeを選び、対応する項目を確認します。

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

サービス提供元からサブスクリプションURLを受け取っている場合は、追加画面でTypeをSubscribeに設定し、URL欄に完全なURLを入力します。自分で識別しやすい名前を入力して保存してください。パスやクエリパラメーターもURLの一部です。ドメイン名だけをコピーしないでください。アカウント管理ページのURLは、通常サブスクリプションのインポートには使えません。保存後にHomeへ戻り、取得が完了したら、対応するグループとサーバー項目を確認します。

QRコードを受け取った場合はScan QR Codeを使います。読み取り後、解析された種類と内容を確認してから保存してください。Import from Cloud JSONは別のインポート方法であり、あらゆるWebページのURLが使えるという意味ではありません。手元のデータ形式に合った方法を選び、インポートを成功させるために関係のない種類へ何度も切り替えないでください。

この手順が完了すると、Homeに少なくとも1つの選択可能なサーバーが表示されます。一覧が空のままの場合は、先にサブスクリプションのインポート失敗を確認してください。サーバー一覧が空の状態での接続失敗を、VPNの許可に関する問題と混同しないようにしましょう。サブスクリプションURLにはアカウント情報が含まれる場合があります。個人用の安全な場所に保存し、公開スクリーンショット、記事、共有テキストには載せないでください。

02 · Global Routing:接続方式を選ぶ

サーバーを保存したらHomeに戻り、Global Routingを開きます。ここではリクエストの処理方法を選びます。SERVER一覧で選択したサーバーとは別の設定です。単一サーバーをテストするのか、既存のルールを使うのかを確認してから、Config、Proxy、Directを選択してください。

Config:現在のルールに従って処理

Configを選ぶと、現在有効な設定とルールに基づいてリクエストの転送先が決まります。Config画面を開き、選択中の設定ファイルを確認してから、ルールの内容を確認してください。公式スクリーンショットにあるGeneral、Rule、Hostsなどは、設定ファイル内の異なるセクションです。一覧にファイルが表示されているだけでは、選択・適用済みとは限りません。

初めて使う場合は、Rule内のルール順、ポリシー名、最後のフォールバック動作を確認してください。たとえば、DOMAIN-SUFFIXはドメインのサフィックスに一致するリクエストを処理し、FINALはそれ以前のルールに一致しなかったリクエストを処理します。ルールの転送先がDIRECTの場合、リクエストは選択中のプロキシサーバーを経由しません。REJECTの場合、リクエストは拒否されます。これらの結果を、サーバーの障害と決めつけないでください。

ShadowrocketのConfig設定編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleが表示されています
App Store公式スクリーンショット · Config。各セクションは設定項目の確認に使います。初回接続時にすべて変更する必要はありません。

ProxyとDirect:テストの目的を区別

Proxyでは、プロキシ対象のリクエストに選択中のプロキシ経路を使います。トラブルの切り分け時に、ルールによる振り分けの影響を減らすのに役立ちます。ただし、実際の動作はアプリの設定とシステムの通信範囲にも左右されます。Directは直接接続に使うため、選択中のサーバーが使えるかどうかの判断には使えません。スイッチが接続状態でも、すべてのリクエストがプロキシを経由するとは限りません。Global Routingと実際に適用されるポリシーを併せて確認してください。

このガイドでは、最初に現在の接続方式を記録することをおすすめします。維持する必要のあるルールがまだない場合は、Proxyでサーバーを1つずつ確認してから、必要に応じてConfigに戻します。すでに使っている設定がある場合は、元のファイルを保持してください。上書きしてから復元を試みないようにしましょう。通常の接続確認のためにHTTPS Decryptionを有効にしたり、証明書を追加設定したりする必要はありません。プロトコル項目や設定方針については、プロトコルガイドをご覧ください。

03 · Home:接続を開始

Homeに戻り、SERVER一覧から使うサーバーをタップして、選択マークが目的の項目に表示されていることを確認します。サブスクリプショングループに複数の項目がある場合、グループ名を実際のサーバーと取り違えないようにしてください。次にGlobal Routingを確認し、前の手順で選んだ方式と一致していることを確かめてから、画面上部のスイッチをオンにします。

初回接続時は、システムからVPN構成の追加を求められる場合があります。システムのダイアログを読み、Shadowrocketが開始した操作であることを確認してから、案内に従って許可し、端末で必要な認証を完了してください。これはシステムがVPN構成を管理するための許可手続きです。サーバーのPassword欄に端末のパスコードを入力するものではありません。許可を取り消すと、Homeに戻っても接続は想定どおりに確立されません。改めて操作し、許可を完了してください。

許可後にアプリへ戻り、画面上部の状態がNot Connectedから変わったか、スイッチがオンのまま維持されるかを確認します。すぐに切断状態へ戻る場合は、表示されたメッセージを記録してトラブル対処へ進み、スイッチを何度も素早く切り替えないでください。接続状態になったら次の確認へ進みます。ただし、ここで確認できるのは接続処理が開始したことだけで、目的のサービスが使えるとは限りません。

ShadowrocketのHome画面。Not Connectedのスイッチ、Global Routing、Connectivity Test、SERVER、Add Serverが表示されています
App Store公式スクリーンショット · Home。サーバー、Global Routing、画面上部のスイッチを順に確認します。

端末で別のVPN接続も動作している場合は、どの構成が現在のシステム接続を管理しているかを確認し、別の接続の状態を今回の結果と混同しないようにします。テスト中はネットワーク環境を安定させ、Wi-Fiの切り替え、プロトコル項目の変更、サーバーの変更を同時に行わないでください。初回確認が終わるまでは、On Demandの既存設定を維持します。自動接続の条件は、手動接続が正常だと確認してから個別に設定してください。詳しくはOn Demandの説明をご覧ください。

04 · Connectivity Test:動作を確認

スイッチがオンのままになったら、HomeでConnectivity Testを実行して結果を確認します。まずテスト方法を確認してから、結果を判断してください。テスト方法によって確認するネットワーク層や対象は異なります。遅延が表示されても、認証、TLS、対象サービスへのすべてのリクエストが成功したとは限りません。反対に、1回のタイムアウトはテスト対象、通信環境、テスト方法が原因の場合もあります。すぐに設定全体を削除しないでください。

次に、実際に使うアプリやページを開き、ページを再読み込みするなど、明確な操作を1つ行います。キャッシュ済みの内容だけを見ないでください。また、複数のページを一度に開くと、失敗したリクエストと記録を照合しにくくなります。Configを使っている場合は、対象に適用されるポリシーを確認し、アプリで利用できる接続記録と実際の転送先を照らし合わせてください。ルールによって対象がDIRECTに転送されている場合、読み込みに成功してもプロキシ経路が正常だとは証明できません。

Data:通信量の変化を確認

アプリのData関連画面を開き、テスト前後のアップロード・ダウンロード量を確認します。記録時刻と照らし合わせ、新しいリクエストがあったかを確認してください。通信量の変化は、クライアントがデータを処理しているかを判断する手がかりになりますが、特定のページが正常に読み込まれた証明ではありません。バックグラウンドアプリ、再試行、その他のリクエストも統計に含まれる場合があります。累計通信量を、現在のサービス提供元の残り容量と同一視しないでください。集計範囲や課金基準が異なる場合があります。

確認は、サーバーと接続方式を記録し、Connectivity Testを実行し、実際の対象にアクセスし、該当する通信量と接続記録を見て、最後に結果を記録する順で行います。特定の対象だけ失敗し、ほかは正常な場合は、すべてのサブスクリプションを再インポートするのではなく、その対象に適用されるルール、DNS、サービスの状態を確認してください。すべての対象で失敗する場合は、サーバー設定と基本的なネットワーク接続を確認します。

05 · Settings:よくある問題

トラブル対処では、まずどの段階で失敗したかを切り分けます。サーバーが一覧にない場合はインポートの問題、スイッチがオンのままにならない場合は接続またはシステム構成の問題です。接続済みでもリクエストに失敗する場合は、サーバー、DNS、ルールによる振り分けを確認します。変更を始める前に、失敗時のネットワーク、サーバー、Global Routing、表示されたメッセージを記録してください。変更は一度に1項目にし、変更後は4番目の手順を繰り返して効果を確認します。

Subscribe:インポートに失敗する、一覧が空

まず、通常のネットワーク接続で端末がインターネットに接続できることを確認します。次に、サブスクリプションURLが完全か、余分な空白が含まれていないか、コピーした内容が正しいインポート用URLかを確認してください。ログインページ、エラーテキスト、空の内容が返された場合、サーバーのTypeを変更しても解決しません。利用中のサービス提供元の設定案内で、URLの状態、対応形式、アカウントの有効性を確認してください。サブスクリプションURL全体が写ったエラー画面を公開しないでください。

古い項目が残っていても、直前の更新が成功したとは限りません。今回の取得結果を確認し、グループ内の実際の項目を確認してください。インポートに失敗した場合は、唯一使えるサブスクリプションをすぐに削除しないでください。比較できる状態を保つため、現在の状態を残して原因を確認します。

ShadowrocketのSettings画面。Test Method、On Demand、Diagnostics、Proxy、TCP、UDPなどの設定項目が表示されています
App Store公式スクリーンショット · Settings。失敗した段階に応じて項目を確認し、すべてを一度に変更しないでください。

サブスクリプションの更新:更新後に選び直す

既存のサブスクリプションを更新するには、Homeで該当するグループを見つけ、そのグループの更新操作を実行します。結果が返るまで待ってからサーバー一覧を確認してください。更新によって項目名、件数、設定値が変わる場合があります。更新後は、以前と同じサーバーが選択されていると決めつけず、選択状態を確認してください。サービス提供元がサブスクリプションURLを変更した場合は、案内に従って登録済みURLを変更します。古いURLを繰り返し更新しても、新しい内容は取得できません。

サブスクリプションから生成されたサーバー設定を手動で変更する前に、次回更新で変更内容が上書きされる可能性を考慮してください。項目を確認する必要がある場合は、元の値と変更理由を記録してからテストし、終了後に元に戻します。または、影響を理解したうえで個別のテスト項目として保存してください。サブスクリプションはサーバー情報の管理に使い、Configは設定とルールの管理に使います。サブスクリプションの更新に成功しても、Configのルールが更新されたとは限りません。

サーバー接続:遅延だけでなく項目ごとに確認

一覧に問題がないのに接続できない場合は、Add Serverに戻って対象の項目を開き、Type、Host、Port、認証項目、トランスポート方式、TLS関連の設定を順に確認します。ドメイン名とサーバー名の項目は用途が異なる場合があります。表示が似ているからといって入れ替えないでください。端末のシステム時刻も正確である必要があります。大きくずれていると証明書の検証に影響する場合があります。元の情報が不完全な場合は、推測で全項目を埋めず、利用中のサービス提供元に確認してください。

ネットワークを切り替えたときに結果が変わる場合は、同じ設定と同じ対象で再テストし、現在のネットワーク経路の違いと設定ミスを切り分けてください。SettingsのTest Methodによって、テスト結果の意味は変わります。Diagnosticsでは、利用可能な診断情報を確認できます。TCPやUDPと表示されているからといって、根拠なく設定をオフにしないでください。使用するプロトコルが該当するトランスポートに依存するかどうかは、設定の説明を確認してください。

DNS:接続済みでもドメインにアクセスできない

DNSはドメイン名をアドレスに変換します。接続が維持されているのに特定のドメインを開けない場合は、問題が安定して再現するかを確認し、利用可能な記録に名前解決のエラーがないか確認してください。Configを使っている場合は、現在の設定ファイルのDNS設定、Hosts項目、対象に適用されるルールを確認します。変更前に元の設定を記録し、説明に従って調整してください。複数の設定を次々に追加すると、現在どの設定が使われているか判断できなくなります。

一部の対象だけ失敗する場合は、ルールがREJECTに一致している、ポリシーの転送先サーバーが利用できない、対象サービス自体に問題があるといった原因も考えられます。Global Routingを一時的にProxyに変更すると、ルールの影響を比較できます。テスト後は元の方式に戻してください。Proxyでは成功しConfigでは失敗する場合は、すべてのルールを削除するのではなく、設定とルールによる振り分けを優先して確認します。プロトコルの詳しい設定についてはShadowrocketのプロトコルガイドをご覧ください。このページでは初期設定に必要な確認手順を説明しています。

確認後:通常の設定に戻す

実際の対象にアクセスできることを確認したら、普段使うGlobal Routingに戻し、もう一度テストします。テスト中にOn Demandをオフにした場合やTest Methodを変更した場合は、最終的な設定もそれぞれ確認してください。接続を停止するにはHomeに戻り、画面上部のスイッチをオフにして状態の変化を確認します。その後、自動的に接続される場合は、手動切断を繰り返すのではなくOn Demandの条件を確認してください。

初期設定の完了は、設定項目の数では決まりません。サーバー情報が正しく、現在の設定が明確で、接続許可が完了し、対象へのリクエストと適用ポリシーが一致していることが目安です。簡単な確認記録を残しておけば十分です。パスワード、完全なサブスクリプションURL、その他の認証情報は記載しないでください。次に問題が起きたときは、最後に成功した状態と今回の変更点から確認すると、すべての項目を入力し直すより原因を特定しやすくなります。