この記事は、Shadowrocketをインストールし、利用するサービスとサブスクリプションをすでに用意しているものの、まだ初回接続を完了していない方向けです。「設定の確認、サーバー選択、VPN構成の許可、Connectivity Testの実行、実際のアクセス確認」の順に進めることで、サーバーの読み込み、システムトンネルの起動、リクエストの完了という異なる状態を切り分けられます。
1. 接続前の確認:アプリと接続サービスをそれぞれ準備
ShadowrocketはAppleプラットフォーム向けのクローズドソースの有料アプリで、主にiPhone/iPadで利用できます。入手先はApp Storeのみです。製品ページで、デベロッパがShadow Launch Technology Limited、アプリIDが932747118であることを確認してください。システム要件はApp Storeのページをご確認ください。
アプリの買い切り購入と接続サービスのプランは別です。一度購入するとアプリを利用できますが、サーバーアドレス、認証情報、サブスクリプションは利用中のサービス提供元から入手する必要があります。この記事では、これらの情報をすでにお持ちであることを前提とし、動作確認のためにサブスクリプションの入手先を変更する必要はありません。
- まず、現在接続しているWi-Fiまたはモバイルデータ通信で、通常のWebページにアクセスできることを確認します。ログインが必要なWi-Fiでは、先にログインを済ませてください。
- Homeを開き、利用可能なサーバーが一覧にあることを確認します。サブスクリプショングループ名だけが表示され、展開してもサーバー項目がない場合は、サブスクリプションが正常に更新されたか確認してください。
- サービス提供元から案内されたサーバーアドレス、ポート、プロトコルを確認します。Shadowsocks、VMess、VLESS、Trojanなどは、名前が似ているからといってTypeを置き換えることはできません。
- テスト中に別の接続へ切り替わらないよう、システムVPN接続を使用しているほかの機能は一時的にオフにしてください。
Homeの一覧が空の場合は、右上の「+」からAdd Serverを開き、手元の情報に対応するTypeを選択します。サブスクリプションを読み込む場合はSubscribeを選び、サービス提供元から入手したリンクを入力して保存し、サーバー一覧に項目が表示されることを確認します。サブスクリプションリンクには個人用の認証情報が含まれることが多いため、公開スクリーンショットやチャットに載せないでください。
2. Homeでサーバーを選択して接続スイッチをオンにする
サーバーが一覧に表示されていても、現在の接続先に選択されているとは限りません。初回接続では、使うサーバーの項目をタップし、選択マークが付いたことを確認します。詳細画面で設定を編集する操作と、接続先として選択する操作は別です。設定を確認する前に、複数のサーバーを次々と切り替えないでください。
-
サーバー項目を確認
Homeで既存のサブスクリプショングループを展開し、使用するサーバーを探します。詳細を開いてアドレス、ポート、Typeを確認し、保存して一覧に戻ります。サブスクリプションURLを単一サーバーのアドレス欄に入力しないでください。
-
サーバーを選択
接続先にするサーバーの項目をタップし、選択マークが表示されたことを確認します。設定を変更したりサブスクリプションを更新したりした場合は、テスト対象が想定どおりか再確認してください。
-
ルーティングを確認
Home → Global Routingを開き、現在のモードを確認します。使用できるルールファイルがある場合はConfigを選択できます。ルールの影響を切り分けるには、一時的にProxyを選んで比較テストを行い、元のモードを控えておいてください。
-
接続スイッチをオン
Homeに戻り、接続スイッチをオンにします。初めてシステムからVPN構成の追加を求められた場合は、今回のShadowrocketの操作による要求であることを確認して許可し、デバイスの指示に従って認証を完了してください。
-
接続状態を確認
Homeに戻り、スイッチがすぐにオフへ戻らないことを確認してからConnectivity Testを実行します。テスト結果を選択したサーバーに対応させるため、この時点では自動切り替えを有効にしたりDNSを変更したりしないでください。
3. 選択中のサーバーとGlobal Routingを確認
選択中のサーバーは、デフォルトのプロキシ出口の候補を決めます。Global Routingはリクエストの処理方法を決めるため、両方を確認する必要があります。特にConfigでは、ルールによってリクエストがDIRECT、PROXY、または指定のポリシーに振り分けられることがあります。ルールで別のサーバーやポリシーグループが指定されている場合、実際の出口はHomeで選択した項目とは限りません。
Homeの接続先
- 確認場所
- Home → サーバー一覧
- 選択状態
- 接続先の項目に選択マークが表示されている
- アドレスとポート
- サービス提供元の情報と照合します。443は使用されることのあるポートの一つで、共通の固定値ではありません。
- 認証情報
- パスワード、UUID、TLS、トランスポートの各設定は、該当するTypeに合わせて入力します。
ポートを変更しても、プロトコルや認証情報の確認にはなりません。また、すべてのサーバーを443に変更しないでください。
Global Routingのモード
- Config
- 現在有効なルールファイルに基づいてリクエストの振り分け先を判断
- Proxy
- すべてプロキシ経由にし、ルールによる振り分けの影響を一時的に切り分ける
- Direct
- すべて直接接続にするため、プロキシ出口の動作確認には使えない
- Scene
- 設定済みのシーンに従って処理します。初回のトラブルシューティングでは、該当するシーンの内容を確認してください。
モード名が示すのは処理方法です。サーバーが利用可能かどうかは別途確認が必要です。
たとえば、ルールファイルにDOMAIN-SUFFIX,example.com,DIRECTが含まれている場合、該当するドメインサフィックスへのリクエストはルールに従って直接接続されます。このときWebページが開いても、プロキシサーバーが正常に動作している証明にはなりません。初回テストでは、ページが表示されるかだけでなく、テストリクエストがどの経路を通るかを明確にしてください。
Configではルールファイルを管理し、Homeではサーバーの選択と接続の制御を行い、Settingsではアプリの設定を変更します。初回接続の問題を解決するために、この3か所を同時に変更しないでください。まずサーバーとルーティングモードを固定して再現可能な結果を得てから、項目ごとに調整します。
4. Connectivity Testを実行し、実際のアクセスも確認
Home → Connectivity Testを開き、テストを実行して結果を記録します。このテストで確認できるのは、テスト対象への接続が完了するかどうかです。通信速度を測定するものではなく、すべてのWebサイト、プロトコル、アプリへのアクセスを保証するものでもありません。テスト対象と設定もあわせて確認し、1件の成功結果から接続全体の性能を判断しないでください。
- 応答があった場合:現在のサーバー、Global Routingのモード、使用中のネットワークを記録します。その後、確認したいWebページを開き、キャッシュされたタイトルが表示されるだけでなく、ページ本文を読み込めることを確認してください。
- タイムアウトまたは失敗した場合:まず通常のネットワークが使えることを確認し、サーバーアドレス、ポート、認証情報、サービスアカウントの状態を見直します。接続スイッチを何度も押しても、パスワードの誤りは解消されません。
- テストは成功するのにWebページが開かない場合:該当ドメインのルールによる振り分け先とDNSの名前解決を確認します。テスト対象に接続できても、Webサイトのドメインで同じルーティングや名前解決が行われるとは限りません。
- ネットワークを切り替えると結果が変わる場合:サーバーとほかの設定は変えず、Wi-Fiとモバイルデータ通信だけを切り替えて、接続中のネットワークが影響しているかを確認します。
結果は「同じサーバー、Proxy、Wi-FiではConnectivity Testがタイムアウト。モバイルデータ通信では応答あり」のように記録できます。これは記録例であり、テスト結果を示すものではありません。ほかの条件をそろえて初めて、ネットワーク切り替え前後の差がトラブルシューティングに役立ちます。また、1回のテストで得られた応答時間をダウンロード速度に換算することはできません。
比較テスト:同じサーバーで接続ネットワークを切り替える
Wi-Fiでの確認
- ネットワークへのログインが完了し、通常のWebページを開けることを確認します。
- 同じサーバーとGlobal Routingのモードを維持します。
- Connectivity Testを実行し、成功、タイムアウト、具体的なエラーを記録します。
モバイルデータ通信での確認
- Shadowrocketにモバイルデータ通信の使用が許可されていることを確認します。
- Wi-Fiをオフにし、接続状態を再確立する必要があるか確認します。
- 同じテストを繰り返し、同じWebページにもアクセスします。データ通信量にも注意してください。
一度に変更するのは接続ネットワークだけにします。サーバー、DNS、ルールを同時に変更すると、結果が変わった原因を特定できません。
5. 初回接続でよくある問題と対処の順番
確認しやすい状態から順に調べます。サーバーが一覧にあるか、選択マークが付いているか、スイッチがオンのままか、テスト結果が返るかを確認してください。どの段階で失敗するかを特定してから該当する設定を見直すと、すべての設定を作り直すより原因を追いやすくなります。
サーバーを読み込んだのに接続できないのはなぜですか?
Homeに戻り、グループを展開してサーバーをタップし、選択マークが付いていることを確認します。続いて詳細画面でアドレス、ポート、Typeを確認してください。サブスクリプションの更新が成功しても、設定が取得できたという意味にとどまり、すべてのサーバーが現在利用できるとは限りません。サービス提供元が認証情報を変更した場合は、サブスクリプションを更新してからサーバーを選び直してください。
VPN構成の追加を許可しなかった場合はどうすればよいですか?
Homeに戻り、接続スイッチをもう一度オンにして、システムから再度許可を求められるか確認し、デバイスの指示に従って承認してください。デバイスが管理対象で、システムによってVPNの追加が制限されている場合は、デバイス管理ポリシーを確認するか管理者に問い合わせてください。同じサブスクリプションを何度も読み込み直しても、認可の問題は解決しません。
スイッチはオンなのにConnectivity Testがタイムアウトする場合は?
まず基本のネットワーク接続とサービスアカウントを確認し、次に現在のサーバー設定を見直します。ルールの影響と接続失敗を混同しないよう、一時的にGlobal Routing → Proxyで比較テストを行う方法もあります。テスト後は元のモードに戻してください。特定のネットワークだけで失敗する場合は、前述の2つのネットワークを使った手順で違いを記録します。
手動でオフにしたのに再接続する場合、スイッチの故障ですか?
Settings → On Demandを開き、オンデマンド接続と関連条件が有効になっていないか確認します。手動テストを行う間はOn Demandを一時的に無効にしてから、Homeに戻って接続をオフにし、状態を確認してください。手動接続が安定したら、利用するネットワーク環境に合わせてオンデマンド接続を設定します。
6. 接続完了後の確認
初回の動作確認が終わったら、一時的に変更した設定を元に戻します。切り分けのためにProxyへ変更した場合、日常的にルールで振り分けるならHome → Global Routing → Configに戻し、Configで使用するルールファイルが有効になっていることを確認してください。設定を戻したら、対象のWebページにもう一度アクセスし、ルールによる振り分けでも正常に動作することを確認します。
- 使用したサーバー名、接続ネットワーク、ルーティングモード、Connectivity Testと実際のアクセス結果を簡潔に記録します。
- サブスクリプションの入手元と更新方法を確認します。サブスクリプションはサービス提供元から入手し、更新後は選択中の項目と設定の変更を再確認してください。
- Settings → On Demandを確認し、実際の必要に応じて有効にします。手動接続が安定するまでは、自動再接続を問題の解決策として使わないでください。
- トラブルシューティング情報を共有する前に、サブスクリプションの完全なリンク、パスワード、UUIDなどの認証情報を隠し、エラーの状況と必要な設定名だけを残してください。
これらの確認をすべて終えると、「設定が存在する、サーバーが選択されている、トンネルが起動している、テストで応答がある、実際のリクエストが成功する」という一連の検証が完了します。接続スイッチがオンなのにアクセスに問題がある場合も、システムのVPN表示だけでリモート接続の正常性を判断せず、この5項目を順に確認できます。