Shadowrocketの機能解説
Global Routingの仕組みから確認し、ルール、サーバー、接続条件を順に見ていきます。各設定の機能、場所、操作方法、注意点を説明します。自分で用意したサブスクリプションまたはサーバー情報がある方向けです。
- Config / Proxy / Direct
- ルールの照合とポリシーの動作
- 接続テストと設定のトラブルシューティング
Global Routingの3つのモード
Global Routingでは、接続後のリクエスト全体に適用する処理方法を選択します。設定場所はHomeです。現在のモードをタップし、Config、Proxy、Directを確認してください。ここでのConfigは通信振り分けのモード名です。画面下部のConfigページは設定ファイルの管理画面で、関連はありますが別の項目です。
| モード | 処理方法 | 利用する場面 | 確認するポイント |
|---|---|---|---|
Config(設定)Config |
現在有効な設定に含まれるルールに従って、リクエストの処理方法を決定します。 | ドメインやアドレスなどの条件に応じて、通常の通信を振り分ける場合。 | 設定ファイルが有効か、ルールの順序と最後に適用される処理が正しいか。 |
Proxy(プロキシ)Proxy |
通常、設定ルールごとに振り分けず、選択中のプロキシにリクエストを送ります。 | 選択中のサーバーで目的のリクエストを処理できるか、一時的に確認する場合。 | 選択中のサーバーと、関連するネットワークや名前解決の条件。 |
Direct(直接接続)Direct |
通常、プロキシサーバーを経由せず、接続先に直接接続します。 | デバイスが現在接続しているネットワークから、直接アクセスできるか確認する場合。 | ローカルネットワークでアクセスが許可されているか、接続先に到達できるか。 |
モードを選んでから比較する
通常、ルールに従って通信する場合はConfigを選び、必要なルールが現在の設定に含まれていることを確認します。特定のリクエストを調べる際は、一時的にProxyまたはDirectへ切り替えて比較できます。接続先を同じにし、ネットワーク条件をできるだけ変えず、元のモードも記録しておきましょう。確認後は通常使用するモードに戻し、一時的な設定をそのまま使い続けないようにしてください。
モード名だけでは接続が成功したとは判断できません。システム上でVPN接続中と表示されても、サーバー認証、DNS、接続先への接続で失敗することがあります。また、Proxyを選んでも、デバイス上のすべてのシステム通信が必ず同じ経路を通るわけではありません。ステータスアイコンだけで判断せず、実際のリクエストと診断記録を確認してください。
ルールによる振り分けとポリシー
ルールには「何に一致するか」と「一致した場合に何をするか」が記述されています。Configページで既存の設定を選び、編集画面からルールを確認します。次にHomeでGlobal RoutingをConfigに設定してください。変更前にバックアップを取り、編集したファイルが有効になっていることを確認してからテストしましょう。
DOMAINは完全一致のドメイン、DOMAIN-SUFFIXはドメインの末尾とそのサブドメイン、DOMAIN-KEYWORDはドメインに含まれるキーワードに一致します。IP-CIDRとIP-CIDR6はそれぞれアドレス範囲を指定し、GEOIPはIP位置情報データベースを使って照合します。データベース上の地域分類と、Webサイトの運営主体の所在地は同じとは限りません。USER-AGENTで判定できるかどうかは、リクエストから該当情報を取得できるかによります。すべてのアプリ通信を識別できると考えないでください。
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
上記はルール構文の例であり、完全な設定ではありません。また、実際のWebサイトに適用するルールを推奨するものでもありません。PROXYはプロキシポリシーに渡す指定、DIRECTは直接接続、REJECTはリクエストの拒否を表します。設定では、定義済みのポリシーグループ名を参照する場合もあります。ポリシーグループはサーバーアドレスではありません。参照する前に、該当するグループが存在し、グループ内で有効な項目が選択されていることを確認してください。
ルールの順序で照合結果が決まる
通常、リクエストは上から順に照合され、一致した時点で該当する処理が実行されます。そのため、具体的なルールは、それを上書きする可能性がある広範なルールより前に配置してください。FINALは、それまでに一致しなかったリクエストを処理するため、ルールの末尾に置きます。問題を調べるときは、まずドメインまたは接続先アドレスを確認し、一致したルールと処理内容を調べましょう。一度アクセスに失敗しただけで、ルール全体とDNSを同時に書き換えないでください。
サブスクリプションとサーバーの管理
Homeのサーバー一覧には、接続に必要な情報が保存されています。すでにお持ちのサブスクリプションは、追加メニューのSubscribeから読み込めます。個別のサーバー情報はAdd Serverに入力してください。既存の情報に応じて、Scan QR Codeまたはクリップボードからのインポートも利用できます。読み込む前に、情報がご自身のサービスのものであり、選択した方法に合う形式であることを確認してください。
手動で追加する場合は、正しいプロトコルを選び、アドレス、ポート、認証情報、通信パラメータを順に入力します。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2では必要な項目が異なります。「パスワード」「公開鍵」「アドレス」といった同じ名称の情報でも、相互に置き換えられるとは限りません。既存のサービス情報を確認し、暗号化方式やポートを推測して何度も試す方法で代用しないでください。
Subscribeの更新と手動変更
サブスクリプションを更新すると、リモートの一覧が再読み込みされ、名前、件数、接続パラメータが変わることがあります。まず登録先のURLが有効か確認してから、そのサブスクリプションの更新操作を行ってください。更新に失敗した場合は、比較できるよう元の一覧を残し、すぐに削除して作り直さないでください。自動更新の条件や項目は、現在のアプリ画面で確認してください。一覧の更新は、サービスの有効期限を延長するものではありません。
複数のサブスクリプションには用途がわかる名前を付け、表示名だけでサーバーを選ばないようにしましょう。サブスクリプションから読み込んだ項目を手動で変更しても、次回の更新で変更内容が上書きされることがあります。保持したい個別設定は、あらかじめバックアップしてください。サブスクリプションを削除する前に、含まれる項目と、現在選択中のサーバーも削除対象になるかを確認しましょう。
サーバー一覧とルール設定の役割は異なります。前者は「どこに接続するか」、後者は「どのリクエストをどの経路に振り分けるか」を管理します。サーバーが表示されていても設定が有効とは限らず、設定を読み込んでも有効なサーバーが登録されているとは限りません。更新、並べ替え、書き出し、削除の手順はサブスクリプションとサーバーの管理ガイドをご覧ください。
On Demandによるオンデマンド接続
On Demandでは、設定した条件に応じてVPN接続を開始または管理できます。Settings内のOn Demandを開き、画面に表示されるネットワーク条件と動作を確認してから、必要に応じて有効にしてください。利用できる項目はデバイスやシステム環境によって異なる場合があります。アプリ内の表示に従ってください。
まず手動接続で、既存のサーバー、ルール、DNSが正常に動作することを確認してから、オンデマンド接続の条件を設定しましょう。条件は一度に一つ追加し、該当するネットワークで接続と切断の動作を個別に確認してください。Wi-Fi名に関する条件を設定した場合は、名前が完全に一致するか、ネットワーク切り替え時にどう動作するかも確認します。
オンデマンド接続は接続を開始する機能であり、誤ったパスワード、利用できないサーバー、不完全な設定を修正するものではありません。手動で切断しても再接続される場合があります。その場合はシステムのVPN設定を何度も削除せず、まずOn Demandの条件を確認してください。問題の調査中は、該当するオンデマンド設定を無効にしてから手動で切断します。調査後は、記録しておいた設定に戻してください。
Dataで通信量を確認
Dataでは、クライアントに記録された通信量を確認できます。Dataページを開き、集計対象、期間、画面に表示されたアップロードとダウンロードの方向を確認してから、内容が明確なネットワーク操作を一度行ってみましょう。統計をリセットする項目がある場合は、比較できるよう実行前に現在の数値を記録してください。
通信量の統計からわかるのは、特定の時間帯に通信量が変化したかどうかです。接続先のWebページが完全に読み込まれたことを単独で証明するものではありません。リクエストの再試行、接続確立、一部リソースの転送でも通信量が発生することがあります。バックグラウンドの通信も数値に影響します。検証時は不要な同時通信を止め、同じ接続先で繰り返し確認し、接続記録とあわせて判断してください。
クライアントの統計と利用中のサービスでは、計測基準が異なる場合があります。プロトコルの通信オーバーヘッド、集計範囲、リセット時刻、複数デバイスの同時利用などが差の原因になります。Dataはサービス側の残り通信量を確認するものではなく、サブスクリプションの有効期限を推測するためにも使えません。通信量の異常が疑われる場合は、まず集計期間を確認し、バックグラウンドアプリやリクエストの重複を調べてください。
SettingsとDNS
DNSはドメイン名を接続先アドレスに変換する仕組みで、接続開始前の重要な処理です。設定項目はSettingsで確認できます。また、現在の設定ファイルにDNS設定が含まれる場合もあるため、有効な設定の内容も確認してください。全体設定を変更する前に現在の値を記録し、「デバイスのネットワークが提供する名前解決方法」と「設定で指定されている名前解決方法」を区別しましょう。
サーバーの遅延テストは正常でもWebページが開かない場合、まずドメインの名前解決と、その後の接続のどちらで失敗しているかを確認します。DNSアドレスの形式と到達性、現在の設定との互換性を調べ、同じドメインのリクエスト記録も確認してください。暗号化DNSに対応していても、任意のアドレスを入力すれば動作するわけではありません。アドレス、プロトコル、接続経路の組み合わせを確認しましょう。
名前解決の条件は一つずつ変更する
現在の設定を保存してから、一項目だけ変更して再テストしてください。サーバー、Global Routing、DNSを同時に変更すると、成功しても失敗しても原因を特定しにくくなります。IP系のルールは名前解決後のアドレスに依存する場合があり、DNSの変更がルールの照合結果に影響することもあります。名前解決が復旧した後も、実際に適用された振り分け処理を確認してください。
変更後に状態が悪化した場合は、記録しておいた設定に戻してから調べてください。キャッシュを消去すると名前解決の過程を改めて確認できる場合がありますが、到達できないDNSサービスや誤ったルールは解決できません。記録を共有する際は、個人のドメイン名、サブスクリプションURL、認証情報を隠し、問題の再現に必要な項目だけを残してください。
Test MethodとDiagnostics
Test Methodでは、接続テストの方法を選択できます。Settingsで確認してください。HomeのConnectivity Testでは、一覧の項目をテストできます。調査目的に合ったテスト方法を選んでからサーバーをテストしましょう。現在の方法で接続先アドレスが必要な場合は、そのアドレスが有効で、想定どおりにアクセスできることを確認してください。
テスト方法によって確認する通信経路は異なります。基本的な接続を確立できても、認証や接続先へのリクエストが成功するとは限りません。リクエストを使うテストも、テスト先、DNS、現在のネットワークに影響されます。結果を比較する際は、同じテスト方法と接続先を使い、異なる方法の数値をそのまま並べて比較しないでください。一度低い遅延が出ても、その時点の状況を示すだけで、実際の利用確認に代わるものではありません。
Diagnosticsで確認する順序
Diagnosticsでは、トラブルシューティングに必要な情報を収集または確認できます。Settingsの該当項目を開いてください。まずデバイスのネットワークが使えることを確認し、次にサーバーのパラメータ、ドメインの名前解決、一致したルール、接続先への接続を調べます。問題を再現するときは、明確なリクエストを一つだけ実行し、発生したネットワーク環境と操作の順序を記録してください。同時に多数のリクエストを発生させると、原因の手がかりが埋もれることがあります。
ログや診断結果には、サーバーアドレスやアクセス先ドメインなどの個人情報が含まれる場合があります。共有前に内容を確認し、サブスクリプションの認証情報、パスワード、秘密鍵を削除してください。設定全体をそのまま共有しないでください。認証段階でエラーが発生する場合は接続パラメータを、特定のドメインだけで問題が起きる場合は名前解決とルールを優先して確認します。アプリの再インストールを繰り返す必要はありません。
初回接続までの確認手順は使い方ガイドをご覧ください。診断の目的は失敗している箇所を特定することです。設定を何度も切り替えて、偶然一度だけ接続できる状態を目指すものではありません。
Today WidgetとiCloud同期
Today Widgetのクイック操作
Today Widgetの関連項目はSettingsにあり、システムが対応するウィジェットの表示やクイック操作を設定できます。まずアプリ内で利用可能な項目を確認し、その後システムのウィジェット管理画面から追加してください。表示の可否、実行できる操作、配置場所は、デバイスのシステムとアプリの対応状況によって異なります。特定のレイアウトがすべてのデバイスで共通だとは限りません。
ウィジェットは、動作確認済みの日常的な操作に便利ですが、サーバーやルールの詳細確認に代わるものではありません。ウィジェットから切り替えた後、想定どおりに動作しない場合は、Homeに戻ってサーバー、接続状態、Global Routingを確認してください。表示が更新されていない場合は、アプリを開いて実際の状態を確認しましょう。ウィジェットの表示だけで接続の成否を判断しないでください。
iCloud同期と個別バックアップ
SettingsでiCloud同期に関する項目を確認し、システム側でアプリのiCloud利用が許可されていることも確認してください。同期前に、現在のデバイスの設定とサブスクリプションが揃っているか確認します。新しいデバイスでは、まず同期が完了するのを待ってから、ファイル、サーバー一覧、選択中の項目を確認してください。同期される内容はアプリ内の説明とデバイスの実際の表示に従い、すべての設定や状態が復元されると決めつけないでください。
iCloud同期は個別バックアップの代わりにはなりません。削除や変更がほかのデバイスにも反映されることがあり、オフライン中のデータはまだアップロードされていない可能性があります。複数の項目を削除する場合、設定を置き換える場合、デバイスを変更する場合は、必要なデータを別途書き出して安全に保管してください。設定やサブスクリプションには機密情報が含まれることがあります。自分で管理できる場所に保存し、一般公開の添付ファイルとして共有しないでください。
App Storeでの購入済み項目の復元と設定の復元は別の手順です。前者はアプリを入手する権利を復元し、後者はご自身のサービス情報や設定を復元します。再インストール後も必要な情報が揃っているか確認し、接続テストを行ってください。購入対象とシステム要件はApp Storeのページをご確認ください。