公式ガイド / iPhone・iPad

Shadowrocketのはじめに

既存情報の追加 → Global Routing → 接続 → 確認 → トラブル対処。まず再確認できる接続を確立してから、日常的な通信の振り分けルールを調整します。

STEP 01 / Add Server · Subscribe

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

手元の情報の種類を確認してから、適切な追加方法を選びます。サブスクリプションURL全体は複数のサーバー情報を取得するためのものです。個別のサーバーURLやQRコード、プロトコルとポートを含む情報は、通常、特定のサーバーを追加するために使います。サブスクリプションURLと通常のWebページのURLは別物で、ドメイン名だけでは用途を判断できません。入手元の説明が不明確な場合は、利用中のサービス提供元に確認してください。Typeを何度も変えて推測するのは避けましょう。

手動で追加:HomeからAdd Serverを開く

Homeを開き、SERVER欄のAdd Serverを探すか、画面上の追加ボタンを使います。Add Serverを開いたらTypeをタップし、手元の情報に合ったプロトコルを選んで必要な項目を入力します。スクリーンショットのHost、Port、Password、Methodは、特定のTypeで表示される項目の例です。Typeを切り替えるとフォームも変わる場合があるため、表示例の項目がすべてのプロトコルに共通するとは限りません。

Hostには資料に記載されたサーバーアドレス、Portにはポート番号を入力し、PasswordとMethodは元の情報と一つずつ照合します。コピーした文字列の前後にある空白、全角記号、文字の抜けに注意してください。ポート番号に説明文を含めないようにします。選択したプロトコルに別のパラメーターが必要な場合も、手元の資料にある値を入力してください。保存前にもう一度照合し、Homeに戻ってSERVERに項目が追加されたことを確認します。

サブスクリプションの読み込み:Subscribeを選択

サブスクリプションURLがある場合は、Add ServerのTypeでSubscribeを選び、URL欄にリンク全体を入力して保存し、取得結果を待ちます。URLの前半だけをコピーしないでください。クエリパラメーターがサブスクリプションの識別に使われることもあります。サブスクリプションURLは機密情報です。公開スクリーンショットやログへの投稿、不特定の相手への送信は避けてください。ここでは手持ちのURLを読み込む方法を説明しており、サービスの検索や購入は扱いません。

サブスクリプション項目の保存とサーバー情報の取得は別の結果です。Homeに戻り、該当するグループを展開して、サーバー項目が実際に表示されていることを確認してください。サブスクリプション名だけが表示され、サーバーがない場合は接続に進まず、ネットワークからURLにアクセスできるか、リンク全体が正しいか、サブスクリプションが有効かを確認します。後からサブスクリプションを更新する場合は、その項目の更新操作を使い、一覧が実際に更新されたことを確認してください。更新の代わりに同じ項目を繰り返し追加しないようにしましょう。

手元の情報がQRコードの場合は、Add ServerからScan QR Codeを選び、システムの案内に従ってカメラへのアクセスを許可します。Import from Cloud JSONは対応形式の情報を読み込むためのもので、任意のサブスクリプションURLを読み込む代わりにはなりません。この段階の完了条件は、SERVERに選択可能なサーバーがあり、その情報が手元の資料と一致していることです。SubscribeとConfigの違いは用語解説をご覧ください。

Shadowrocketのサーバー追加画面。Type、Host、Port、Password、Methodの各項目と、QRコードのスキャンおよびCloud JSONの読み込み入口を表示
App Store公式スクリーンショット:Add Server。フォーム項目はTypeによって異なります。入力する値には、手元のサーバー情報を使用してください。

STEP 02 / Global Routing · Config

Global Routingモードを選択

サーバー一覧を準備したらHomeに戻り、Global Routingを開きます。ここではリクエスト全体の処理方法を選択します。サーバーの追加や、誤ったパスワードの修正を行う場所ではありません。3つのモードはConfig/Proxy/Directです。切り替える前に、サーバーの動作確認をするのか、既存のルールを使うのかを明確にしましょう。

