01 サーバーを追加、またはサブスクリプションを読み込む
手元の情報の種類を確認します。サーバー一覧を更新するための完全なURLは、通常サブスクリプションとして扱います。プロトコル、アドレス、ポート、認証情報の組み合わせは、個別のサーバーとして登録します。どちらもHomeの追加メニューから始めますが、入力内容は異なります。サブスクリプションURLをHostに入力したり、個別サーバーのアドレスをSubscribeに入力したりしないでください。
サブスクリプションがある場合:Subscribeを選択
HomeでAdd Serverまたは画面上部の追加ボタンをタップし、Add Serverを開いてTypeからSubscribeを選びます。サブスクリプションのURL欄に自分のURL全体を貼り付け、先頭、末尾、クエリパラメーターが欠けていないか確認します。識別しやすい名前を入力して保存してください。URLに空白や改行が入っていたり、メッセージの一部しかコピーされていなかったりすると、読み込みに失敗することがあります。
保存後にHomeへ戻り、サーバー一覧が読み込まれるまで待ちます。項目が表示されない場合は、該当するサブスクリプションの操作メニューから更新し、エラーが表示されるか確認します。読み込みの確認ポイントは、Homeに該当グループとサーバー項目が表示され、いずれかを選択できることです。サブスクリプション名が表示されただけでは、内容の取得に成功したとは限りません。
サブスクリプションを更新すると、リモート側の内容に応じて一覧が更新されます。通常の操作では、サブスクリプションURL、サーバー情報、設定ファイルを同時に変更しないでください。まず一覧が正常に更新されることを確認してから、次の手順に進みます。更新できない場合は、URLが有効か、現在のネットワークからアクセスできるか、返された内容がアプリ対応のサブスクリプション形式かを確認してください。Webページの案内やログイン画面が返されていないかも確認します。
サーバー情報がある場合:Add Serverに項目を入力
手動で追加する場合は、まず手元の情報に対応するプロトコルをTypeで選び、HostとPortを入力します。続いて画面に表示される項目に従って、Password、Method、またはそのプロトコルで必要な認証情報を入力します。Typeによって入力項目は異なります。スクリーンショットのPasswordとMethodは該当するTypeの入力例であり、すべてのプロトコルに同じ情報を入力するわけではありません。
Hostには指定されたサーバーのドメイン名またはアドレスのみを入力します。Portはサーバーが実際に待ち受けているポートと一致させてください。パスワードは大文字と小文字が区別されるため、コピー時に前後へ空白が入っていないか確認します。TLS、サーバー名、転送パスが必要な場合も、元の情報と一つずつ照合してください。ドメイン名の見た目から推測しないでください。保存前にTypeをもう一度確認し、アドレスやパスワードが正しくてもプロトコルを間違えていないか確認します。
該当するQRコードが手元にある場合は、Scan QR Codeで読み込んだ後、各項目を確認できます。Import from Cloud JSONは、形式が対応しているクラウド上のJSON情報がある場合に使用します。どのサブスクリプションURLでもここから読み込めるわけではありません。どちらの方法でも、完了後にHomeのSERVERグループへ戻り、保存したサーバーを選択できることを確認してからGlobal Routingを設定します。
02 Global Routingと設定を選択
サーバーはプロキシ接続に使用するリモート情報を決め、Global Routingはどのリクエストを処理対象にするかを決めます。Homeに戻ってGlobal Routingをタップし、Config、Proxy、Directの3つのモードを確認します。初回利用時はスイッチがオンかどうかだけでなく、選択したモードが確認したい内容に合っているかも確認してください。
Config:ルールに従って通信を振り分ける
ドメイン名やアドレスに応じて通信を振り分ける場合は、Configを選び、Config画面で使用中の設定ファイルを確認します。Configにはルールや関連設定が保存されており、サブスクリプションのサーバー一覧は保存されません。サブスクリプションの読み込みに成功しても、目的の設定ファイルが選択されているとは限りません。HomeのサーバーとConfigの現在のファイルを別々に確認してください。
設定ファイルの編集画面を開くと、General、Rule、Hosts、URL Rewrite、HTTPS Decryptionなどのセクションを確認できます。初めて使う場合は、まず現在のファイルの入手元とRuleの末尾にあるポリシーを確認してください。接続手順を進めるために、すべてのセクションを変更する必要はありません。特にHTTPS Decryptionは初回接続に必須ではなく、このページの接続確認にも使用しません。
次の例はルールのマッチ方法を説明するもので、既存ファイルの置き換えを求めるものではありません。ルールは通常、上から順に確認され、最初に一致したルールのポリシーが適用されます。それまでのルールに一致しない場合にFINALが使われます。実際のリクエストには、現在のGlobal Routingのモードやその他の設定も影響するため、一つのルールだけで接続全体の結果を判断することはできません。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
この例では、example.comとそのサブドメインにPROXYを適用し、指定したプライベートアドレス範囲に一致するリクエストにはDIRECTを適用します。それ以外のリクエストは最終的にPROXYへ送られます。ここにあるアドレスは構文の説明用で、接続情報ではありません。既存の設定を変更する前にコピーを保存し、テスト用のルールで元の設定を上書きしないようにしてください。
ProxyとDirect:通信経路の比較に使用
Proxyは主にプロキシ経由で通信します。トラブル対処時に、ルールによる振り分けが原因かどうかを調べる際に使えます。Directは現在のネットワークから直接アクセスした結果との比較に使用します。どちらも、無効なサーバーや誤った認証情報を修正するものではありません。Proxyでアクセスできない場合は、モードを何度も切り替えるのではなく、接続情報を確認してください。
モードを確認したらHomeに戻り、使用するサーバーが選択されていることを確認します。テストのために一時的にProxyまたはDirectを使用した場合は、終了後に通常使用するConfigへ戻してください。設定ファイルの各セクション、ルールの優先順位、ポリシーの意味についてはルールと設定項目のリファレンスをご覧ください。初回利用時は「サーバー」「モード」「現在の設定」を区別できれば十分です。
03 接続を開始して認証を完了
Homeに戻り、SERVERグループから使用するサーバーを選びます。選択マークが目的の項目に付いていることを確認し、Global Routingも確認してください。スクリーンショット上部のNot Connectedは、その時点で未接続であることを示します。状態表示であり、サーバー名やテスト値で接続状態を判断することはできません。
Home上部の接続スイッチをタップします。初回接続時は、システムからShadowrocketによるVPN構成の追加を許可するよう求められる場合があります。システムのダイアログに表示されたアプリ名と説明を読み、直前に自分で開始した操作であることを確認してから、画面の指示に従って許可し、デバイスで必要な認証を完了してください。この許可により、システムが該当するネットワーク通信をアプリに渡せるようになります。サーバーアドレスや認証情報が補われるわけではありません。
システムの認証後、Shadowrocketに戻り、画面上部のスイッチと状態表示が接続中のままか確認します。スイッチがすぐ戻る、またはエラーが表示される場合は、内容を記録してからサーバー情報を確認してください。短時間に何度もタップしないでください。システムの認証が完了していない場合は、接続をもう一度開始して表示される案内に対応します。デバイスが管理ポリシーの制限を受けている場合は、その制限も確認してください。
接続状態になったことは、システム側でネットワーク処理が開始されたことを示すだけで、接続先サーバーやすべてのWebページが利用できることを意味しません。パスワードの誤り、リモートサーバーへの接続不可、ドメインの名前解決失敗、ルールの振り分け間違いなどは、実際にリクエストを送信してから判明することがあります。この手順の後は、次のセクションでテストと実際のアクセスを確認してください。
接続を停止する場合はHomeに戻り、画面上部のスイッチをオフにして状態が変わったことを確認します。初回確認中は、新たな自動接続条件を同時に有効にしないでください。手動でオフにしても再接続されると、結果を判断しにくくなります。On Demandが設定されている場合は、まず起動条件を確認してから自動動作を一時停止するか判断してください。確認方法は本ページの設定とトラブル対処をご覧ください。
04 接続と通信の振り分けを確認
確認するのは、システムの接続状態が維持されているか、選択したサーバーのテストが完了したか、実際のリクエストが想定どおり処理されたかの3点です。画面上部のスイッチ、VPNアイコン、一度のテスト結果だけでは、すべての接続先にアクセスできるとは判断できません。現在のネットワーク環境を変えず、以下の順に確認すると、結果を設定内容と結び付けやすくなります。
まずConnectivity Testを実行
HomeでConnectivity Testをタップし、テストが完了するまで待ちます。選択した項目に結果またはエラーが表示されるか確認してください。テスト方法はSettingsのTest Methodで確認できます。方法によって検査する段階が異なるため、あるテストの成功から実際のリクエストも必ず成功するとは限りません。また、テストに失敗しただけでは原因を特定できません。
テストに失敗した場合は、現在の状態を保ったまま、サーバー情報とネットワークを確認してください。項目をまとめて削除したり、テスト結果だけをサブスクリプションの有効性を判断する根拠にしたりしないでください。一覧の更新、アドレスへの接続、認証の成功はそれぞれ別の問題です。個別に確認する必要があります。
次に実際のリクエストとポリシーを確認
ブラウザーを開き、確認したいページへアクセスして再読み込みし、リクエストが完了するか確認します。Configを使用している場合は、アプリ内のリクエスト記録またはData関連の画面で、対象ドメインとリクエスト時刻を基に該当する記録を探し、実際に適用されたポリシーを確認します。具体的な画面の場所は現在のアプリの表示に従ってください。過去のリクエストや別のアプリのバックグラウンド通信を今回のテスト結果と混同しないようにします。
プロキシ経由にするリクエストではPROXYに一致しているか、直接接続するリクエストではDIRECTになっているかを確認します。REJECTに一致した場合は、そのブロックルールが元の設定意図に合っているか確認してください。CDNを使用するページは複数のドメインへリクエストを送る場合があります。一部のリソースだけ読み込めない場合は、アドレスバーのメインドメインだけでなく、失敗したリソースを確認します。
ルールと接続のどちらが原因か判断できない場合は、一時的にConfigからProxyに切り替え、同じ接続先にもう一度リクエストを送って比較できます。Proxyでは動作しConfigで失敗する場合は、ルール、FINAL、DNSを優先して確認します。どちらのモードでも失敗する場合は、サーバー情報と認証を優先して確認してください。比較後は元のモードに戻し、毎回一つの条件だけを変更して、変更前後の結果を記録します。
05 設定の確認とよくある問題
トラブル対処では「ネットワーク → 情報 → 接続 → モード → ルール」の順に確認します。まず現在の設定を保存し、読み込み、テスト、接続、実際のアクセスのどの段階で失敗したか記録してください。一度に複数の項目を変更すると、復旧してもどの設定が影響したのか分からなくなります。
サーバー一覧が表示されない:読み込み段階を確認
まずデバイスがネットワークに正常にアクセスできることを確認し、次にSubscribeに入力したURL全体、特に末尾のパラメーターを確認します。手動で更新してもサーバー項目が表示されない場合は、リモート側から有効なサブスクリプション内容が返されているか、自分のサブスクリプションが引き続き利用可能かを確認してください。エラーは原文のまま記録します。他の人に状況を伝える際は、URLに含まれる認証情報を隠してください。
項目は表示されるのに接続できない場合は、そのサーバーの編集画面を開き、元の情報に照らしてType、Host、Port、認証情報を一つずつ確認します。追加の転送設定がある場合は、パスやサーバー名などの項目も確認してください。目的は情報の一致を取り戻すことであり、プロトコルや暗号化方式を適当に変更することではありません。
スイッチはオンだがアクセスできない:段階ごとに原因を確認
まずConnectivity Testを実行し、次にGlobal Routingを確認します。Directの場合、プロキシサーバーの動作確認には使えません。Configの場合は、正しい設定ファイルが選択されているか、対象のリクエストが先行するルールに一致していないか確認してください。FINALが適用されるのは、それ以前のルールに一致しなかったリクエストだけです。すでにDIRECTまたはREJECTに一致したリクエストを上書きするものではありません。
サーバーテストに結果が表示されてもドメインにアクセスできない場合は、DNS設定と関連するリクエスト記録を確認します。DNSの変更をあらゆる問題に対する解決策として扱わないでください。認証情報の誤り、リモートサーバーへの接続不可、ルールによるブロックはDNSの調整では解決しません。まず現在の名前解決設定を記録し、問題がDNSの段階で発生していることを確認してから、一項目ずつ比較してください。確認の手順は接続スイッチがオンでもインターネットに接続できない場合のチェックリストをご覧ください。
Settings:一括変更せず、まず確認
Settingsを開くと、Test Method、On Demand、Diagnostics、Proxy、TCP、UDPなどの項目があります。Test Methodでは現在のテスト方法、On Demandでは条件に応じた自動接続の動作、Diagnosticsでは診断情報を確認または生成できます。それぞれ用途が異なるため、初回利用時にすべての設定を変更する必要はありません。
手動で接続をオフにしても自動で再接続される場合は、アプリをすぐに削除するのではなく、On Demandに条件を満たすルールが残っていないか確認してください。特定のアプリやネットワークでのみ失敗する場合は、Wi-Fiかモバイル通信か、接続先、発生時刻を記録し、TCPやUDPなど関連する設定を確認します。詳細設定の意味は問題の範囲を特定してから調べ、故障と関係のない項目を変更しないようにしてください。
Diagnosticsの情報を保存する場合は、サーバーアドレス、サブスクリプションURL、認証情報、個人のアクセス記録が含まれていないか確認し、共有前に該当部分を伏せてください。エラーの種類、発生した順序、実施済みの確認内容を記録しておけば、接続情報をすべて公開するより安全に状況を見直せます。
トラブル対処後はHomeに戻り、サーバー、Global Routing、接続スイッチをもう一度確認してから、確認手順に沿って再テストします。設定ファイルの構成、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALの詳しい説明は設定項目とルールのリファレンスをご覧ください。操作の流れを最初から確認する場合は、このページの追加と読み込みから始めてください。