公式ガイド · 機能と基本設定

Shadowrocket
ルーティングモードと設定

まずGlobal Routingを確認し、次にサーバーとルールをチェックします。設定は一度に一つだけ変更し、元に戻せる状態を保つと、変化の原因を特定しやすくなります。

  • Config / Proxy / Direct
  • On Demand
  • Diagnostics

01 / 通信の処理方法

Global Routing:Config・Proxy・Direct

3つのモードは通信全体の処理方法を決めるもので、サーバー情報が異なるわけではありません。

Global RoutingはHomeにあります。ドメインやアドレスごとにリクエストを振り分ける場合はConfigを選択します。選択中のサーバーでリクエストを処理できるか一時的に確認するにはProxy、現在のネットワークから対象に直接アクセスできるか確認するにはDirectを使います。変更後はテストリクエストを再実行してください。既存の接続は以前のセッション状態を保つ場合があります。

設定・プロキシ・ダイレクトに対応する画面上の項目はConfig・Proxy・Directです。画面上のProxyはモード名で、ルール内のPROXYはポリシーのキーワードです。両者は関係しますが、Proxyを選ぶことは特定のルールを有効にすることとは異なります。

Global Routingの3つのモード:動作と使い分け
画面上の項目処理方法使用する場面まず確認すること
Config現在の設定にあるルールに基づいてポリシーを決定します。ルールに基づく日常的な振り分けや、設定の動作確認に使います。有効なConfig、Ruleの順序、FINALを確認します。
Proxyアプリが処理するリクエストを、選択中のプロキシ経由で処理します。サーバーの利用可否を一時的に確認するときや、プロキシを一律に使う必要があるときに使います。選択したサーバーが正しいか、認証情報と接続パラメータがそろっているか確認します。
Directアプリが処理するリクエストを、直接接続として処理します。現在のネットワーク経路を確認し、直接接続の結果を一時的に検証するときに使います。現在のネットワークから対象に直接アクセスできるか確認します。

Config:ルール設定でポリシーを決定

まずConfigを開き、使用する設定ファイルを確認してからHomeに戻り、Global RoutingをConfigに設定します。ファイルを読み込んだだけでは、そのファイルが選択されたことにはなりません。ルールが正しくても、ルールを使うモードになっている必要があります。テストでは、PROXY経由になる想定の対象とDIRECTになる想定の対象をそれぞれ選び、結果を確認してください。1つのWebページが開けるだけで、設定全体が正しいと判断しないようにしましょう。

Proxy:プロキシ経路を一時的に確認

HomeのSERVERリストで選択中の項目を確認し、Proxyを選んで接続を開始します。ここでいう「全体プロキシモード」は、アプリが処理する範囲のリクエストを一律にプロキシ経由で処理することを指し、デバイス上のあらゆるシステム動作を指すものではありません。Proxyは使えてConfigでは使えない場合、ルールの一致条件と現在の設定を重点的に確認します。切り分け後は、必要なモードに戻してください。

Direct:現在のネットワーク経路を確認

HomeでGlobal RoutingをDirectに設定してから、対象に再度アクセスします。Directにしても、直接アクセスできない対象に接続できるようになるわけではなく、接続スイッチをオフにすることとも異なります。変わるのは処理ポリシーです。VPN接続を完全に停止するには、Homeの接続スイッチを操作してください。LAN内のデバイスにアクセスできない場合は、まずDirectで比較し、その後Configに戻って該当アドレスのルールを確認します。

02 / 一致条件と処理ポリシー

Rule:条件に一致させてからポリシーを選ぶ

ルールの種類は「何に一致するか」、ポリシーは「一致した後にどう処理するか」を示します。

ルールは通常、Config内の設定ファイルにあるRuleセクションで確認・編集します。DOMAINは完全一致のドメイン、DOMAIN-SUFFIXはドメインの末尾とそのサブドメイン、DOMAIN-KEYWORDはドメイン内のキーワードに一致します。アドレス条件にはIP-CIDRやIP-CIDR6を使えます。GEOIPはIPアドレスの割り当て地域データに基づくもので、コンテンツで使われる言語やユーザーの所在地を判定するものではありません。