モードリクエストの処理方法この操作の用途
Config現在の設定ファイルにあるルールとポリシーに従って処理します。ルールによる振り分けの確認と日常利用。
Proxyクライアントが処理するリクエストをプロキシポリシーに渡します。ルールの影響を一時的に切り分け、選択したサーバーを確認します。
Directリモートプロキシサーバーを経由せず、接続先に直接接続します。直接接続の状態確認や一時的な比較。

既存サーバーを初めて確認する際は、一時的にProxyを選ぶと、設定ファイルの振り分け結果が判断に与える影響を抑えられます。ただし、すべての接続先にアクセスできるとは限らず、サーバー情報の確認に代わるものでもありません。確認後、リクエストごとに異なるポリシーを使う場合はConfigに切り替えます。画面上部の接続状態だけを見て、必ずプロキシ経由で通信していると判断しないでください。Directではリモートサーバーはリクエストを中継しません。

Configを使う前に、現在の設定ファイルを確認

Configを開き、一覧にファイルがあるかだけでなく、現在使用中の設定ファイルを確認します。サブスクリプションには通常サーバー一覧が含まれますが、設定ファイルにはルールなどのパラメーターが含まれます。前者を読み込んでも、個人の用途に合う後者が自動で追加されるわけではありません。設定ファイルを開くとGeneralやRuleなどのセクションを確認できます。スクリーンショットには編集画面とAdd Ruleの入口が表示されています。利用できる設定ファイルがすでにある場合は、初回接続の段階で元の内容を保ち、複数の設定を同時に変更しないようにしましょう。

ルール内のPROXY、DIRECT、REJECTはポリシーのキーワードであり、Global RoutingのProxy、Directとは区別が必要です。たとえば、以下の例はドメインに一致した場合にPROXYを使い、それ以外のリクエストにはDIRECTを使うことを示します。構文を説明するための例であり、このガイドで読み込む完全な設定ファイルではありません。リモートサーバーを経由するかどうかは、現在のモード、実際に一致したルール、ポリシーの設定先によって決まります。ファイルにPROXYがあるというだけでは判断できません。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

ルールの順序に慣れていない場合は、まず後の手順で接続と動作確認を行い、その後ルールと設定のリファレンスをご覧ください。3つのモードの違いを詳しく確認する場合は、ルーティングモードの説明に進みます。この手順で確認するのは、HomeのGlobal Routingが今回のテスト目的に合っていることと、Configで使用する設定ファイルが明確に選ばれていることです。

Shadowrocketの設定ファイル編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryptionの各セクションとAdd Ruleの入口を表示
App Store公式スクリーンショット:Configの設定編集画面。Global RoutingのモードはHomeで選択し、ここでは設定ファイルの内容を確認します。

STEP 03 / Home · SERVER

サーバーを選択して接続スイッチをオンにする

Homeに戻り、SERVERで先ほど読み込んだグループを展開して、今回使用するサーバーを選びます。項目の横にある選択マークを確認し、接続先が意図したサーバーに切り替わっていることを確かめてください。項目を開いて詳細を見る操作と、サーバーを選択する操作は別です。編集画面を開いただけでは、接続先に選ばれたことにはなりません。サーバーが複数ある場合は、選択した名前を控えておくと、後のトラブル対処で同じ情報を確認できます。

Global Routingを確認したら、Home上部の接続スイッチをオンにします。接続前はNot Connectedと表示されることがあります。オンにした後は、状態が変わるか、スイッチがオンのまま維持されるかを確認します。短時間に何度もオン・オフを繰り返すと、前の接続処理中なのか、新しい接続が失敗したのか判断しにくくなります。システムの許可要求が表示された場合は、先に対応してからアプリに戻って結果を確認してください。

初回の許可:VPN構成の追加を許可

初回接続時に、ShadowrocketによるVPN構成の追加を許可するようシステムから求められることがあります。この許可は、クライアントがシステムのネットワーク拡張機能を使って通信を処理するためのもので、購入確認でも、リモートサーバーのテスト成功を示すものでもありません。操作中のShadowrocketからの要求であることを確認し、システムの案内に従って許可してください。デバイスのパスコードや生体認証が必要な場合があります。完了したらHomeに戻り、必要に応じて接続スイッチをもう一度オンにします。

