Shadowrocket はじめに
サブスクリプションの追加 → Global Routing → 接続許可 → 動作確認
iPhone / iPadを対象に、初回利用の流れに沿って説明します。まず接続経路を確認し、その後でルールや自動接続を調整します。サーバーの整理、サブスクリプションの更新、バックアップについては、サーバー管理マニュアルをご覧ください。
サーバーを追加する/既存のサブスクリプションを読み込む
Shadowrocketを開いてHomeに進みます。画面下部のSERVERグループには、保存済みのサーバーが表示されます。初めて使う場合は、まずAdd Serverを探してください。目的はリストに何かを追加することではなく、手元の情報を適切な種類で保存することです。用意した情報がサブスクリプションリンク、サーバー共有リンク、個別のアドレス・ポート・認証情報のどれにあたるか確認し、それに合った方法を選びます。
サブスクリプションリンクがある場合:Subscribeを使う
Add Serverを開き、TypeでSubscribeを選択して、URL欄にサブスクリプションリンク全体を貼り付けます。見分けやすいメモを入力してもかまいません。画面上の保存操作でHomeに戻り、読み込みが完了するまで待ちます。項目が展開されていない場合は、該当するサブスクリプショングループを確認してください。再読み込みする場合は、その項目の更新操作を使い、同じリンクを何度も追加しないようにします。
リンクは先頭から末尾まで正確にコピーし、末尾のパラメーター、改行、空白に注意してください。ログインページや説明ページのURLをサブスクリプションリンクとして使ったり、不要に見えるパラメーターを自己判断で削除したりしないでください。以下はリンク形式の説明例です。実際の操作では自分の有効なリンクを使い、例をそのままコピーしないでください。
https://example.com/sub?token=xxxx
サーバー情報が個別にある場合:Typeに合わせて手動入力する
個別のサーバー情報がある場合は、Add Serverで該当するTypeを選び、Host、Portと、そのプロトコルで必要な認証項目を入力します。たとえばShadowsocksではPasswordとMethodを確認します。ほかのプロトコルでは項目が異なるため、同じ入力項目を一律に当てはめないでください。アドレス欄には指定されたホスト名またはIPアドレスを、ポート欄にはポート番号だけを入力し、認証情報は変更せずに入力します。
TLSや通信方式の設定が必要な場合は、手元のサーバー情報に基づいて各項目を入力してください。任意項目に見えても、自己判断で変更してはいけません。特に指定されたサーバー名、パス、通信方式はそのまま設定します。情報が不足している場合は、利用中のサービス提供元に確認してください。保存できたことは項目が登録されたことを示すだけで、サーバー側の認証や接続が成功したとは限りません。
QRコードや共有リンクがある場合:内容を確認してから保存する
QRコードがある場合はScan QR Codeを使います。初回スキャンでは、システムの案内に従ってカメラへのアクセスを許可してください。サーバー共有リンク全体がある場合はコピーしてアプリに戻り、読み込み確認が表示されたら、解析された種類、ホスト名、ポートを確認してから確定します。Import from Cloud JSONは該当するJSONデータ用の入口であり、すべてのサブスクリプションリンクをここに入力するものではありません。入口の名前が似ているという理由だけで使い分けを誤らないようにしてください。
Homeに戻り、SERVERに目的の項目が表示されていることを確認して、使うサーバーを選びます。サブスクリプションに複数の項目がある場合は、まず情報が明確なものを1つ選んで動作確認します。最初からすべての名前や順序を整理する必要はありません。複数のサブスクリプションの管理、更新時の上書き、削除前のバックアップについては、サブスクリプションとサーバーの管理をご覧ください。この手順が終わったら、通信をどのモードで処理するか選びます。
Global Routingのモードを選ぶ
サーバーを保存して選択したら、HomeでGlobal Routingを開きます。ここではリクエストに適用するポリシーを選択します。先ほど入力したサーバーアドレスとは別の設定です。サーバー情報が正しくても、モードが目的に合っていないと「接続中なのにアクセス結果が違う」という状態になることがあります。今回はサーバーの動作確認をするのか、設定済みのルールで日常利用するのかを決めてから選択してください。
- Config:現在の設定ファイルにあるルールに従ってリクエストを処理します。Directポリシーに一致したリクエストは直接接続され、Proxyポリシーに一致したリクエストは対応するプロキシ経路を使います。サーバーを選択しただけでは、各リクエストの経路は判断できません。
- Proxy:クライアントが処理するリクエストにProxyポリシーを適用します。一時的にルールの影響を切り分ける場合に便利です。ただし、利用可能なサーバーが必要であり、サーバー認証の代わりになったり、誤ったパラメーターを自動修正したりするものではありません。
- Direct:Directポリシーで接続します。基本ネットワークや対象ページ自体にアクセスできるか確認する際の比較に使えます。プロキシサーバーが正常に動作していることの証明にはなりません。
手元のサーバーを初めて確認する場合は、一時的にProxyを使い、確認後に自分の設定に合ったモードへ戻す方法があります。ルールファイルを使っている場合は、Configを開き、現在選択中の設定を確認してください。リストにファイルが保存されているかどうかを見るだけでは不十分です。Configモードでの処理結果に影響するのは、現在使用中の設定に含まれるルールだけです。
Config画面で確認する項目
該当する設定の編集画面を開くと、General、Rule、Hosts、URL Rewrite、HTTPS Decryptionなどのセクションが表示されます。使い始めの段階では、Ruleとポリシーの参照先を確認すれば十分です。接続するために、これらの機能をすべて有効にする必要はありません。Add Ruleはルールを追加するための項目です。既存の設定を使える場合、ファイル全体を書き換える必要はありません。
ルールは通常、記述された順に照合され、前方のルールが先に処理方法を決める場合があります。どのルールにも一致しないリクエストはFINALで処理されます。以下はルール構文の例であり、現在の設定ファイルと置き換えて使える完全なファイルではありません。PROXYが参照するポリシーも、実際の設定内で有効である必要があります。例にあるドメインを、実際にテストすべきサービスと考えないでください。
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
ポリシー名とプロトコル名の違いがわからない場合は、用語集のルールとポリシーの説明をご覧ください。初回接続では、現在のモード、設定、選択中のサーバーの3点を把握しておけば十分です。確認したらHomeに戻り、次に接続スイッチをオンにします。
接続スイッチをオンにしてシステムの許可を行う
Homeに戻り、まずSERVERで選択中のサーバーを確認し、次にGlobal Routingのモードを確認します。画面上部がNot Connectedの場合、まだ接続は確立していません。横にある接続スイッチをタップして接続を開始します。サブスクリプションを読み込んだだけで、自動的に通信が始まるわけではありません。
初めてスイッチをオンにすると、ShadowrocketによるVPN構成の追加を許可するよう、システムから確認される場合があります。これは、アプリがシステムのネットワーク機能を使ってデバイスの通信を処理するための許可です。アプリの再購入やサーバーの追加ではありません。確認画面がShadowrocketのものだと確かめてから、システムの手順に従って許可し、デバイスで求められるパスコードや認証を完了してください。許可の操作はシステム画面で行います。デバイスのパスコードをサーバー情報の欄に入力しないでください。
先ほど許可をキャンセルした場合は、アプリに戻ってスイッチをもう一度オンにし、確認画面が再表示されるか見てください。許可後、Homeに戻って接続状態が変わるまで待ちます。接続状態とシステムのVPN表示から、システムのネットワーク経路が確立したことを確認できます。ただし、選択したサーバーですべての宛先にアクセスできるとは限りません。次の手順で実際の接続を確認してください。
接続前後で条件をそろえる
初回のトラブルシューティングでは、同じWi-Fiまたはモバイル通信を使い続け、ネットワーク、サーバー、設定、モードを同時に変更しないでください。ほかのVPN接続を使っている場合は、不要な接続をいったん終了してからShadowrocketで再試行します。システムの接続切り替えをサーバーの問題と誤認するのを防げます。変更のたびに、スイッチを一度オンにしたかどうかだけでなく、画面上部の状態を確認してください。
iPadでも同じ手順で操作します。項目を選び、モードを確認して、スイッチをオンにし、システムの許可を完了します。画面レイアウトはデバイスやアプリの表示方法によって異なる場合がありますが、操作の目印となる英語の画面表示は同じです。接続を停止するには、画面上部の接続スイッチをオフにします。接続を切っても、保存済みのサーバーやサブスクリプションは削除されず、あとから同じ項目を使えます。
スイッチがすぐにオフになる、または接続が完了しない場合は、いったん操作を止めてシステムの表示内容を記録してください。すべてのデータをすぐに削除する必要はありません。問題の切り分けに移動し、許可の問題かサーバー側の接続問題かを確認できます。接続状態が維持される場合は、引き続き動作を確認してください。「接続済み」と表示されただけで設定を終えないようにしましょう。
接続とルールの動作を確認する
接続が確立したら、HomeでConnectivity Testを実行し、最初の確認を行います。テストが終わるまで待ってください。テスト結果は指定された方法と宛先への応答を示すもので、すべてのアプリやWebサイトが利用できることを意味しません。特定のサーバーで応答があっても対象ページを開けない場合は、テストを繰り返すだけでなく、実際のリクエストを確認してください。
「経路・アクセス・ポリシー」の3段階で確認する
- 経路:Homeに戻り、接続状態が維持されていること、選択中のサーバーが切り替わっていないこと、Global Routingが記録した内容と一致していることを確認します。
- アクセス:ブラウザを開き、利用権限があり、通常の状態を確認できる対象ページにアクセスします。以前のキャッシュだけを見て判断しないよう、ページを再読み込みしてください。
- ポリシー:Configで接続している場合は、アプリ内で確認できるリクエスト記録から、実際に適用されたルールとポリシーを確認します。Proxyを使う想定のリクエストは、設定内のプロキシ経路に対応している必要があります。Directを使う想定のリクエストでは、DIRECTが適用されているか確認します。
Proxyでは対象にアクセスできるのにConfigでは失敗する場合は、まずルールの順序、ポリシーの参照先、現在選択中の設定を確認してください。サーバーのパスワードをすぐに入力し直す必要はありません。両方のモードで失敗する場合は、基本ネットワークとサーバー情報を確認します。Directは比較に使えますが、対象自体が直接接続を許可しているかどうかも結果に影響します。1つのページの成否だけで判断しないでください。
比較する場合は、一度に変更する条件を1つだけにします。対象ページとネットワークを固定してモードだけ切り替えるか、モードを固定して手元のサーバーを1つだけ切り替えてください。テスト後は、継続利用する予定のモードに戻してから、もう一度アクセスします。結果を出すために複数の高度な機能を同時に有効にすると、問題の切り分けが難しくなります。
確認の目安は、接続状態が維持されること、実際の対象に想定どおりアクセスできること、Configでルールの適用先を説明できることです。1回の遅延値は速度を保証するものではなく、1回のテスト失敗だけでサブスクリプション全体が無効だとは判断できません。特定の宛先だけに問題がある場合は、ドメイン名、発生時刻、使用したモードを記録し、次のセクションに沿って確認してください。
症状からよくある問題を切り分ける
問題が起きた段階を最初に確認します。読み込み後にサーバーが表示されない、スイッチが維持されない、接続後にすべてのアクセスが失敗する、一部のリクエストだけ想定どおりでない、のどれにあたるかを見極めてください。段階によって確認する場所が異なります。元のデータとエラーメッセージを残し、一度に変更する項目は1つだけにして、「接続 → テスト → 実際のアクセス」の順に再確認します。
読み込み後にリストが空の場合:入力内容と読み込み結果を確認する
サブスクリプションの項目に戻り、リンク全体が正しいか、余分な空白を貼り付けていないか、末尾のパラメーターが抜けていないか確認します。入力したものが既存のサブスクリプションURLであり、アカウントのログインページではないことも確認してください。現在のネットワークからリンクを読み込む必要がある場合は、まず基本ネットワークで読み込みができるか確認します。必要に応じて、利用中のサービス提供元にサブスクリプションの状態と応答形式を問い合わせてください。同じリンクを何度も追加したり、公開の場にリンク全体を投稿したりしないでください。
スイッチが維持されない場合:まずシステムの許可を確認する
VPN構成の追加をシステムで許可したか確認し、ほかに使用中のVPN接続がないか確認します。システムに明確なエラーが表示された場合は、表示内容を記録してから操作してください。すべての問題をサーバーのパスワードのせいにする必要はありません。アプリを開き直して接続を再試行し、同じ段階で止まるか確認します。設定の削除や再インストールを検討するのは、データのバックアップ先を把握してからにしてください。
接続済みなのにアクセスできない場合:項目とモードを確認する
現在のモードがDirectではないことを確認し、選択中のサーバーのType、Host、Port、認証情報、TLS、通信方式のパラメーターを確認します。手動追加では、プロトコルの選択ミス、ポート番号の入力ミス、パスワードへの空白の混入がよくある原因です。サブスクリプションから追加した項目は、まず更新結果を確認し、推測で複数の項目をまとめて変更しないでください。基本ネットワークでも通常の宛先にアクセスできない場合は、先にネットワーク接続を確認します。
一部のリクエストだけ失敗する場合:ルールとテスト方法を確認する
Proxyでは利用できるのにConfigで問題が起きる場合は、Configに戻り、現在の設定とルールの順序を確認します。テスト結果だけに問題がある場合は、SettingsでTest Methodを確認し、選択中の方法が実際のアクセス方法と合っているか見直します。テスト方法を変えても、テストの基準が変わるだけで、誤ったサーバー情報が修正されるわけではありません。TCPやUDPの設定も、利用中のサービスが対応しているか確認して調整してください。トラブルシューティングのために、すべてをむやみに切り替えないでください。
接続の動作が想定と異なる場合:On Demandを確認する
SettingsでOn Demandを確認します。条件に応じた自動接続の動作を設定する項目であり、サーバー情報を作成するものではありません。初めて接続を確立する際は、まず手動接続を使い、現在の設定を記録しておくとよいでしょう。手動で安定して接続できることを確認してから、自動接続の条件を1つずつ設定します。オフにしたのに再接続する場合や、ネットワーク切り替え後に動作が変わる場合は、サブスクリプションを削除する前にここを確認してください。
さらに詳しく調べる場合は、Diagnosticsの診断情報を使い、再現手順を1つに絞ってください。診断情報を共有する前に、サブスクリプションリンク、認証情報、個人のアドレスなどの機密情報を隠してください。スクリーンショットにこれらが写っていないかも確認します。症状ごとの詳しい説明はよくある質問を、更新方法、並べ替え、バックアップについてはサーバー管理マニュアルをご覧ください。