公式マニュアル · 機能ガイド

Shadowrocketの機能と主な設定

まずGlobal Routingを確認し、次にルールとサーバーを確認します。機能の画面、設定方法、影響範囲を順に確認し、再確認できる設定を行いましょう。

  • Config / Proxy / Direct
  • Ruleとポリシー
  • Settingsの確認項目
01 · Global Routing

Config・Proxy・Directの3つのモード

Global Routingは接続全体の処理方法を決めます。サーバーを選択しても、すべての接続がそのサーバーを経由するとは限りません。

HomeでGlobal Routingを開き、Config、Proxy、Directから選択します。ここでいう「設定・プロキシ・直接接続」は3つのモードの説明で、画面上の表記はConfig/Proxy/Directです。通常はConfigを選び、現在の設定にあるルールに接続ごとの処理を任せます。他のモードへの切り替えは、問題の範囲を絞って確認するときに一時的に行います。

モードと画面上の表記処理方法使用する場面注意点
設定 · Config現在の設定にあるルールとポリシーに基づいて接続を処理します。ドメイン、アドレス、ネットワークの用途ごとに処理を分けて使う場合。現在有効なConfigと、ルールが参照するポリシーを確認してください。
プロキシ · Proxy通信をプロキシ経由で処理します。対象範囲はシステムとクライアントの仕様に制限されます。ルールによる振り分けが問題の原因か、一時的に切り分ける場合。速度を上げるスイッチではありません。サーバー障害は、このモードに切り替えても解決しません。
直接接続 · Directデバイスが現在接続しているネットワークから直接通信します。通常のネットワーク接続と比較し、プロキシ経由の通信が問題に関係するかを確認する場合。クライアントの接続を切る設定ではなく、他の設定による影響がなくなるわけでもありません。

設定と動作確認の手順

まずHomeで現在のGlobal Routingと選択中のサーバーを記録し、モードを1つ切り替えて、同じネットワークから同じ接続先にアクセスします。以前の接続が再利用されないよう、できるだけ接続を確立し直してください。Proxyでは接続できてConfigではできない場合は、一致するルールと参照先のポリシーを重点的に確認します。Directでも失敗する場合は、ローカルネットワーク、接続先サービスの状態、システム時刻を確認してください。比較が終わったら元のモードに戻し、一時的な検証設定をそのまま使い続けないでください。

02 · Rule / Config

ルールは条件に一致させ、ポリシーは接続の処理方法を決める

まず一致したルールを確認し、そのルールが指定するポリシーを確認します。

ルールの概要と確認する画面

ルール分岐では、ドメインやIPアドレスなどの条件に応じて接続経路を選択します。Configで使用中の設定を選び、Ruleの内容を確認してください。ルールは通常、記述順に照合されます。具体的な条件は、より広い条件より前に配置します。末尾のFINALは、それ以前のルールに一致しなかった接続に適用するポリシーです。

DOMAINは完全なドメイン名、DOMAIN-SUFFIXはドメイン名とそのサブドメイン、DOMAIN-KEYWORDはドメイン名に含まれるキーワードで照合します。IP-CIDRとIP-CIDR6は、それぞれIPv4とIPv6のアドレス範囲を指定します。GEOIPはアドレスの地域情報に基づいて照合します。USER-AGENTは該当するリクエスト情報を取得できる場合に利用するもので、すべての接続で使えるアプリ識別条件ではありません。

設定方法と注意点

DIRECTは直接接続、REJECTは接続拒否を表します。PROXYは現在の設定で定義されたプロキシポリシーとして解釈してください。カスタムポリシー名も設定内に存在し、有効である必要があります。ルールの記述が正しくても、参照先のポリシーが無効なら、接続は意図したとおりに処理されません。

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

上記は構文の例であり、既存の設定を置き換えられる完成ファイルではありません。変更前にコピーを保存し、一度に変更する条件を1組に絞ってから、接続ログで照合結果を確認してください。REJECTが拒否するのは条件に一致した接続だけです。同じドメインで複数のコンテンツを配信している場合、ドメイン単位の拒否によって正常な機能に影響することがあります。

03 · Subscribe / Add Server

登録済みサブスクリプションとサーバーの管理

サブスクリプションはサーバー情報を更新するためのもので、設定ファイルはルールや設定をまとめたものです。用途は異なります。

Subscribe:登録済みサーバー情報をまとめて更新

Homeの追加メニューから、実際の画面に従ってSubscribeを選び、ご自身が用意したサブスクリプションURLと識別しやすい名前を入力します。保存後に更新を実行し、サーバー一覧に目的の項目が表示されることを確認してください。サブスクリプションの更新は、そのURLから返された情報を同期する操作です。現在のConfigにあるルールも同時に変更されるとは限りません。