以前に許可を拒否した場合、サブスクリプションを読み込み直すだけでは接続できません。接続を再度開始してシステムの案内を確認してください。デバイスが管理対象である場合、接続が制限されている場合、または別のVPN接続が使用中の場合は、デバイスの設定と適用される管理上の要件も確認します。用途を確認する前に、他のVPN構成を削除しないでください。iPadでは画面のレイアウトがスクリーンショットと異なることがありますが、Home、SERVER、Global Routing、接続スイッチの名称を目印に操作します。

接続スイッチがオンのままでも、確認できるのはローカルの接続状態だけです。サーバー、名前解決、接続先へのアクセスがすべて正常とは限りません。次にConnectivity Testを実行し、実際のWebページでも確認します。スイッチがすぐにオフになる場合は、最後のセクションで許可とローカル接続を確認してください。オンのままなのにアクセスできない場合は、選択したサーバー、現在のモード、具体的な失敗状況を記録します。すぐにアプリを再インストールする必要はありません。

ShadowrocketのHome画面。上部にNot Connectedの接続スイッチがあり、その下にGlobal Routing、Connectivity Test、SERVERグループ、Add Serverを表示
App Store公式スクリーンショット:Home。サーバーの選択、Global Routing、画面上部のスイッチを順に確認してからテストします。

STEP 04 / Connectivity Test・実際のアクセス

テストの応答と実際の通信を確認

接続をオンにしたら、HomeでConnectivity Testをタップし、今回のテストが完了するまで待ちます。結果は使用中のTest Methodに照らして確認してください。方法によってテスト対象や条件が異なる場合があります。応答があっても、任意のWebページ、プロトコル、すべてのアプリが使えるとは限りません。一度のテストで表示された数値を長期的な性能の評価に使うのも避けましょう。このガイドでは、次の確認に進める状態かを判断するためにテストを使います。

次にブラウザーを開き、実際に使う予定があり、正しいURLがわかっているページにアクセスします。さらに、正常に動作している別のページも開いて比較します。ページタイトルやキャッシュされた古い文字が表示されるだけでなく、内容全体を読み込めるか確認してください。特定のアプリだけに問題がある場合は、影響範囲を記録し、接続全体が失敗したと決めつけないでください。接続先サービスの状態、アプリ自体の設定、設定ルールによって結果が異なることがあります。

Configではルールの振り分け先も確認

最終的にConfigを使う場合は、Proxyでのテスト後にConfigへ戻し、同じ接続先を再テストします。モードによって結果が異なる場合は、サーバーのパスワードを変更するより、ルールの一致状況やポリシーの選択を確認しましょう。PROXYを使う想定の接続先と、DIRECTを使う想定の接続先をそれぞれ選び、別々に確認します。一つのページだけで通信の振り分け全体を判断しないでください。テスト対象は、実際に利用しているサービスから選びます。

特定のリクエストにどのポリシーが適用されたか確認するには、Dataで利用できる接続またはリクエストの記録を、現在の設定ファイルと照合します。確認できる項目はアプリ内の画面によって異なります。まず対象とルールが一致しているかを見て、次に最終的なポリシーを確認してください。システムのVPN状態アイコンだけから、通信がリモートサーバーを経由しているとは判断できません。想定したルールに一致しない場合は、ルールの順序、ドメイン条件、フォールバックルールを確認します。詳しい分析はルールのリファレンスをご覧ください。

この手順を終えたとき、次の3点を説明できる状態を目指します。選択中のサーバー、Global Routingのモード、実際にアクセスを確認できた接続先です。テストに成功したら、その設定を動作確認済みの基準として保管します。その後、ネットワークの変更、サブスクリプションの更新、ルールの変更によって動作が変わったときに、一つずつ基準と比較でき、すべての項目を推測し直す必要がありません。

STEP 05 / Settings · Diagnostics

失敗した段階から確認し、一度に変更するのは一項目だけ

