Shadowrocketの使い方
既存のサービス情報を追加し、Global Routingを選択してから接続と動作確認を行います。iPhoneとiPadで手順は共通です。
まず基本的な接続を確認してから、ルールや自動接続を調整します。サブスクリプションの更新、一括整理、バックアップについてはサブスクリプションとサーバー管理ガイドをご覧ください。
Add ServerとSubscribe
Shadowrocketを開いたらHomeを表示し、接続スイッチはオフのままにします。画面下部のSERVERグループを確認し、ご自身のサーバー項目がなければAdd Serverを開きます。まず、手元の情報がサーバー一覧を更新するサブスクリプションリンクなのか、サーバーのプロトコル、アドレス、ポート、認証情報なのかを確認してください。入力方法は異なります。サブスクリプションリンクをHostに入力しないでください。
サブスクリプションがある場合:Subscribeを選択
Add ServerでTypeを開き、Subscribeを選択して、サブスクリプションリンク全体を対応するURL欄に入力します。リンクには、ご利用中のサービスから提供された情報を使ってください。コピー時はパスとクエリパラメーターを含め、全文を保持します。チャットや文書に含まれる改行、前後の空白、全角記号などが読み込みエラーの原因になる場合があります。サブスクリプションを区別するためのメモは任意に入力できますが、接続パラメーターには影響しません。
保存後にHomeへ戻り、該当するサブスクリプショングループとサーバー項目が表示されているか確認します。グループ名だけ表示され、項目がない場合は、リンクが完全に入力されているか確認してからサブスクリプションを更新してください。読み込みに成功したことは、アプリがサーバー情報を取得できたことを示すだけです。すべてのサーバーに接続できることや、サービスの有効期間が残っていることを保証するものではありません。次に、グループ名だけでなく、使用する項目を選択します。
サーバー情報がある場合:Typeに合わせて手入力
単一サーバーの情報をお持ちの場合は、Typeで情報に合ったプロトコルを選び、各項目を入力します。たとえばShadowsocksでよく使う項目はHost、Port、Password、Methodです。Hostにはホスト名またはアドレス、Portにはポート番号を入力し、PasswordとMethodは元の情報に合わせてください。名前が似ているからといって、自己判断で置き換えないでください。ほかのプロトコルでは、認証、通信方式、TLSの項目が異なる場合があります。項目の意味がわからない場合は用語解説を確認し、別のプロトコルの入力方法を流用しないでください。
QRコードや共有リンクから、既存のサーバー情報を読み込むこともできます。Add ServerのScan QR Codeで、ご自身のQRコードを読み取れます。クリップボードから読み込む場合は、共有リンク全体をコピーし、アプリに表示される案内に従ってください。保存後、Typeとアドレスを再確認します。Import from Cloud JSONは対応形式の情報を読み込むための項目で、任意のサブスクリプションリンクを読み込む汎用入口ではありません。対応形式でない場合は、Subscribeまたは手入力を使用してください。
iPadでは、表示領域の幅やリストの並び方がiPhoneと異なる場合がありますが、Home、SERVER、Add Serverを順に探してください。読み込み後は、項目が表示されていること、Typeが情報と一致していること、使用する項目を選択できることの3点を確認します。同じサブスクリプションを何度も一括追加するのは避けてください。重複項目があると、その後の確認が難しくなります。情報を確認したら、Global Routingに進みます。
Global Routingの3つのモード
サーバーを追加したらHomeに戻り、Global Routingを開きます。ここではリクエストのルーティング方法を設定します。SERVERで選ぶサーバーとは別の設定です。初回の操作では現在の選択を記録しておきましょう。接続できないときにサーバーとモードを同時に変更すると、どの変更が結果に影響したのか判断できなくなります。
Config:設定ファイルのルールに従う
Configを選ぶと、現在使用中の設定ファイルとそのルールに従ってリクエストが処理されます。Configを開き、実際に選択されているファイルを確認してから、Ruleなどのセクションを確認してください。ファイルをConfigの一覧に読み込んだだけでは、現在有効な設定になったとは限りません。アプリ上の選択状態を確認してください。すでに内容を確認済みの設定ファイルがある場合は、初回接続前に複雑なルールを追加せず、まずそのファイルを使います。
ルールには通常、条件と動作が設定されています。PROXYは指定されたプロキシ方針で処理し、DIRECTは宛先に直接接続し、REJECTは一致したリクエストを拒否します。ルールから特定のポリシー名が参照される場合もあるため、設定ファイルと合わせて確認してください。ルールは順に評価されるので、前方にある条件が先に結果を決める場合があります。FINALは、それ以前のルールに一致しなかったリクエストを処理します。その動作も最終的な通信経路に影響します。これらを理解すると、接続中でも一部の通信が直接接続される理由を確認できます。
ProxyとDirect
Proxyはリクエストをプロキシ経由で処理します。サーバーへの接続可否とルールの適用結果を切り分けるために使えますが、すべての宛先へのアクセスを保証するものではありません。Directは宛先に直接接続します。現在の宛先にプロキシ経由の接続が必要な場合、Directを選んでページが開かなくても、サーバー情報の誤りとは限りません。確認後は、普段の利用に適したモードに戻してください。
初回の動作確認では、モードを1つ明確に選び、同じ宛先でテストします。信頼できる設定ファイルのルールに従って利用する場合はConfigを選びます。ルールの影響を一時的に切り分ける場合は、元の設定を記録してからProxyに切り替えて比較してください。遅延テストに一度成功しただけで、用途に合わないモードを使い続けないでください。また、3つのモードを別々のサーバーと混同しないようにしてください。
右側のスクリーンショットには、Configの編集画面にあるGeneral、Rule、Hosts、URL Rewrite、HTTPS Decryptionが表示されています。初回接続では各セクションを編集する必要はなく、このガイドを完了するためにHTTPS Decryptionを調整する必要もありません。現在の設定が想定どおりであることを確認して、次に進んでください。ルールのキーワードや条件の詳細はルールと画面項目の用語解説を、ファイル管理についてはサブスクリプションガイドをご覧ください。
Homeでサーバーを選択して接続
ルーティングモードを確認したらHomeに戻り、SERVERグループから使用するサーバーを選択します。項目に選択マークが付いていることを確認し、Global Routingが先ほど選んだモードのままか確認してください。サブスクリプションに複数の項目がある場合は、情報が明確で利用可能な項目を1つ選び、動作確認を行います。ブラウザーを更新するたびにサーバーを無作為に切り替えると、結果を比較できません。
続いて、Home上部の接続スイッチをオンにします。未接続の場合はNot Connectedなどの状態が表示されます。スイッチの位置だけで判断せず、オンにした後の状態変化を確認してください。初回接続時は、システムからVPN構成の追加許可を求められる場合があります。表示内容を確認して承認し、必要に応じて端末の認証を行ってください。この許可によってShadowrocketがシステムのネットワーク接続を確立できるようになります。サブスクリプションの読み込みやサーバー情報の自動入力を行うものではありません。
システムの確認が終わったらShadowrocketに戻り、接続状態が更新されるまで待ちます。許可を取り消していた場合は、アプリから接続を再度開始し、表示される案内に対応してください。スイッチをすばやく何度も切り替えないでください。案内への対応と状態が安定していることを確認してから、次の操作を行います。端末に別のVPN構成が設定されている場合は、どの構成が実際に有効かも確認し、別の接続状態を今回の結果と取り違えないようにしてください。
接続状態と実際のアクセスをそれぞれ確認
接続スイッチをオンにすると、クライアントが接続中、または接続済みであることを示します。ただし、Webサイト、DNS、すべてのプロトコルの通信が正常とは限りません。次の手順で動作を確認し、すぐにSettingsの項目を多数変更するのは避けてください。特にConfigでは、Ruleにより一部のリクエストがDIRECTになることがあります。これは設定どおりの動作であり、1つのページの接続結果だけで全体の接続失敗と判断しないでください。
ブラウザーに切り替える前に、現在のサーバー名とGlobal Routingを記録しておくと便利です。Homeに戻ったときに切断されていた場合は、エラー表示があるか確認してください。接続中のままWebページが開かない場合は、「接続済みだがアクセスに問題がある」状態として記録し、手順5で順に原因を調べます。2つの状態では確認すべき点が異なります。区別しておくと、パラメーターを何度も入力し直す手間を減らせます。
今回は手動で接続し、On Demandによる自動接続はまだ有効にしません。手動接続を確認してから自動接続の条件を設定すると、システムの起動条件とサーバーの問題を切り分けやすくなります。テストが終わり、接続が不要になったらHomeでスイッチをオフにできます。On Demandを設定済みの場合は、その設定によって再接続が起きるかも確認してください。
Connectivity Testとアクセス確認
先ほど選択したサーバーとGlobal Routingはそのままにして、HomeでConnectivity Testを実行し、選択中の項目の結果を確認します。このテストは接続状況を判断する手がかりであり、すべてのWebページにアクセスできることを保証するものではありません。Test Methodによってテスト方式が異なります。いずれかの方法で結果が返っても、その方法に関係する条件が応答したことを示すだけで、すべてのドメイン解決、認証、実際のアクセスが正常とは限りません。
続いてブラウザーを開き、普段問題なく使えて内容が明確なページにアクセスします。ページの読み込みが始まるだけでなく、テキストや必要なリソースが最後まで表示されることを確認してください。その後、今回確認したい宛先にアクセスします。基本的なページ、確認対象の順に試すと、ネットワーク全体の問題か、特定の宛先だけの問題かを切り分けられます。すでに開いていたページは再読み込みし、キャッシュされた内容だけが表示されていないか確認します。以前のページが表示されていても、新しいリクエストが完了したとは限りません。
振り分けを確認するには、Configの設定と実際に一致したルールを照らし合わせます。DIRECTになる想定の宛先には直接接続のルールが適用され、PROXYになる想定の宛先でプロキシ経路を確認します。REJECTに一致したリクエストがブロックされるのは、その動作によるものです。リクエスト履歴を確認できる場合は、宛先ドメイン、一致したルール、動作を確認してください。サーバー名や一度のテスト値だけで判断しないでください。出口IPを表示するページが示すのは、そのリクエストの出口だけであり、すべてのアプリや接続の状態を表すものではありません。
結果が一致しない場合は、まず状況を記録してください。たとえば「Connectivity Testでは結果が返るが、ブラウザーではドメイン解決エラーになる」場合は、名前解決または対象へのアクセスの問題として記録します。「スイッチをオンにするとすぐ未接続に戻る」場合は、まず許可、パラメーター、システムの接続状態を確認します。サブスクリプションを何度も更新するより、現象を明確に記録するほうが有効です。適切なトラブルシューティングの手順を選ぶのにも役立ちます。
比較テストでは、一度に変更する条件を1つにします。宛先を固定して別のサーバーに切り替えるか、サーバーを固定してProxyとConfigを比較します。変更するたびに再度アクセスし、結果の違いを記録してください。サーバー、DNS、ルール、テスト方式を同時に変更すると、アクセスが回復しても原因を特定しにくくなります。確認が終わったら普段使う設定に戻し、動作を確認できた設定を保持してください。
よくある問題と確認手順
問題が起きたら、まず端末の基本ネットワーク、読み込んだ情報、現在の選択、接続状態、アクセス先の順に確認します。最初からすべての設定を削除しないでください。使えるバックアップがあれば保管し、バックアップがない場合は、少なくとも現在の設定とエラー表示を記録してから、元に戻せる範囲で調整してください。
読み込み後、SERVERに項目が表示されない
Subscribeを使ったことを確認し、URLが完全か確認してください。サブスクリプションリンクと管理ページのURLは別のものです。ブラウザーで管理ページを開けても、そのURLを直接読み込めるとは限りません。更新時にエラーが返る場合は、エラーの種類を記録し、ご自身のサービスの状態とリンクの有効性を確認してください。同じ名前のグループを何度も作成しないでください。手動で追加した場合は、Add Serverに戻って保存が完了しているか、必須項目の入力漏れがないか確認します。
接続スイッチをオンにしても接続が維持されない
まず、システムのVPN構成追加の許可が完了していることを確認し、選択中のサーバーのType、Host、Port、認証情報を確認します。パスワードは大文字と小文字を区別し、Portは提供された情報と一致させてください。プロトコル固有の項目も任意に省略できません。次に端末のネットワーク自体が使えるか確認します。接続を一時的にオフにし、使い慣れたページにアクセスして基本的な通信を確認してから、Shadowrocketに戻ってください。ネットワークを切り替えて比較するときは、ほかの設定を変えずに行います。
テスト結果はあるのにWebページが開かない
まず、ブラウザーに表示されたのが名前解決エラー、接続タイムアウト、証明書エラー、Webサイト側のエラーのどれかを確認します。次にGlobal Routingを確認してください。Configでは失敗してProxyでは正常な場合、現在のConfigにあるRule、ポリシー参照、FINALを重点的に確認します。どちらのモードでも失敗する場合は、サーバーと名前解決に関する設定を確認します。すべてのエラーをDNSの問題と決めつけず、一度テストが成功しただけでサーバー接続の問題を完全に除外しないでください。
SettingsではTest MethodやDiagnosticsなどを確認できます。Test Methodでは現在のテスト方式を確認し、Diagnosticsは診断情報をさらに確認するために使います。利用できる項目はアプリ内の表示に従ってください。結果を比較できるよう、テスト時のネットワーク、選択中の項目、ルーティングモード、エラーの内容を記録します。DNSは設定された名前解決経路とネットワーク条件に関係します。現在の設定を把握してから必要な箇所を調整し、詳しい用語はDNSとネットワークの用語解説をご覧ください。
一部の宛先だけ失敗する、または接続が何度も復旧する
特定の宛先だけ失敗する場合は、該当ドメインがREJECTになっていないか、不適切なDIRECTルールに一致していないか、ページのリソースが別ドメインから読み込まれていないか確認します。1つのページのために、すべてのルールを削除しないでください。さらに調べる場合はConfigで実際のルールの評価順を確認し、機能とルールによる振り分けの説明を参考に各動作の違いを確認します。
手動で接続をオフにした後、再び接続される場合は、SettingsのOn Demandと関連する起動条件を確認します。自動接続で設定できるのは接続を開始するタイミングであり、サーバーへの接続を保証するものではありません。関連する自動接続を一時停止して手動テストを行い、その後、設定を1つずつ戻してください。「自動で再接続される」ことと「接続が正常に動作すると確認済みである」ことは別です。移行、サブスクリプションの更新、一括削除は初回接続に必要な手順ではありません。操作前にサブスクリプションとサーバー管理ガイドの整理・バックアップ方法をご確認ください。
このページの手順で一度接続を確認したら、普段は選択中の項目、Global Routing、接続状態を確認すれば十分です。ルールの追加やOn Demandの有効化も、「小さく変更し、実際に確認し、元に戻せる設定を保つ」という同じ手順で行えます。毎回最初から読み込み直す必要はありません。