追加する前にURLが完全か確認してください。コピー時に余分な空白や改行が入っていないか、クエリパラメーターが欠けていないかも確認します。サブスクリプションURLには認証情報が含まれる場合があります。パスワードと同様に扱い、公開ログやスクリーンショットに貼り付けないでください。更新に失敗した場合は、エラーの種類を確認します。URLにアクセスできない場合、認証に失敗した場合、応答形式に互換性がない場合では対処が異なります。設定をすべて削除する操作を繰り返すのは避けてください。

Add Server:サーバーを個別に入力

手動で追加する場合は、Add Serverで正しいプロトコルを選び、ご自身が用意したサーバー情報に従ってアドレス、ポート、認証パラメーターを入力します。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2では入力項目が異なります。「パスワード」や「キー」と呼ばれる値も、同じ形式とは限りません。

Scan QR Codeを使う場合は、読み取るQRコードが追加したいサーバーの情報であることを確認してください。読み取り後もプロトコルと各項目を確認します。保存時は用途を区別しやすい名前を付け、一覧の並び順だけでサーバーを選ばないようにしてください。項目を削除する前に登録元を確認します。サブスクリプションから追加された項目は次回の更新後に再表示される場合があります。手動で追加した項目は別途バックアップしてください。

サーバーの切り替えとテストの注意点

サーバーを選択したら、Connectivity Testで現在の条件における接続性を確認できます。結果は特定の方法、接続先、時点での状態を示すもので、すべてのWebサイトに接続できることや帯域速度を示すものではありません。サーバー切り替え後も古いページに変化がない場合は、リクエストを再実行し、Global Routingが接続先を意図したポリシーに振り分けているかも確認してください。

04 · On Demand

ネットワーク条件に応じて接続を開始する

On Demandは接続を開始するタイミングを管理します。個々の接続に適用するポリシーを判定するRuleの代わりにはなりません。

ルールの概要と確認する画面

On Demandはシステムのオンデマンド接続機能を利用し、設定したネットワーク条件に応じて接続を開始します。SettingsでOn Demandの項目を探してください。利用できる条件や動作は、現在のクライアントの表示で確認します。設定を始める前に、手動で接続を有効にして正常に動作することを確認してください。サーバーの問題と自動接続の問題を混同せずに済みます。

たとえば、実際に利用できる項目に応じて、特定のWi-Fi環境ごとに異なる接続動作を設定できます。ネットワーク名は条件であり、接続が開始されるかどうかは結果です。接続開始後の通信経路は、引き続きGlobal Routingと現在の設定によって決まります。

設定方法と注意点

まずは確認しやすい条件を1つだけ追加します。保存後、該当するネットワークと別のネットワークを切り替え、意図したとおりに接続が開始されるか確認してください。複数の条件がある場合は、順序と適用範囲が重なるかを調べます。テスト時は、手動で接続を切る操作と、オンデマンドルールによる再接続を区別してください。自動再接続をスイッチの故障と誤認しないようにします。

On Demandは、どのようなシステム状態でもアプリが常に動作することを保証するものではありません。ネットワーク切り替え中に、すべての既存接続が中断されないことも保証できません。オンデマンド接続を完全に停止するには、Homeの接続スイッチを繰り返し操作するだけでなく、On Demandの設定も確認してください。

05 · Data

通信量と接続状況を確認する

Dataでは、クライアントが記録した通信量を確認できます。Dataを開いたら、表示対象の期間と統計の種類、リセット操作の有無を確認してから、アップロードとダウンロードの数値を読み取ってください。表示される統計項目はプラットフォームや画面によって異なる場合があります。同じ範囲のデータ同士を比較してください。

特定の操作で通信量が発生したか確認するには、現在の値を記録してから、目的を絞ったアクセスを1回行い、数値の変化を確認します。統計をリセットする場合は、比較に使う結果を先に保存してください。リセットすると、その後の比較基準が変わります。統計の増加だけでは、ページが完全に読み込まれたこと、ルールが正しく一致したこと、接続先のアプリが正常に処理したことは確認できません。

Dataはサービス提供元の請求明細ではありません。クライアントの集計範囲、プロトコルのオーバーヘッド、再送、接続先の計測方法は異なるため、残りの利用量を直接推定しないでください。通信量が異常に増えた場合は、システムのバックグラウンド動作や接続ログと照らし合わせて原因を調べます。数値だけを見てDNS、プロトコル、ルールなど複数の設定を一度に変更しないでください。

06 · Settings

DNS、テスト方法、補助機能

設定は用途ごとに調整してください。変更前に元の値を記録し、動作確認後に適用を続けるか判断します。

DNS:ドメイン名の解決設定

DNSはドメイン名を接続に必要なアドレスへ変換します。SettingsのDNS項目や現在のConfigに、名前解決に影響する設定が含まれる場合があります。どの階層の設定を変更しているかを確認し、実際に適用される設定の関係を確かめてください。1つの画面を変更すればすべての設定に反映されるとは限りません。

