Shadowrocket はじめに
既存の設定から始めます。サーバーまたはサブスクリプションを追加し、ルーティング方法を選んで接続・確認します。このページではiPhone・iPadでの初回操作に絞り、順番に確認します。
スクリーンショットは画面や項目を確認するためのものです。例の値がご自身の設定と一致する必要はありません。アプリで利用できる項目はTypeや設定によって異なるため、現在の画面表示をご確認ください。準備中にサブスクリプションURL全体、パスワード、キーを公開ページに投稿しないでください。
Add Server:追加と読み込み
どちらか一方の方法を選べば十分です。サブスクリプションURLから複数のサーバー情報を取得する方法と、個別のサーバー情報をプロトコルに合わせて入力する方法があります。
サブスクリプションURLがある場合:Subscribeを選択
ShadowrocketのHomeを開き、Add Serverを選択します。TypeをタップしてSubscribeを選び、サブスクリプションURL全体を該当するURL欄に貼り付けます。自分で識別しやすいメモを入力して保存してください。必要なのはサブスクリプションの内容を取得できるURLです。サービスプロバイダーのログインページや案内ページではありません。URL末尾のパラメーターが認証に使われている場合があります。コピー時に削除せず、引用符、空白、改行も追加しないでください。
保存後、Homeに戻り、SERVERにサブスクリプションのグループとサーバー項目が表示されているか確認します。リクエスト失敗の表示が出る、またはグループだけで項目が表示されない場合は、接続に進まないでください。URLが有効か、内容が認識可能な形式か、現在のネットワークでサブスクリプションの内容を取得できるかを確認します。サブスクリプションの取得とサーバーへの接続は別の段階です。保存できても、すべてのサーバーに接続できるとは限りません。
サブスクリプションを更新する際は、該当するグループの更新操作を使い、更新後に選択中の項目を確認してください。リモートの内容が変更され、項目名が変わったり、古い項目が削除されたりすることがあります。以前選択していたサーバーが残っているか確認してください。項目を見分けにくくしないため、初回は同じURLを何度も読み込む必要はありません。まず一つのグループを確認してから、ほかの設定を管理しましょう。
個別のサーバー情報がある場合:まずTypeを確認
サブスクリプションURLではなく、アドレス、ポート、認証情報を受け取った場合は、Add ServerのTypeで実際のサーバーに合うプロトコルを選択します。次にHost、Port、およびプロトコルで必要なPassword、Methodなどの認証情報を入力します。スクリーンショットは一例です。すべてのプロトコルに同じ項目を入力するわけではありません。Typeを間違えると、アドレスとパスワードが正しくても接続できないことがあります。
Hostにはサーバーから指定されたホスト名またはアドレスを入力し、Portには対応するポート番号を指定します。完全なWebページのURLをHostに入力しないでください。Passwordやキーは大文字と小文字を区別することが多いため、貼り付けた後に前後の空白がないか確認します。Methodは該当するプロトコルで必要な場合に、提供された情報どおりに選択してください。名称が似ていることを理由に推測しないでください。TLS、SNI、トランスポート方式などの追加項目も、元の設定に合わせます。内容がわからない項目は用語早見表で確認し、プロトコルパラメーターの設計についてはプロトコル詳解をご覧ください。
対応するQRコードがある場合は、Scan QR Codeを使い、システムの案内に従ってカメラへのアクセスを許可します。Import from Cloud JSONは別の入力方法です。通常のサブスクリプションURLを、対応するJSONのURLとして安易に使わないでください。いずれの方法でも、保存後はHomeに戻り、項目名と種類が想定どおりか確認します。サーバーがリストに表示されてから次の手順に進みます。これは情報が保存された状態であり、接続確認が済んだ状態ではありません。
Global Routing:ルーティング方式を選択
サーバー項目で「接続先」を指定し、Global Routingで「リクエストの処理方法」を決めます。Configでは、設定ファイル内のルールも判定に使われます。
Homeに戻り、Global Routingをタップして現在選択されている項目を確認します。はじめに区別しておきたいのは、Config(設定)/Proxy(プロキシ)/Direct(直接接続)の3つです。接続スイッチの状態だけで、リクエストがどの経路を通ったかを判断しないでください。方式によって、同じサーバーを選んでいてもアクセス時の動作が異なる場合があります。
Config(設定):現在のルールに従って処理
Configを選ぶと、現在の設定ファイルに含まれるルールに基づいてリクエストが処理されます。Configを開き、使用する設定ファイルが選択されていることを確認し、Ruleに用途に合ったルールがあるか確認してください。設定ファイルにはルールだけでなくDNSなどの設定が含まれることもあります。サーバーサブスクリプションの読み込みと、ルール設定の選択は別の操作です。サブスクリプションを持っていても、自分に適したルール一式が揃っているとは限りません。
スクリーンショットにあるGeneral、Rule、Hosts、URL Rewrite、HTTPS Decryptionは、設定編集画面の各セクションです。初回接続時に一つずつ有効化したり変更したりする必要はありません。特に、通常の接続を有効にする目的でHTTPS Decryptionをむやみに変更しないでください。基本的な接続に必須の手順ではありません。ルールを確認するだけなら、まずRuleを見て、内容を理解してからAdd Ruleを使います。編集前に元の設定を保存しておくと、必要なときに戻せます。
ルールのキーワードは原文のまま使います。たとえばDOMAIN-SUFFIX,example.com,PROXYは、指定したドメインのサフィックスに一致した場合に、対応する方法で処理することを示します。FINAL,DIRECTは、前のルールに一致しなかった場合のフォールバック処理の一例です。ここに示した記述は構文を確認するためのもので、ご自身の設定をそのまま置き換えることを勧めるものではありません。ルールの順序、処理方法、選択中のサーバーが結果に影響します。見慣れないキーワードは説明を確認し、一行だけコピーして完全な設定ができると考えないでください。
Proxy(プロキシ)とDirect(直接接続):経路を見分ける
Proxyはプロキシ経由でリクエストを処理し、選択したサーバーで実際のアクセスができるかを確認する際に使えます。Directは直接接続で処理し、ローカルネットワークの状態と比較する際に使えます。どちらもルーティング方法であり、新しいサーバーを追加する機能ではありません。また、誤った認証情報を修正するものでもありません。確認が終わったら、テスト用の状態をそのままにせず、実際に使う方式に戻してください。
初回操作では、まず目的を明確にします。信頼できるルール設定があり、ルールに沿って処理したい場合はConfigを選び、現在の設定を確認します。サーバー経由とローカル経由の違いを確認するだけなら、ProxyとDirectで同じアクセスをそれぞれテストします。変更する項目は一度に一つにし、現在の選択を記録してください。サーバー、ルール、DNSを同時に変更すると、どの変更が影響したのか判断しにくくなります。準備ができたらHomeに戻り、接続に進みます。
Home:接続とVPNの許可
サーバーを選び、ルーティング方式を再確認してから、上部のスイッチをオンにします。初回のVPN構成の確認はシステムが表示します。
SERVERで使用する項目を選択
Homeに戻り、SERVERから今回使うサーバーをタップします。選択マークが意図した項目にあることを確認してください。サブスクリプションを更新した直後は、選択中の項目が変わっていないか特に注意して確認します。サーバー名は識別用のラベルにすぎず、アドレス、認証情報、接続先の状態が正しいことを保証しません。初回テストでは一つの項目に固定し、複数の項目を切り替えないようにしましょう。
次に、Global Routingに表示されている現在の方式を確認します。Configを使う場合は、前の手順で設定ファイルを確認したことを確かめてください。ProxyまたはDirectで比較テストを行う場合は、今回の方式を記録しておきます。確認後、Home上部のスイッチをオンにします。未接続の場合、スクリーンショットの上部にはNot Connectedと表示されています。オンにした後は、アプリの接続状態が更新されるまで待ち、スイッチを連続して素早くタップしないでください。
システムの確認を行って許可
初回接続時に、システムからVPN構成の追加を許可するか尋ねられる場合があります。この権限により、Shadowrocketは選択した設定に従ってデバイスのネットワークリクエストを処理できます。Shadowrocketに関する確認画面であることを確かめて許可し、システムの案内に従って認証を完了してください。一時的に拒否またはキャンセルすると、今回の接続を続けられないことがあります。アプリに戻って接続を再度開始し、システムの確認内容を確かめてください。サブスクリプションを読み込み直す必要はありません。
許可を完了しても、サーバーサービスを購入したことや、サーバーの動作が検証されたことにはなりません。システムにVPNの状態が表示されても、関連する接続または構成が動作中であることを示すだけで、すべてのページにアクセスできるとは限りません。以前ほかのVPN構成を使っていた場合は、まだ動作中の構成やシステム管理上の制限がないか確認してください。用途がわからない場合は、職場や学校の環境で管理されている項目を削除しないでください。
状態が安定してからアクセスを開始
Homeに戻り、上部の接続状態が安定しているか確認します。スイッチがすぐに戻る、接続を繰り返す、エラーが表示される場合は、その内容を控え、最後の「問題の切り分け」に進んでください。変更を重ねないでください。状態が安定していれば、まずConnectivity Testを実行し、その後、普段使う対象ページを開きます。iPadでも同じ順序で操作します。コントロールの位置は現在のアプリ画面に従いますが、主要な画面名は共通です。
初回接続前は、On Demandを現在の状態が明確で制御しやすい設定に保ち、条件を追加するのは後にしましょう。手動接続、切断、確認を再現できるようになってから、自動接続の条件を確認します。これにより、接続が自動で再開した場合に、手動操作によるものかOn Demandによるものかを区別しやすくなり、切り分け時の要因を減らせます。
Connectivity Test:動作を確認
「設定の保存」「接続の確立」「対象へのアクセス」「ルールに沿った経路」を分けて確認し、一つの状態だけですべてを判断しないでください。
テスト後、同じ対象にアクセス
HomeでConnectivity Testをタップし、結果が表示されるまで待ちます。テスト結果はSettingsのTest Methodと合わせて確認してください。方法によって確認する段階が異なり、応答時間は実際のダウンロード速度を示すものではありません。あるテストに応答があっても、すべてのアプリやWebサイトが使えるとは限りません。テストが失敗しても、方法を考慮せずサーバーが完全に使えないと判断することはできません。結果を記録してから、実際にアクセスを試します。
ブラウザーを開き、普段利用するページにアクセスして、タイトルや古い内容が表示されるだけでなく、ページ全体が読み込まれるか確認します。必要に応じて再読み込みし、キャッシュを今回の接続成功と取り違えないようにしてください。ブラウザーでは正常で特定のアプリだけ問題が起きる場合は、そのアプリだけで発生するか、リクエストの再実行が必要か、ブラウザーと同じドメインにアクセスしているかを確認します。
4段階の状況を記録
| 確認する段階 | 確認できること | そこからは判断できないこと |
|---|---|---|
| 設定を保存済み | SERVERに想定した項目がある | サーバーが現在必ず使えること |
| 接続を確立済み | Homeの接続状態が安定している | すべての対象に必ずアクセスできること |
| テストに応答がある | Connectivity Testの結果が表示された | 実際の帯域幅やすべてのサービスの動作 |
| 実際のアクセスが完了 | 対象の内容が完全に読み込まれた | リクエストが必ず想定したルールに一致したこと |
アクセスできることだけでなくルールも確認する場合は、利用可能な接続ログや診断情報を確認し、対象リクエストに適用されたルールと処理方法を照合してください。Configでは、ページが正常に開いてもDIRECT経由の場合とPROXY経由の場合があります。ページの見た目だけでは区別できません。確認する際は対象を一つに絞り、多数のページを同時に開いてログを判別しにくくしないでください。
比較テストでは、対象とサーバーを固定し、Global Routingまたは確認したい要素の一つだけを変更してください。DirectでアクセスできてProxyで失敗する場合は、プロキシ経路とサーバー情報を優先して確認します。Proxyでは正常でConfigでは問題が起きる場合は、現在の設定ファイルにあるルールとDNSを重点的に確認してください。確認後は想定する方式に戻し、以後の変更と比較できるよう、検証済みの設定を一つ保存しておきます。
Settings:よくある問題の切り分け
変更する要素は一度に一つだけにします。まずどの手順で問題が起きたかを特定し、その後で設定を変更するか判断してください。
サブスクリプションの取得に失敗:内容を取得できるか確認
読み込みや更新の段階で失敗する場合は、URL全体が正しいか、サブスクリプションが有効か、現在のネットワークからURLにアクセスできるかを確認します。ログインページ、エラーページ、未対応の内容が返される場合、ブラウザーでURLを開けてもアプリがサブスクリプションとして認識できるとは限りません。URL全体を見知らぬ確認サイトに入力しないでください。サブスクリプションURLにはアクセス認証情報が含まれることがあります。内容の状態を確認する必要がある場合は、すでに利用しているサービスプロバイダーに問い合わせてください。最初から接続設定をすべて変更する必要はありません。
サーバーは表示されるが接続できない:項目と許可を確認
リストに項目があるのに接続できない場合は、まずType、Host、Port、認証情報を確認し、次にプロトコルで必要な追加パラメーターを確認します。Method、TLS、トランスポート方式を手当たり次第に変更しないでください。サブスクリプションから読み込んだ設定の場合は、更新して項目がまだ有効か確認します。手入力した場合は、元の情報と一つずつ照合してください。システムのVPN許可が完了していない場合は、接続手順に戻って許可を確認します。認証エラーの場合はサーバーの項目を見直してください。許可を何度も求める必要はありません。
接続は安定しているのに開けない:DNSとルールを切り分け
接続状態を維持できても対象を開けない場合は、同じ対象でProxyとConfigの結果を比較します。Configだけで問題が起きる場合は、正しい設定ファイルが選ばれているか、Ruleが対象に適切でない処理を指定していないか、DNSで名前解決できるかを確認してください。ドメイン名の解決失敗と接続先への接続失敗は異なる段階です。タイムアウトだけを理由にDNS、ルール、サーバーを同時に変更しないでください。詳しくはDNSとネットワーク用語で確認し、よくある症状はよくある質問とトラブル対処をご覧ください。
一部のページやアプリだけで問題が起きる場合は、漠然と「まったく接続できない」とするより、対象と発生条件を記録すると原因を特定しやすくなります。すべてのテストで問題が起きる場合は、まずローカルネットワークが利用できることを確認し、利用権限のある別のネットワークでも比較してください。ネットワークを切り替えると条件が変わるため、切り替え後に改めて結果を記録し、前のテスト結果と混同しないようにします。
テスト結果が一致しない、または接続が自動で再開する:Settingsを確認
Settingsを開き、まずTest Methodを確認してConnectivity Testの方法を把握し、同じ方法で得られた結果同士を比較します。On Demandにより、条件に応じて接続が開始されることがあります。手動で切断しても接続が再開する場合は、スイッチを何度も操作するのではなく、設定済みのOn Demand条件を確認してください。初回の切り分けでは、まず手動操作で安定して同じ結果を再現できるようにしてから、自動動作を設定します。
さらに詳しく原因を調べる場合は、Diagnosticsで現在利用できる診断項目を確認します。SettingsのProxy、TCP、UDPなどの設定は個々の接続動作に関係しますが、すべてを直す「修復ボタン」ではありません。初期設定または検証済みの設定を保ち、理由がわかっている場合だけ変更してください。変更のたびに同じテストを繰り返します。改善しない場合は元の値に戻し、原因を追えない変更が積み重ならないようにします。
必要な記録を残し、機密情報を隠す
問題を記録する際は、発生した手順、現在の方式、プロトコルの種類、エラーメッセージに加え、「ローカルネットワークが使えるか」「ほかの項目でも同じ問題が起きるか」などを残せば十分です。スクリーンショットや診断情報を共有する前に、サブスクリプションURL全体、認証パラメーター、Password、キー、個人のアドレスを隠してください。相談するために設定ファイル全体を公開しないでください。
初回操作の流れは、情報を保存し、方式を明確にし、許可を完了し、実際のアクセスを確認するところまでです。問題が続く場合は、該当する段階に応じてよくある質問をご覧ください。プロトコルごとのパラメーターを理解したい場合は、プロトコル詳解に進んでください。はじめの段階ですべての詳細設定を変更する必要はありません。