Shadowrocketの使い方
追加、モード選択、接続、確認、トラブル対処の5ステップで進めます。まず再現可能な接続を確立し、その後、ルールや自動接続の設定を調整します。
画像はApp Storeの公式スクリーンショットです。画面や項目の確認用であり、設定をそのままコピーする必要はありません。実際の画面や項目は、使用中のアプリの表示に従ってください。
Add Server:サーバーの追加または既存サブスクリプションの読み込み
手元の情報が個別のサーバー情報なのか、サーバーリストを取得するサブスクリプションURLなのかを確認します。どちらも追加画面から操作しますが、選択するTypeが異なります。
サーバー情報がある場合:実際のプロトコルに合わせて入力
Homeの下部にあるAdd Serverを開き、まずTypeを確認します。情報に明記されたプロトコルをTypeに指定し、Host、Port、およびそのプロトコルで必要な認証項目を入力します。項目が似ているという理由だけで別のTypeを選ばないでください。プロトコルが一致しない場合、保存できても接続できるとは限りません。
Shadowsocksを例にすると、Hostにはサーバーアドレス、Portにはポート番号を入力し、PasswordとMethodはサーバー側の設定と完全に一致させます。ほかのプロトコルでは認証方法が異なったり、TLSやトランスポート方式などの追加パラメータが必要になったりします。手元の情報に従って項目ごとに入力してください。Hostには通常、ホスト名またはアドレスだけを入力します。サブスクリプションURL全体を入力したり、独自にパスを追加したりしないでください。
入力後、画面の保存操作を行います。Homeに戻り、SERVERリストに追加した項目が表示されることを確認してください。名前は識別用のメモであり、アドレスやポートの代わりにはなりません。複数のサーバーを追加する場合は、用途を区別できる名前を付けると、後のテストで選び間違えにくくなります。
サブスクリプションURLがある場合:Subscribeを選択
Add ServerのTypeでSubscribeを選択します。該当画面で、手元にあるサブスクリプションURL全体をURLに入力し、識別しやすい名前を設定して保存してください。URLのパスやクエリパラメータはサブスクリプションの識別に使われる場合があります。コピー時に全体を保持し、末尾の欠落や空白、改行の混入がないか確認してください。
Homeに戻り、該当するサブスクリプショングループにサーバー項目が読み込まれているか確認します。リストが表示されない場合は、まず更新エラーの表示を確認し、グループの更新操作を再試行してください。サブスクリプションを読み込めたことは、リストを取得できたことを示すだけです。各サーバーが利用可能かどうかは、後のテストで確認してください。サブスクリプションの更新によって、Configで有効になっているルールファイルが置き換わるわけではありません。
個別の共有リンクやQRコードは、アプリが対応する読み込み操作を使ってください。Scan QR Codeは既存のQRコードをスキャンする機能、Import from Cloud JSONは該当するCloud JSON情報を読み込む機能で、あらゆるサブスクリプションに使える汎用の入口ではありません。読み込み後は項目を開き、Typeと主なパラメータを確認してから、次の手順でルーティングモードを選択します。
Global Routing:Config、Proxy、Directを選択
Global Routingはリクエストの処理方法を決める設定で、サーバー情報を補うものではありません。現在のモードを確認してから接続を開始します。
HomeでGlobal Routingを開き、現在の選択を確認します。基本のモードはConfig、Proxy、Directです。選択後はHomeに戻り、Global Routingの横に意図した値が表示されていることを確認してください。前回使ったモードを記憶だけで判断しないでください。トラブルの切り分け中に変更されている可能性があります。
Config:現在の設定に基づいて経路を決定
Configはルールによる振り分けが必要な場合に適しています。有効な設定のRuleなどに基づき、リクエストにPROXY、DIRECT、または設定済みの別のポリシーを適用します。このモードを使う場合は、下部のConfig画面で使用中の設定を確認し、Ruleを確認してください。Homeでサブスクリプションを読み込んだだけでは、ルールが意図どおりに設定されたとは限りません。
公式スクリーンショットのConfig編集画面には、General、Rule、Hosts、URL Rewrite、HTTPS Decryptionの各セクションが表示されています。初めて使う際は、接続のためにすべてのセクションを変更する必要はありません。現在の設定とRuleを確認してください。Add Ruleはルールの追加画面を開く項目です。一致対象やポリシーの意味がわからない場合は、設定を変更せず、読み込みの問題とルールの問題を混同しないようにしてください。
Proxy:短時間の比較に使用
Proxyでは通常のリクエストを選択中のプロキシ経路に送ります。トラブルの切り分け時にConfigと短時間比較するのに適しています。Proxyではアクセスでき、Configでは同じ接続先に失敗する場合は、サーバーをすぐに再登録するのではなく、設定内のルールの適用状況や関連項目を確認してください。すべてのシステム通信やアプリの動作を保証するものではありません。テスト後は実際の用途に合ったモードに戻してください。
Direct:基本ネットワークとプロキシ経路を切り分け
Directは接続先へ直接接続するモードであり、サーバーを変更するボタンではありません。選択したサーバーをテストする場合は、Directのまま結果を判断しないでください。基本ネットワークの問題とプロキシ経路の問題を切り分ける際に役立ちます。モードを選んだら、次にHomeでサーバーを選択して接続を開始します。
ルールのキーワード、プロトコルのパラメータ、性能との兼ね合いを初回接続時にすべて把握する必要はありません。選択したTypeの項目を確認する場合はプロトコル解説を、ルーティングとOn Demandの違いは設定ガイドをご覧ください。
Home:サーバーを選択して接続を開始
リストに項目が表示されているだけでは、その項目が使用中とは限りません。サーバーを選択し、画面上部のスイッチをオンにしてから、システムの許可と接続状態を確認します。
Homeに戻り、SERVERリストから使用するサーバーを選択し、選択マークが目的の項目に付いていることを確認します。複数のサブスクリプショングループがある場合は、グループ名とメモを確認してください。リストの並び替えをサーバーの切り替えと勘違いしないようにします。続けてGlobal Routingを確認し、前の手順で選んだモードと一致していることを確かめます。
Home画面上部の接続スイッチをオンにします。未接続の場合はNot Connectedと表示されます。オンにした後は状態が変わるまで待ち、スイッチをすばやく何度も切り替えないでください。初回の接続時には、システムからVPN構成の追加を求められる場合があります。直前に操作したShadowrocketからの要求であることを確認して、システムの案内に従って許可します。必要に応じてデバイス認証を済ませ、アプリに戻って状態を確認してください。
VPN構成の許可により、アプリがシステムのネットワーク拡張機能を使って通信を処理できるようになります。サブスクリプションへのログインではなく、サーバーが自動作成されるわけでもありません。許可を取り消した場合は、アプリに戻って接続を再試行し、表示された案内に対応してください。組織管理のデバイス、システムによる制限があるデバイス、ほかのVPN構成があるデバイスでは、この種の接続がデバイスポリシーで許可されているかも確認してください。構成をむやみに削除して繰り返し試さないでください。
接続状態が変化したことは、接続処理が進んだことを示すだけです。リモートサーバーが利用可能であることや、すべてのリクエストが意図どおりに振り分けられることを単独で証明するものではありません。現在のサーバーとモードを維持し、次の手順でテストを続けてください。スイッチがすぐにオフに戻る場合やエラーが表示された場合は、エラーの原文と発生した段階を記録し、トラブル箇所の確認へ進みます。複数の設定を同時に変更すると、元に戻せなくなるおそれがあります。
Connectivity Test:接続と実際のアクセスを確認
確認は2段階で行います。サーバーテストで手がかりを得て、実際のリクエストで利用状況を確認します。両方の結果を合わせて判断してください。
HomeでConnectivity Testをタップし、リストのテスト結果が更新されるまで待ちます。テスト方法によって結果の意味が変わるため、Settings → Test Methodで現在の方法を確認してください。結果が表示された場合、その時点で該当の方法によるテストが行われたことを示します。タイムアウトしても、あらゆる用途でサーバーが使えないとは限りません。実際のリクエストも使って判断してください。
次に接続を維持したまま、ブラウザで普段確認に使っているWebページを開きます。まずページが読み込まれることを確認し、その後、確認したい接続先を試します。キャッシュ済みのページだけを見ないよう、新しいリクエストを使用してください。特定のアプリだけに問題があり、ブラウザではアクセスできる場合は、接続全体の失敗と決めつけず、そのアプリと接続先の違いを記録します。
ルールによる振り分けを確認するには、同じネットワーク、同じサーバー、同じ接続先を使い、ConfigとProxyの動作を比較します。変更するのはGlobal Routingだけにしてください。2つのモードで結果が異なる場合は、Configに戻ってRuleと関連設定を確認します。ルールは通常、記載順に照合されるため、先に一致した項目が後の経路を決めることがあります。ファイル内にルールがあるだけでは、実際のリクエストがそのルールに一致したとは限りません。
Dataで通信量の変化を確認すると、リクエストの発生を把握する手がかりになります。ただし、累積通信量だけで特定のWebページがどの経路を使ったかは判断できません。確認後は、長期利用する予定のモードに戻し、選択したサーバー、設定名、テスト対象を記録します。後で問題が起きた際は、条件を固定して再テストすると、何が変化したのかを特定しやすくなります。
Settings:よくある問題を順番に確認
基本ネットワークから確認し、次にサーバー、モード、DNS、ルールを調べます。一度に変更する項目は一つにし、変更前の値を記録してください。
第1段階:ネットワーク、サブスクリプション、サーバーを切り分け
Shadowrocketの接続を一時的にオフにし、デバイスの基本ネットワークが正常に使えることを確認します。特に、現在のWi-Fiでネットワークへのログインが必要か確認してください。基本ネットワークが利用できない場合は、まずその問題に対処します。プロキシプロトコルやルールを変更しても、ネットワーク接続そのものは確立されません。
サブスクリプションに項目が読み込まれない場合は、サブスクリプションの記録に戻ってURL全体と更新メッセージを確認し、リンクがまだ有効か調べます。項目があるのに接続できない場合は、サーバーを開いてType、Host、Port、認証情報を確認し、サブスクリプションの内容に変更がないか調べてください。まず手元の情報が有効か確認してから、サブスクリプションを更新するか判断します。接続に失敗するたびに再読み込みが必要とは限りません。
第2段階:モードを比較し、DNSとRuleを確認
Home → Global RoutingでDirectが誤って選択されていないこと、現在のサーバーが先ほど確認した項目であることを確かめます。短時間、Proxyと比較してください。同じ接続先に再びアクセスできる場合は、Configを重点的に確認します。引き続き失敗する場合は、サーバーのパラメータ、基本ネットワーク、接続先自体を調べます。比較中にネットワークとサーバーを同時に切り替えると、どの変更が影響したのか判断できません。
ドメインにアクセスできない場合、DNSは確認すべき項目の一つですが、原因はそれだけとは限りません。まず現在の設定にあるDNSと関連メッセージを記録し、入力ミスや競合がないか確認します。内容が不明な設定を次々と適用したり、任意の固定アドレスをあらゆるネットワークに共通する解決策として使ったりしないでください。Proxyでは正常でConfigでは問題が起きる場合は、Ruleの順序、対象の一致範囲、最終ポリシーを引き続き確認します。
第3段階:On DemandとDiagnosticsを確認
接続をオフにした後、自動的に再接続される場合は、Settings → On Demandを開き、接続を開始する条件が有効になっているか確認します。On Demandは接続を開始するタイミングを制御し、Global Routingはリクエストの処理方法を制御します。別の設定です。初回の切り分けでは、まずOn Demandの現在の設定を記録し、必要に応じて一時的に無効にして変数を減らします。手動接続が安定したら設定を元に戻してください。
さらに診断する場合はSettings → Diagnosticsを確認し、エラーの原文、発生時刻、ネットワークの種類、再現手順を記録します。修復を試すために、意味を把握していないProxy、TCP、UDPの項目をむやみに変更しないでください。診断情報を共有する前に、サブスクリプションURL、サーバーの認証情報などの機密情報を伏せます。通常、プロトコルの種類とエラーが発生した段階を残せば、原因を絞り込む手がかりになります。
特定のプロトコルだけで問題が起きる場合は、プロトコル解説で必須項目と通信条件を確認してください。操作手順を整理し直す場合は、このページの追加・読み込み手順に戻り、有効な情報を使って項目ごとに確認します。対処後は一時的な変更を元に戻してください。診断に使ったProxyモードや無効にした自動接続条件を、そのまま忘れないようにします。