トラブル対処は、最初に失敗した段階から始めます。接続スイッチをオフにし、デバイス自体で既知の利用可能なページにアクセスできることを確認してから、Shadowrocketを再度有効にします。公共Wi-Fiなどでネットワークへのログインが必要な場合は、先にログインを済ませてください。ローカルネットワークが使えない状態では、Configの変更、QRコードの読み直し、Test Methodの変更を行っても、根本的な問題は解決しません。

読み込みに失敗したら、URLの取得とサーバー接続を切り分ける

Subscribeでサーバー一覧を取得できない場合は、URL全体を正しくコピーできているか、余分な空白がないか、提供元がアクセス条件を変更していないかを確認します。サブスクリプションの取得失敗と、特定のサーバーへの接続失敗は別の問題です。前者は一覧を取得できておらず、後者は一覧にある項目を利用できない状態です。一覧がすでに表示されている場合も、サブスクリプションの更新後に選択中の項目が無効になっていないか確認してください。比較できる記録を失わないよう、すべての情報を削除してからやり直すのは避けましょう。

テストに失敗したら、元のサーバー情報を確認

Type、Host、Portに加え、選択したプロトコルで必要な認証情報や通信パラメーターを一つずつ照合します。大文字・小文字、暗号化方式、サーバー名などは手元の情報に従い、別のTypeでの入力方法をそのまま流用しないでください。証明書の検証が必要な接続では、デバイスの日付と時刻が正しいことも確認します。トラブル対処のために検証をむやみに無効化すると、問題の原因が見えにくくなります。まずサーバー情報、日時、接続先名が正しいかを確認してください。

一部だけアクセスできない場合は、モードとルールを確認

Proxyでは利用できるのにConfigでは使えない場合、まず現在有効な設定ファイル、接続先に一致するルール、対応するポリシーの接続先を確認します。Directでは接続できてProxyではできない場合、その接続先に直接アクセスできたことしか確認できず、サーバー情報が正しいとは限りません。モードを切り替えて比較するときは同じ接続先を使い、一度に一項目だけ変更してください。そうすることで、変更と結果の関係を確認できます。

Settingsで最初に確認する項目

Settingsを開き、まずTest Methodを確認して、Connectivity Testで使われる方法を把握します。テスト方法を変更した場合、結果を以前のものと同じ条件で直接比較することはできません。On Demandは条件に応じて接続を開始する機能です。手動操作と異なり、オフにした後で再接続するなどの動きがある場合は、関連する条件が設定されているか確認してください。初回のトラブル対処では元の設定を記録し、自動接続の影響を一時的に切り分けます。動作が安定したら、適切な条件に戻してください。

さらに原因を調べる場合は、SettingsのDiagnosticsを使い、現在の問題に関係する内容だけを記録してください。Proxy、TCP、UDPなどの項目は、「すべて有効にすれば直る」という万能スイッチではありません。明確な根拠がない場合は元の設定を維持します。記録を共有する前に、サブスクリプションURL、サーバーの認証情報、個人のリクエスト内容を隠してください。失敗した手順、使用したモード、接続スイッチがオンのままかどうかは説明できますが、接続情報の全体を公開する必要はありません。

サブスクリプションまたはサーバー自体に原因があるとわかった場合は、利用中のサービス提供元に有効性を確認してください。ルールの構文に問題がある場合は、設定ファイルとルールのリファレンスをご覧ください。Settingsの項目名がわからない場合は、用語解説で確認できます。初回接続時に複数の詳細設定を同時に変更するより、まず安定した接続を確立し、その後ルールやOn Demandの条件を段階的に追加するほうが、変更を確認しやすくなります。

ShadowrocketのSettings画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPの各項目を表示
App Store公式スクリーンショット:Settings。トラブル対処では、まずテスト方法と自動接続の条件を確認し、その他の項目は明確な必要性に応じて調整します。

確認完了

動作する設定を保管してから、詳細を調整

SERVERの項目、選択中のサーバー、Global Routing、実際のアクセス結果が一致していることを確認します。日常利用の設定に戻す場合も、改めて動作を確認してください。初回テストの成功だけで、その後の確認を省略しないでください。