よく使われるポリシーはPROXY、DIRECT、REJECTです。それぞれプロキシ経由、直接接続、リクエストの拒否に使います。ルールは通常上から順に評価され、最初に一致した有効なルールで結果が決まります。そのため、具体的な例外は広い条件より上に置き、FINALは末尾のフォールバックとして使います。以下は構文の例です。例示したドメインは、実際のアクセス先を示すものではありません。

[Rule]
DOMAIN,example.com,PROXY
DOMAIN-SUFFIX,example.org,DIRECT
DOMAIN-KEYWORD,ads,REJECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY

変更前に元の設定を保存し、変更後もファイルを正常に読み込めることを確認してください。確認せずに多数のルールを続けて追加するのは避けましょう。たとえば、短すぎるDOMAIN-KEYWORDは無関係なドメインにも一致する場合があり、広すぎるアドレス範囲はLANへのアクセスに影響することがあります。USER-AGENTはリクエストから関連情報を取得できる場合に限られるため、すべての通信に適用できる汎用条件ではありません。

DNS、Host、URL Rewriteを変更する場合は、それぞれの設定セクションの役割を確認し、Ruleに混在させないでください。構文や優先順位、セクションの詳しい説明はルールリファレンスをご覧ください。ここでは、まずConfigが有効になっていることを確認し、ルールの一致結果を検証するのがポイントです。

03 / 登録済み接続情報

SubscribeとSERVERの管理

このセクションでは、ご自身のサブスクリプションまたはサーバー情報をすでにお持ちであることを前提とします。

Subscribeでは、登録済みのサブスクリプションURLを使ってサーバーリストを読み込み、更新できます。SERVERには選択可能なサーバー項目が表示されます。登録済みのサブスクリプションは通常、Homeの追加メニューからAdd Serverを開き、Subscribeを選択してURLを入力・保存します。手動で登録する場合は、既存のサーバー情報に合ったプロトコルを選択してください。入力項目はプロトコルによって異なり、異なるプロトコルのパラメータをそのまま流用することはできません。

保存後はHomeに戻り、想定した項目がリストに表示されているか確認し、使うサーバーを選択します。サーバー名は識別用であり、プロトコル、認証情報、接続先アドレスが正しいことを保証しません。Connectivity Testを実行してから接続し、実際のリクエストで動作を確認してください。テストが1件成功しても、すべての接続先にアクセスできるとは限りません。

サブスクリプションの更新:対象を確認してから更新

該当するサブスクリプションの更新操作を見つけ、更新が必要なグループだけを更新して、成功結果が返ることを確認します。更新によりサーバーが追加・削除されたり、名前が変わったりする場合があるため、更新後は選択中の項目が残っているかも確認してください。グループが空になったり、件数が想定外に変わったりした場合は、まずURLの有効性とネットワーク状態を確認します。設定をすべて削除して再登録すると、元の選択や手動メモが失われるおそれがあります。

サブスクリプションURLにはアクセス認証情報が含まれる場合があるため、機密情報として扱ってください。URL全体を公開スクリーンショット、Webページ、診断記録に載せないでください。登録済みのサブスクリプションとConfigファイルは別のものです。前者は主にサーバー項目を管理し、後者はルールなどの設定を保持します。サブスクリプションを更新しても、現在のルールファイルの確認に代わるものではありません。

プロトコルの項目:登録済みサーバーの情報に合わせる

Shadowsocks、VMess、VLESS、Trojan、Hysteria2などのプロトコルでは、接続や認証に必要な項目が異なります。追加する際は、まずプロトコルを確認し、アドレス、ポート、認証情報、関連する通信設定を一つずつ照合してください。テストを通すためだけに検証オプションをむやみに無効にしないでください。必要な情報が不足している場合は、項目を推測して埋めるのではなく、元のサーバー情報を確認してください。