利用方法を把握していて、実際にアクセスできるDNSアドレスを使用してください。アドレス形式が選択した解決方法に合っているかも確認します。ドメイン名でのアクセスだけが失敗し、既知のアドレスには接続できる場合、DNSは確認すべき項目の1つです。サーバー自体に接続できない場合、DNSの変更だけでは通常解決しません。IPv6、キャッシュ、ネットワークごとの応答アドレスの違いも比較対象に含めてください。

Test Method:テスト方式

SettingsでTest Methodを確認し、Connectivity Testで使われる方式を把握します。選択肢は現在の画面で確認してください。方式ごとに確認する段階が異なるため、ある方式の数値を別の方式の結果として扱わないでください。

サーバーを比較する際は、テスト方式、接続先、デバイスのネットワークをそろえ、少数回のテストで安定性を確認してください。1回のテストに成功しても、認証、ドメイン名の解決、実際のアプリからのリクエストがすべて正常とは限りません。テストに失敗した場合も、接続先や方式の制約が原因の可能性があります。リスト上の1回の結果だけで順位を付けず、実際の用途でも確認してください。

Today Widget:状態確認と簡単な操作

Today Widgetは、システムが対応している場合に利用できるショートカットです。状態の確認や、クライアントが提供する操作に使えます。Settingsで関連項目を探し、システムのウィジェット管理画面で追加できるか確認してください。表示される項目や実行できる操作は、システムとクライアントの対応状況によって異なります。

設定後、ウィジェットから操作を1回実行し、Homeに戻って実際の接続状態を確認します。ウィジェットの更新には時間差がある場合があるため、表示中のテキストやアイコンだけで判断しないでください。システム上に該当するウィジェットが見つからない場合は、アプリ内の機能を使ってください。ウィジェットを探すためにネットワーク設定を変更する必要はありません。

iCloud:同期と復元

iCloudに対応したAppleデバイスでは、まずシステムアカウント、iCloudのアクセス許可、Settings内の関連項目を確認し、実際に同期される情報を確かめてください。同期、書き出し、バックアップはそれぞれ異なる機能です。サーバーの認証情報、ルール、動作状態がすべて自動で一致するとは限りません。

初めてデバイス間で同期する前に、重要な設定の使用可能なコピーを各デバイスに保存してください。一方のデバイスで小さな変更を加え、同期を待ってから、もう一方のデバイスで結果を確認します。上書きの順序を判断しにくくなるため、両方のデバイスで同時にまとめて編集しないでください。共有デバイスではアカウントへのアクセス権にも注意し、認証情報を含む設定を他の利用者に見られないようにしてください。

07 · Diagnostics

接続経路をたどって問題を切り分ける

まず現象と状況を記録し、診断結果で原因の範囲を絞ります。

Diagnosticsは、トラブルの切り分けに役立つ情報を取得する機能です。Settingsで該当する項目を探し、利用できるツールや記録内容は実際の画面で確認してください。開始前にデバイスのネットワーク、Global Routing、現在のConfig、選択中のサーバー、接続先アドレスを記録します。また、接続開始前、ドメイン名の解決中、リクエスト送信後のどの段階で問題が発生するかも記録してください。同じ症状でも原因となる段階は異なることがあります。状況を具体的に記録すると、次の確認項目を絞り込みやすくなります。

  1. まず基本的なネットワークを確認します。デバイスが正常にインターネットへ接続できるか、システム時刻が正しいか、接続先のサービスが利用可能かを確認してください。特定の接続先だけが失敗する場合、すぐにサーバー一覧全体を作り直さないでください。
  2. 次にサーバー情報を確認します。プロトコルの種類、アドレス、ポート、認証項目、関連する転送パラメーターを確認してください。サブスクリプションの更新直後に問題が発生した場合は、プロトコルの設定をむやみに書き換えず、更新前後で項目にどのような変化があったかを比較します。
  3. 続いて、接続が一致するルートを確認します。利用可能な接続ログで、ドメイン、適用ルール、最終的なポリシーを確認してください。ConfigとProxyで結果が異なる場合は、ルールの順序、ポリシー名、DNSの結果を優先して確認します。
  4. 最後に1項目ずつ比較します。一度に変更するのはネットワーク、サーバー、モード、設定のいずれか1つだけにし、リクエストを再実行して結果を記録してください。変更の影響を個別に判断でき、複数の変更が互いに隠れて原因が分からなくなるのを防げます。

診断ログを共有する前に、サブスクリプションURL内の認証情報、パスワード、キー、不要なデバイス情報を削除してください。エラーの種類や判断に必要な時刻の情報は残します。機密情報を含む設定ファイル全体を公開しないでください。診断情報は原因を判断するための材料であり、自動修復を保証するものではありません。確認後は一時的なモードやテスト設定を元に戻し、内容を説明できる最終設定を残してください。