Shadowrocketの機能と設定
利用可能なサーバー情報またはサブスクリプションが手元にあることを確認してから、通信の振り分け方を決めます。Home、Config、Data、Settingsなどの画面ごとに、各機能の内容や設定場所、変更後の確認方法を解説します。
Global Routing:まずルーティング方式を選ぶ
Global Routingでは、接続後の通信を設定ルールで判定するか、特定の方式で一律に処理するかを選択します。
HomeでGlobal Routingを開き、Config、Proxy、Directを確認します。選択する前に、HomeのSERVER欄に利用可能なサーバーが登録されていることと、使用中のConfigが想定どおりであることを確認してください。ルーティング方式を切り替えても、サーバーが追加されたり既存のルールが変更されたりするわけではありません。変わるのは、通信をルールで判定する方法です。ドメインやアドレスごとに継続して振り分ける場合は、まずConfigを設定し、実際に適用されたルールを確認します。
| 方式 | 処理方法 | 利用する場面 | 確認ポイント |
|---|---|---|---|
| Config(設定) | 現在のConfigに設定されたルールと最終ポリシーに従って通信を処理します。 | 接続先ごとにPROXY、DIRECT、REJECTを使い分ける場合。 | ルールの順序、ポリシー名、FINALを確認します。 |
| Proxy(プロキシ) | 選択中のサーバーを使って通信し、通常の振り分けルールを個別には適用しません。 | ルールのマッチングが問題の原因か、一時的に切り分ける場合。 | まず選択中のサーバーに接続できることを確認します。この結果だけでルール設定が正しいとは判断できません。 |
| Direct(直接接続) | 選択中のサーバーを経由せず、通信先に直接接続します。 | ローカルネットワークから接続先へ直接アクセスできるかを比較確認する場合。 | Directでの結果から、サーバーやサブスクリプションの利用可否は判断できません。 |
問題を切り分けるときは、一度に変更する項目を一つにします。元の方式を記録してからProxyまたはDirectに切り替えて比較し、確認後はConfigに戻します。ConfigとProxyで結果が異なる場合は、対象の通信がDIRECTやREJECTに振り分けられていないか、想定と異なるポリシーに一致していないかを確認してください。どちらでも接続できない場合は、サーバー情報、現在のネットワーク、接続状態を先に確認します。画面に接続済みと表示されても、すべての通信が同じ経路を通るとは限りません。
ルールによる振り分け:マッチ条件とポリシー
ルールによる振り分けはConfigで設定します。条件は対象となる通信を指定し、末尾のポリシーは一致した通信の処理方法を示します。主なポリシーは、選択中のプロキシサーバーを使うPROXY、直接接続するDIRECT、通信を拒否するREJECTです。これらのルールに基づいて結果を確認するには、Global RoutingをConfigに設定します。編集する前に、現在有効な設定ファイルを確認してください。有効でない設定ファイルを変更しても、現在の通信処理には反映されません。
ドメインルールでは、DOMAINは指定したドメインに一致し、DOMAIN-SUFFIXは指定したサフィックスに、DOMAIN-KEYWORDはドメイン内のキーワードに一致します。アドレスルールではIP-CIDRとIP-CIDR6をそれぞれ対応するアドレス範囲に使用します。GEOIPはアドレスの地域情報を使って判定するため、結果は名前解決やアドレス情報に左右されます。USER-AGENTはリクエストの識別情報に基づいて判定しますが、すべてのリクエストで利用できるとは限りません。ルールの種類は実際に確認できる対象情報に合わせて選び、ドメインの記述方法をアドレスの記述にそのまま使わないようにします。
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,ads,REJECT
GEOIP,CN,DIRECT
FINAL,PROXY
以下は構文を説明するための例であり、既存の設定をそのまま置き換えるためのものではありません。ルールは設定されたマッチング方法に従って動作するため、具体的な条件と最終ポリシーをあわせて確認してください。FINALは、それ以前のルールに一致しなかった通信に適用される最終ポリシーです。FINALをDIRECTにすると、他のルールに一致しない通信は直接接続されます。PROXYにする場合は、選択中のサーバーが利用可能であることを確認します。変更後は、動作を把握している少数の接続先で試してから、利用範囲を広げてください。想定どおりに動作しない場合は、まず一致した条件とポリシーを確認し、ルール、DNS、サーバーを同時に大きく変更しないでください。
既存のサブスクリプションとサーバー管理
サーバー項目には、接続に必要な種類、アドレス、認証情報などを登録します。サブスクリプションは、サービス提供元から取得した複数のサーバー情報を読み込み、更新するためのものです。サーバーとルーティングルールは別の要素です。ルールがあっても利用可能なサーバーがなければ、PROXYポリシーは想定どおりに動作しません。サーバーが登録されていてもDirectを選択している状態では、サーバーの動作確認にはなりません。HomeのSERVER欄で現在選択中の項目を確認し、手元の情報に応じて手動追加またはサブスクリプションの読み込みを選びます。
手動で登録する場合はAdd Serverを開き、手元の情報に合った種類を選んで、アドレス、ポート、認証情報を一つずつ確認します。画面ではShadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2などを選べる場合があります。プロトコル名はサービス提供元から案内された内容に合わせてください。種類を変更するだけで、入力済みの情報が別のプロトコルに自動対応するわけではありません。保存後にSERVERへ戻り、使用する項目を選択してから接続を確認します。
サブスクリプションのURLを持っている場合は、対応するSubscribeの読み込み画面に、サービス提供元から取得したURLを入力します。更新すると提供元の情報を再読み込みできますが、すべての項目への接続が保証されるわけではありません。更新の前後で項目名と選択中の項目を確認し、一覧の変化によってアプリがサーバーを自動選択したと誤解しないようにします。読み込みに失敗した場合は、URLが完全か、現在のネットワークからアクセスできるか、提供元のURLが有効かを確認してください。認証情報を含む完全なURLを公開ページに貼り付けないでください。
複数のサーバーを管理する場合は、自分で見分けられる名前を付け、「項目が登録されている」「項目が選択されている」「通信がルールによりその項目へ振り分けられている」の3つを区別します。Connectivity Testは接続状況の確認に役立ちますが、結果は現在のネットワーク、テスト対象、テスト方式に左右されます。問題が起きたときは、選択中の項目、ルーティング方式、テスト方式をまとめて記録すると、設定を何度も切り替えるより原因を絞り込みやすくなります。
On Demand:ネットワーク条件に応じて接続
On Demandは、設定したネットワーク条件に応じて接続を開始する機能です。異なるネットワーク環境を切り替えて使う場合に便利です。制御するのは「いつ接続するか」であり、「接続後に各通信をどのルールで処理するか」ではありません。後者はGlobal RoutingとConfigをあわせて確認します。アプリ内でOn Demandの設定画面を開き、表示される条件を確認して、実際に利用するネットワーク環境に合わせて設定してください。選択肢はインストール済みアプリの表示に従ってください。
設定前に一度手動接続し、普段使うネットワークで選択中のサーバーと現在のルールが正常に動作することを確認します。その後、使い慣れたネットワーク環境など、条件を明確に確認できる項目だけを設定します。設定後は、それぞれのネットワーク環境でHomeの接続状態を確認し、通信が想定どおりに振り分けられているかを調べます。条件が適用されない場合は、端末が実際に条件を満たすネットワークを使っているかを確認し、続いてシステムのVPN設定権限とアプリ内のOn Demand設定を確認してください。
接続の問題を一時的に調べる場合は、On DemandをオフにしてHomeの手動スイッチで再現すると、自動接続の条件とサーバーやルールの問題を切り分けられます。自動接続を再開した後は、ネットワークを切り替えてもう一度動作を確認してください。以前の手動接続だけを根拠に、条件が有効になったと判断しないようにします。常時接続とオンデマンド接続のどちらを選ぶかは利用状況によって異なります。Dataの通信量の変化も、実際に接続していた時間帯とあわせて確認してください。
Data:通信量の統計を確認
Dataでは、Shadowrocketが記録した接続関連の通信量を確認できます。Data画面の統計を見るときは、現在の接続、特定の期間、その他の集計値のどれが表示されているかを確認し、対応するアップロード量とダウンロード量を見ます。操作後にアプリが処理した通信量の変化を把握するのに役立ちますが、サービス提供元の課金記録とは異なります。集計対象、期間、計算方法が異なる場合があります。
操作前後を比較する場合は、まず現在の表示値を記録し、把握している接続先を一つ開くなど、単一の操作を行ってからDataに戻り、増加量を確認します。数値が想定どおりに変化しない場合は、Homeの接続状態、Global RoutingがConfigかどうか、対象がDIRECTまたはREJECTに一致していないかを確認してください。DIRECTで処理された通信と、選択中のサーバーを経由した通信は同じものとして扱えません。サーバーやネットワークを切り替えた後も、統計の期間と接続範囲を確認し、条件の異なる数値からルールの動作を判断しないようにします。
Dataは利用状況の把握に向いていますが、プロトコルの設定値を単独で診断するためのものではありません。サーバーへの接続を確認するにはConnectivity TestとDiagnosticsをあわせて使用し、通信経路を確認するにはConfigに戻ってルールとポリシーを確認します。複数の画面の情報をあわせることで、「通信量はあるのに接続先が開かない」「接続は正常なのに統計値があまり変わらない」といった状況を把握しやすくなります。
Settings:よく使う項目を一つずつ確認
DNS:名前解決の場所を確認
DNSはドメイン名をアドレスに変換します。関連項目はSettingsまたは現在のConfigの設定画面で確認できます。システムDNS、カスタムDNS、DNS over HTTPSでは、利用する名前解決サービスや通信方式が異なります。選択する前に、現在の設定ですでにDNSが指定されていないかを確認し、結果に影響した項目を特定できるよう一度に複数の場所を変更しないでください。ConfigでDNSを編集する場合は、アプリが対応する設定形式に従います。変更後は既知のドメインで名前解決と接続を確認してください。ドメイン名でのアクセスと既知のアドレスを直接使った場合で結果が異なるときは、DNSを優先して確認します。接続できない原因をすべて名前解決の問題と決めつけないでください。
Test Method:テスト結果の範囲を理解する
Test Methodでは、接続テストの方式を指定します。Settingsで現在の選択を確認し、HomeのConnectivity Testとあわせて利用します。テストに成功しても、その方式で応答が確認できたことを示すだけで、すべての接続先やプロトコルで同じ結果になるとは限りません。失敗した場合も、現在のネットワーク、テスト対象、サーバー情報をあわせて確認します。2つのサーバーを比較するときはTest Methodを統一し、テスト方式の違いをサーバー性能の変化と取り違えないようにします。テスト後は、実際に利用する接続先でルールの経路を確認してください。
Today Widget:確認用の入口として使う
Today Widgetは、システムが提供する便利な操作画面です。Settingsでアプリ内の関連設定を確認したうえで、端末のシステム画面の案内に従ってウィジェットを管理してください。接続状態の確認や操作に使えますが、最終的な状態はHomeの表示と実際の接続確認で判断します。ウィジェットの表示が想定と異なる場合は、ホーム画面の一度の表示だけでルールが適用されたと判断せず、アプリを開いて選択中のSERVER、Global Routing、接続スイッチを確認してください。システム画面や利用できる操作は端末の環境によって異なるため、現在の端末の表示に従ってください。
iCloud同期:同期データと有効な設定を確認
iCloud同期の設定はSettingsから確認できます。対応するAppleデバイス間で、アプリがサポートするデータを管理するために使用します。有効にする前に、元の端末で必要な設定が保存されていることを確認してください。サブスクリプションURLやサーバーの認証情報は機密情報として扱います。同期後は移行先の端末で、設定が表示されているか、どのConfigが有効か、SERVERでどのサーバーが選択されているかを一つずつ確認します。「データが表示されている」ことと「そのデータを使って現在接続している」ことは別です。同期範囲、利用可否、システム要件はアプリ内の設定とApp Storeの掲載内容をご確認ください。
Diagnostics:症状から原因を絞り込む
Diagnosticsは接続に関する問題の確認を補助する機能です。Settingsから該当する項目を開きます。利用する前に、問題が発生したネットワーク、選択中のサーバー、Global Routingの方式、接続先を記録してから診断情報を確認してください。Homeで接続を確立できない場合は、サーバーの設定値とシステムのVPN設定権限を確認します。接続済みでも特定のドメインで問題が起きる場合は、DNS、ルールのマッチ状況、FINALを優先して確認してください。On Demandの場合だけ問題が起きるなら、まず手動接続でサーバーの問題を切り分けます。診断情報にアドレスや設定の詳細が含まれることがあるため、他の人に相談する前に個人情報や認証情報を削除してください。
設定変更後の確認手順
複数の機能を組み合わせて使う場合は、画面を行き来してスイッチを試すより、依存関係に沿って確認するほうが効率的です。まず、サーバーまたはサブスクリプションの情報が正しく読み込まれていることを確認し、HomeのSERVERで対象の項目を選択します。次に、ルールに従って動作させるConfigを使うのか、一時的な比較のためにProxyまたはDirectを使うのか、Global Routingの方式を確認します。この2点を明確にしておくと、その後の確認結果を比較できます。
- Homeで接続状態と選択中のSERVERを確認します。接続できない場合は、サーバー情報とシステムのVPN設定権限を先に確認してください。
- 通信を振り分ける場合は、Global RoutingをConfigに設定し、個々のルールの条件、ポリシー、FINALを確認してから、動作が分かっている少数の接続先でテストします。
- 特定のドメインで問題が起きる場合は、DNSとルールのマッチ状況を確認します。サーバーのテストではTest Methodを統一し、Connectivity Testの結果と比較してください。
- 手動接続で問題がないことを確認してから、On Demandの適用条件をテストします。Dataを確認するときは、集計対象とテスト時間帯をそろえてください。
- iCloud同期またはToday Widgetを使った後は、Homeに戻って現在有効な設定と実際の接続状態を確認し、必要に応じてDiagnosticsも確認してください。
変更は一つずつ行い、そのたびに動作を確認して元の設定を記録しておくと、必要なときに戻せます。初回の読み込みと接続がまだの場合は、チュートリアルに沿って最小限の設定を行ってください。アプリの入手元、開発者、アプリIDを確認する場合は、App Storeでの正規アプリ確認ガイドをご覧ください。このページで説明する画面や項目は、実際のアプリ内の表示に従ってください。