04 / 接続の自動開始

On Demand:接続を開始する条件

まず手動接続が安定していることを確認してから、接続条件を設定します。

On Demandは、設定した条件に応じてVPN接続を開始する機能です。リクエストごとの処理ポリシーを判定するRuleの代わりにはなりません。On Demandは「いつ接続するか」、Global Routingは「接続後にどう処理するか」を設定するもので、役割が異なります。On Demandを設定しても、サーバー情報の誤りやルール設定の不備は解消されません。

HomeからOn Demandを開き、現在のスイッチと条件リストを確認して、アプリ内に表示されるネットワーク条件を設定します。条件は一度に一種類だけ追加し、保存後に該当するネットワークへ切り替えて動作を確認します。次に条件に合わないネットワークでも挙動を確認してください。画面構成はアプリの現在の表示に従ってください。特定のネットワークだけに適用される条件を、すべてのネットワークで使えるものと考えないようにしましょう。

手動で接続を切った後に再接続する場合は、On Demandが有効のままになっていないか、現在の環境が接続条件に一致していないかを確認してください。自動接続を一時停止するには、Homeのスイッチを繰り返し操作するのではなく、On Demandの設定も確認します。ネットワークの切り替え、デバイスのスリープ解除、既存のセッションは確認結果に影響することがあります。状態の切り替えを待ってから、リクエストを再実行して検証してください。

05 / 利用状況の記録

Data:通信量を確認する(残量の判定には使わない)

アプリが記録する通信量は、サーバー側の課金記録とは異なります。

Dataページでは、アプリが記録した通信量を確認できます。表示された項目の種類と集計範囲を確認してから、アップロードとダウンロードの数値を比較してください。リセット機能が表示される場合は、必要な記録を残してから操作します。アプリ側の統計をリセットしても、登録済みサブスクリプションに対応するリモートアカウントの状態は変わりません。

特定の操作で通信量が発生したか確認するには、操作前の数値を記録し、対象を明確にしたアクセスを1回行ってからDataに戻り、変化を比較します。バックグラウンド処理、ほかのアプリからのリクエスト、接続維持の通信も同時に発生する場合があります。2回の数値の差を、特定のWebページの正確な通信量とみなさないでください。統計値の増加はデータ通信が発生したことを示すだけで、対象コンテンツの読み込み完了を単独で証明するものではありません。

通信の方向やルールの動作を調べる際は、Dataの数値を現在のGlobal Routing、Config、リクエスト記録とあわせて確認してください。アプリの統計を残量や請求額の根拠にしないでください。利用中のサービスの状況を確認する場合は、そのサービスに対応するアカウント記録を参照し、集計期間や計算方法が異なる可能性に注意してください。

06 / 基本項目

Settings:項目ごとに調整し、元の値を記録

機能ごとの確認方法を紹介します。設定項目の場所や選択肢は、アプリ内の現在の表示に従ってください。

DNS:現在の名前解決設定の参照元を確認

DNSはドメイン名をアドレスに変換します。名前解決の結果は、アドレスを使うルールの一致にも影響する場合があります。SettingsのDNS関連項目と現在のConfigを確認し、実際に使われている設定元を特定してから、名前解決方法やサーバーを変更してください。ドメイン名でアクセスできず、アドレスでの動作が異なる場合は、DNSも確認対象になります。ただし、それだけでDNSの障害と断定することはできません。

変更前の値を記録し、変更後にリクエストを再実行します。必要に応じて、アプリ内で案内される方法でキャッシュを処理してください。DNS、ルール、サーバーを同時に変更すると、原因の特定が難しくなります。特定のネットワーク経路を前提とする設定もあり、別のアドレスに変えても改善するとは限りません。LAN内の名前解決に影響することもあります。

Test Method:同じ方法でテストして比較

