Shadowrocketの使い方
既存設定の追加 → Global Routing → 初回接続 → 確認とトラブル対処
このページでは、iPhoneとiPadでの操作順に沿って説明します。まず既存の設定で接続し、その後にルールの調整やオンデマンド接続を検討します。プロトコルの仕組みやパラメータの説明は技術資料にまとめているため、初回操作では扱いません。
画面上の用語は英語表記のまま記載しています。デバイスによって項目の位置が多少異なる場合は、名称を手がかりに探してください。このページではアプリ画面の画像を使用していません。
Add Server:サーバーの追加またはサブスクリプションの読み込み
Shadowrocketを開き、まずHomeにとどまり、接続スイッチはまだオンにしないでください。手元の情報が、サーバー一覧を更新するサブスクリプションリンクなのか、プロトコル、アドレス、ポート、認証情報が明記されたサーバーパラメータなのかを確認します。種類によって入力画面が異なります。サブスクリプションリンクをサーバーアドレスとして入力することはできません。また、個別サーバーの共有情報がサブスクリプションとは限りません。
サブスクリプションリンクがある場合:Subscribeを選択
Homeの右上にある追加ボタンをタップしてAdd Serverを開き、種類の選択でSubscribeを選びます。ご自身のサブスクリプションリンクをURL欄に全て貼り付け、見分けやすい名前を入力して保存します。貼り付ける前後に、余分な空白や改行が入っていないか確認してください。特に疑問符以降のクエリパラメータは残してください。これらのパラメータでサブスクリプションを識別している場合があり、一部を削除すると取得に失敗することがあります。
保存したらHomeに戻り、サブスクリプションの取得が完了するまで待ちます。正常に取得できると、サブスクリプショングループとその中のサーバー項目が表示されます。サブスクリプション名だけが表示されても、接続可能なサーバーを取得できたとは限りません。一覧が空、エラーが表示される、または内容が取得されない場合は、まず取得結果を確認してください。接続スイッチを何度も操作しても解決にはなりません。初回の読み込みには、サブスクリプションのURLにアクセスできるネットワークが必要な場合があります。
サブスクリプションリンクは機密情報として扱い、公開コメント欄やスクリーンショットに載せないでください。更新時にはリモートの一覧が再取得され、項目が追加、削除、置換される場合があります。サーバーのパラメータを変更する前に、サブスクリプション側で管理されている項目か確認してください。手動で変更しても、次回の更新で上書きされることがあります。
サーバー情報がある場合:指定されたプロトコルを選択
個別のパラメータを受け取った場合も、Add Serverを開きます。ただし、情報に記載されたプロトコル(Shadowsocks、Trojan、WireGuardなど)を選択してください。項目名に従ってサーバーアドレスとポートを入力し、そのプロトコルで必要なパスワード、識別情報、鍵を設定します。認証項目はプロトコルごとに異なり、互いに置き換えられません。アドレスが同じという理由だけで別のプロトコルを選ばないでください。
TLS、SNI、またはトランスポートに関する項目も指定されている場合は、元の情報と一つずつ照合してください。サーバーアドレスは接続先を示し、SNIはTLSでサービス名を識別するためのものです。設定によっては異なる値を使うため、自己判断で同じ値に変更しないでください。項目の意味が分からない場合は、まずプロトコル技術資料を確認し、推測で入力欄を埋めないようにしましょう。
保存してHomeに戻ったら、SERVER一覧で使用する項目を選択し、選択マークが目的のサーバーに付いていることを確認します。複数の項目がある場合、名前が似ていても同じパラメータとは限りません。区別しやすい名前を付けても構いませんが、パスワードは名前に含めないでください。ここまででサーバー情報の準備は完了です。次に、通信に適用するルーティングモードを決めます。
Global Routing:接続モードを選択
HomeでGlobal Routingを開きます。まずは基本となる3つのモード、Config、Proxy、Directを確認しましょう。各モードはリクエストに適用する方針を決めるもので、サーバーが追加済みかどうかとは別の設定です。一覧にサーバーがあっても、すべてのリクエストでそのサーバーが使われるとは限りません。
| モード | 動作 | 基本的な用途 |
|---|---|---|
| Config | 選択中の設定に含まれるルールに従って方針を決定します。 | ルール設定を準備し、その内容を把握している場合。 |
| Proxy | 通常、リクエストを現在のプロキシ方針で処理します。 | まず、登録済みサーバーでリクエストを正常に処理できるか確認する場合。 |
| Direct | 直接接続の方針を適用します。 | 直接接続の経路を確認する場合、または一時的に直接接続へ戻す場合。 |
初めて操作し、ルール設定をまだ準備していない場合は、まずProxyを選ぶと、確認対象を現在のサーバーとローカルネットワークに絞れます。これは長期利用で必ず選ぶべきモードではなく、あらゆる状況でシステム上の全通信がプロキシを経由するという意味でもありません。選択後はHomeに戻り、現在のサーバーを再確認して、別の項目をテストしていないか確認してください。
Configを使う場合は、まずConfig画面を開き、目的の設定が追加され、現在の設定として選択されていることを確認します。その後、Global Routingに戻ってConfigを選びます。Config画面は設定ファイルを管理する場所です。一方、ルーティング選択のConfigは、設定内のルールに従って通信を処理するモードを指します。項目名は関連していますが、「ファイルがあること」と「そのファイルを使用中であること」は別です。
サーバーのサブスクリプションとルール設定は区別してください。Subscribeで読み込む内容は通常、サーバー一覧の管理に使われ、ルール設定も用意されているとは限りません。接続パラメータしかない場合は、まずProxyで接続を確認してからルール設定に進んでください。既存の設定がポリシー名を参照している場合は、各名称に対応するポリシーが実際に利用可能かも確認します。
Directはトラブル対処時の比較に使えますが、プロキシサーバーが利用可能であることの証明にはなりません。Directに切り替えてページを開けても、その時点で直接接続が成功したことしか分かりません。ルールの順序、最終方針、シーン設定について詳しくはプロキシモードの説明をご覧ください。用語が分からない場合は用語マニュアルで確認できます。
Home:スイッチをオンにして許可する
Homeに戻り、画面上部の接続スイッチをオンにする前に、選択中のサーバー、Global Routing、現在のネットワークを簡単に確認します。パスワードを入力中、またはパラメータを編集中の場合は、先に保存して編集画面を閉じてください。初回の確認中は同じネットワークを使い、接続中にWi-Fiとモバイル通信を切り替えないことをおすすめします。失敗した場合に、どの条件が変化したのか判断しにくくなるためです。
接続スイッチをオンにすると、初回はシステムからVPN構成の追加を求められる場合があります。これはAppleのシステムがネットワーク構成を作成するための許可手続きです。Shadowrocketからの要求であることを確認してから、システムの画面に従って許可し、デバイスで求められる認証を完了してください。システム構成の許可とサブスクリプションサーバーの認証は別の手続きです。前者が完了しても、後者のパラメータが正しいとは限りません。
システムの要求をキャンセルした場合も、サーバーを読み込み直す必要はありません。アプリに戻り、接続をもう一度オンにして、表示されたシステムの案内に従ってください。組織の管理下にあるデバイスでは、管理ポリシーによって許可が制限される場合があります。その場合はデバイスの管理要件を確認し、見覚えのない管理構成を削除して解決しようとしないでください。VPN構成を追加できない問題はシステムの権限段階で発生しているため、サーバーのタイムアウトとは分けて対処します。
許可が完了したらHomeに戻り、接続状態が維持されているか確認します。スイッチがすぐに戻る、エラーが表示される、または状態が長時間安定しない場合は、表示内容を記録し、短時間に何度も切り替えないでください。システムのステータス領域に表示されるVPNマークは、デバイスやシステムの表示方法によって異なります。マークが表示されても、関連するネットワーク構成が接続状態にあることを示すだけで、次の実際のアクセス確認の代わりにはなりません。
初回テストを再現しやすくするため、いったんOn Demandの条件は変更せず、手動で接続、アクセス、切断する一連の操作を行ってください。すでにオンデマンド接続が有効な場合、手動で切断しても条件に合致して再接続することがあります。その場合は、スイッチの異常と判断する前にOn Demandの設定を確認してください。自動接続の条件を調整する場合は、基本的な接続確認を終えてから行います。
iPadでも同じ順序で操作します。まず選択中の項目とルーティングモードを確認し、その後システムの許可を完了してください。分割表示や横向き表示では項目の位置が変わることがありますが、操作の順序は同じです。接続できたら、次はリクエストが完了するか、選択した方針どおりの結果になるかを確認します。
Connectivity Test:接続状態を確認
まずHomeでConnectivity Testを実行し、現在のサーバーの結果を確認します。結果はテスト方法、対象、実行時のネットワークによって異なります。接続可能と表示されてもすべてのWebサイトにアクセスできるとは限りません。また、一度タイムアウトしたからといって、すべての通信が失敗するとは限りません。初期判断の手がかりとして使い、唯一の判断材料にはしないでください。
次にブラウザを開き、普段利用していてアクセス権のあるHTTPSページを表示します。キャッシュ済みページだけで判断しないよう、新しいリクエストを試してください。ページを更新するか、別のページを開き、本文と画像の両方が読み込まれるか確認します。一部のリソースだけ失敗する場合は、ページ全体が開けない状況と区別し、すべての接続パラメータをすぐに変更しないでください。
Proxyを選択している場合は、先ほど選んだサーバーが実際に使用されていることを確認し、アクセス結果と合わせて接続を確認します。Configを選択している場合は、少なくとも2種類のテスト対象を用意してください。ルール上Directになる対象と、Proxyになる対象です。両方にアクセスできても、最初の確認ができただけです。それぞれに適用された方針が想定どおりか、さらに確認してください。
アプリで接続ログやリクエストログを確認できる場合は、テスト対象のドメイン、適用された方針、エラー情報を調べます。ルールの照合情報が表示される場合は、あわせて確認してください。ルールは通常、照合順序と最終方針に左右されます。設定にルールがあるからといって、今回のリクエストに必ず適用されるとは限りません。ページが開けるかどうかだけでなく、ログを確認するとルーティングの結果を把握しやすくなります。
テストでは一度に変更する条件を1つに絞ります。たとえば、サーバーと対象を固定してルーティングモードだけ切り替えるか、モードと対象を固定してローカルネットワークだけ切り替えます。変更前後の結果を記録すれば、接続に影響した条件を特定できます。サーバー、ネットワーク、設定を同時に変更すると、アクセスが復旧しても次回のトラブルに役立つ結論を得にくくなります。
DOMAIN-SUFFIX、GEOIP、FINALの意味を確認する場合は、まずルールキーワードと画面用語をご覧ください。使い始めの段階で、すぐにルールを作成する必要はありません。動作する基本設定を残し、必要な項目を一つずつ追加すると、管理しやすくなります。
よくある失敗:順番に原因を絞り込む
問題が起きたら、まず失敗が読み込み、許可、接続、アクセスのどの段階で発生したかを確認します。最初からすべての設定を削除したり、失敗のたびにサーバーの問題だと決めつけたりしないでください。復元できる情報は残し、ネットワークの種類、ルーティングモード、テスト対象、表示された内容を記録してから、以下の順に確認します。
サブスクリプションを取得できない、または読み込み後に一覧が空
まずローカルネットワークから通常どおりアクセスできることを確認し、サブスクリプションリンクが完全で、現在も有効かを確認します。サーバーからログイン画面、エラー、通常のWebページが返された場合、URLを開けても読み込みに適した内容とは限りません。リンクの用途と有効性を、ご自身のサービス提供元に確認してください。リンクを公開したり、認証パラメータをむやみに削除・変更したりしないでください。既存の一覧がまだ利用できる場合は、再取得できなくなった際に記録を失わないよう、そのまま残しておきます。
サーバーは表示されるが、接続がタイムアウトする、または認証に失敗する
対象項目の編集画面を開き、プロトコル、アドレス、ポート、認証項目を元の情報と照合します。ポートに共通の固定値はなく、パスワードの大文字・小文字や前後の空白も認証に影響する場合があります。TLSを使用する設定では、SNI、証明書の検証、デバイスの日付と時刻も確認してください。時刻が大幅にずれていると、証明書の有効性判定に影響することがあります。証明書の検証条件を緩めることを標準的な解決策にしないでください。パラメータが不明な場合は、元の情報を確認します。
同じ設定でも特定のローカルネットワークでのみ失敗する場合は、可能であれば別のネットワークに切り替えて再テストします。その際、サーバーとルーティングモードは変更しないでください。結果から分かるのは、2つのネットワーク条件で差があることです。エラー情報と合わせて判断してください。認証に繰り返し失敗する、またはサーバー側で接続を拒否される場合は、ご自身のサービス提供元にサーバーの状態を確認してください。クライアント側で保存を繰り返しても、サーバー側の問題は通常解決しません。
接続済みだが、Webサイトへのアクセスが想定と異なる
まずGlobal Routingを確認します。Directが選択されている場合、このアクセスにはプロキシ方針が適用されていません。Configが選択されている場合は、目的の設定が有効か、リクエストにどの方針が適用されたかを確認してください。ProxyではアクセスできるのにConfigでは失敗する場合は、サーバーのパラメータをすべて入れ替える前に、ルール、方針の参照先、関連するDNS条件を確認します。
すべての対象にアクセスできない場合は、まず基本的なネットワークとサーバー接続を確認します。1つの対象だけ失敗する場合は、その対象に適用されるルール、名前解決、サービスの状態を確認してください。DNSのカスタム設定を使用している場合は、元の値を記録してから一項目ずつ検証し、出所が分からない設定を複数同時に追加しないでください。ドメインの名前解決と接続経路の関係についてはプロトコルパラメータと技術資料もご覧ください。このページでは、まず確認範囲を絞ります。
後から確認できるよう結果を記録する
トラブル対処の記録には、発生した現象と必要な条件を残します。たとえば「Wi-Fi、Proxy、対象ページの本文が読み込めず、Connectivity Testはタイムアウト」のように記録してください。共有する前に、サブスクリプションリンク、パスワード、鍵などの認証情報を隠します。最後に動作した設定に戻してから、変更を一つずつ再確認します。変更の影響が分からない場合は、設定を重ねて追加するのをいったん止めてください。
このページの手順を終えると、追加した情報、選択中のサーバー、使用しているルーティングモード、リクエストの確認方法を把握できます。ルールによる振り分けについてはプロキシモードを、プロトコルの項目については技術資料をご覧ください。接続確認と詳細設定を分けて進めることで、次回のサブスクリプション更新やデバイス変更時にも同じ確認手順を活用できます。