Test Methodは接続テストの方式を決める項目です。Settings内のテスト関連設定で確認できます。まず方式を一つ選び、同じサーバーに対してConnectivity Testを実行してください。テスト方式によって確認する接続段階が異なるため、結果を同列に並べて比較しないでください。応答が速くても、継続的な通信速度が速いとは限らず、すべてのアプリのリクエストが成功するとも限りません。

テスト項目に接続先アドレスが含まれる場合は、内容を把握している対象を使い、比較テスト中は変更しないでください。特定の方式で失敗した場合は、まず実際のリクエストでも確認し、プロトコルとテスト方式の組み合わせが適切かを調べます。数値だけを根拠にサーバーを削除しないでください。

Today Widget:ショートカットを使う前に選択状態を確認

Today Widgetは、情報の確認や操作をすばやく行うための入口です。Settingsで関連項目を確認してから、システムが対応する方法で所定の場所に追加します。入口が表示されるか、どの操作が使えるかは、現在のシステムとアプリの画面に従ってください。ショートカットを使う前にも、Homeで選択中のサーバーとGlobal Routingを確認してください。

ショートカットを使うと操作の手間を減らせますが、現在のネットワークに適した設定を自動判定する機能ではありません。表示状態が想定と異なる場合は、ショートカット領域の一度の表示だけで接続成功と判断せず、アプリを開いて接続状態を確認してください。

iCloud:同期対象を確認してから有効化

iCloud関連の同期はSettingsで確認します。また、デバイスのシステムでアプリのiCloud利用が許可されている必要があります。有効にする前に、アプリに表示される同期対象を確認してください。サブスクリプション、設定、認証情報、履歴データがすべて同じ方法で同期されるとは限りません。各デバイスで同期状態を確認し、重要な設定は復元できるように保管してください。

同じデータを変更する場合は、前のデバイスで同期が完了するまで待ち、複数のデバイスで同時に編集して競合しないようにしてください。iCloud同期はApp Storeでの購入復元とは別の機能です。アプリの購入と再ダウンロードはApp Storeが管理し、設定が同期されるかはアプリの設定とアカウントの状態によって異なります。認証情報を含む設定は慎重に扱ってください。

07 / トラブルシューティング

Diagnosticsと変更を絞った動作確認

基本ネットワークからルールまで段階的に確認し、すべての設定を一度にリセットしないでください。

Diagnosticsは接続問題の切り分けに使う機能で、Settingsから開けます。画面に表示される診断項目を実行して結果を確認し、現在のネットワーク、ドメイン名の解決、サーバー接続、接続先へのリクエストをそれぞれ区別します。診断結果が示すのはテスト時点の状態です。長期的な利用可否を保証するものではなく、一つのエラーからすべての接続先が利用できないと判断することもできません。

  1. 基本ネットワークを確認。現在のWi-Fiまたはモバイル通信が利用できるか確認します。必要に応じて、Directで同じ対象にアクセスして比較し、経路ごとの差を記録します。
  2. SERVERを確認。選択中の項目、プロトコル、ポート、認証情報を確認します。登録済みサブスクリプションを更新した場合は、選択中の項目が変わっていないかも確認してください。
  3. Connectivity Testを実行。Test Methodを統一し、実際のアクセス結果とあわせて判断します。テストの数値を速度の保証とみなさないでください。
  4. Proxyに切り替えて比較。Proxyは正常でConfigに問題がある場合は、Configに戻ってルールの順序、ポリシー、FINALを確認します。どちらも正常に動作しない場合は、サーバーとネットワーク条件を引き続き確認してください。
  5. 最後に自動接続と補助設定を確認。On Demand、DNS、同期の状態を確認します。変更は一度に一項目だけにし、動作確認後に変更を保持するか元に戻すか判断してください。

診断情報を保存または共有する前に、サブスクリプションURL全体、サーバーの認証情報、その他の個人情報を削除してください。再現手順、使用したモード、必要なエラー内容に絞ると、問題の切り分けに役立ちます。読み込みから接続までの一連の手順を確認するにははじめにへ、ルールを一つずつ編集するにはルールリファレンスをご覧ください。