公式マニュアル · 機能と基本設定

Shadowrocketの機能と設定

まずGlobal Routingを設定し、次にサーバー、ルール、DNSを確認します。接続のオン/オフ、ルーティングモード、オンデマンド接続はそれぞれ役割が異なるため、個別に確認してください。

ShadowrocketはAppleプラットフォーム向けのクローズドソースの商用アプリです。主にiPhoneとiPadで利用され、入手先はApp Storeのみです。システム要件とデバイスの互換性はApp Storeの掲載内容をご確認ください。アプリや購入について確認する場合は、まずApp Storeでの正規入手方法をご覧ください。初めて使う方は使い方ガイドから始められます。

ルーティングの基本

Global Routing:設定、プロキシ、直接接続

Global Routingでは、リクエスト全体に適用するルーティング方法を選択します。HomeでGlobal Routingを開き、用途に応じてConfig、Proxy、Directを選びます。Configはドメインやアドレスに応じて振り分ける場合に使用します。選択中のサーバーに接続できるか一時的に確認する場合はProxy、直接接続した場合と比較する場合はDirectを選択してください。

画面上の選択肢 主な動作 使用する場面 確認する項目
Config(設定) 現在の設定ファイルのルールに基づいてリクエストの処理方法を決定します。 宛先ごとにPROXY、DIRECT、REJECTを使い分けます。 選択中の設定ファイル、ルールの順序、最終的に適用されるポリシー。
Proxy(プロキシ) トラフィックをプロキシ経由で処理します。アプリやシステムに関する例外も確認してください。 ルールの違いによる影響を抑えて、サーバーへの接続を一時的に確認する場合。 選択中のサーバー、認証情報、実際の接続可否。
Direct(直接接続) 直接接続を使用し、通常のリクエストを選択中のプロキシサーバー経由で転送しません。 同じ宛先にローカルネットワークから直接アクセスできるか比較する場合。 ローカルネットワーク、接続先サービス、ドメインの名前解決が正常かどうか。

設定を変更する前に元の選択肢を記録し、Global Routingだけを変更して、同じ宛先に再度アクセスします。ProxyではアクセスできてConfigでは失敗する場合は、ルールと現在の設定を優先して確認してください。どちらも失敗する場合は、サーバーの設定値、DNS、ローカルネットワークを確認します。原因を絞り込むための手順であり、1回の結果だけで原因を断定するものではありません。

Global Routingは接続のオン/オフを切り替える機能ではありません。Proxyを選択してもトンネルが確立したとは限らず、Directを選択してもシステムのVPN接続が切断されるわけではありません。Homeで接続状態も確認してください。確認が終わったら必要なモードに戻し、一時的な設定をそのまま使い続けないようにしましょう。

ルールとポリシー

Rule:条件に応じて接続経路を決定

ルールはリクエストを照合し、ポリシーはそのリクエストを処理します。まずConfigで現在有効な設定ファイルを確認し、[Rule]セクションを表示または編集します。Global RoutingでConfigを使用している場合、ルールは上から順に評価され、一致したルールのポリシーが適用されます。範囲が明確な条件を前に置き、最後にフォールバックとなるFINALを置くと、読みやすく確認しやすくなります。

DOMAINは指定したドメインに一致します。DOMAIN-SUFFIXはドメインとそのサブドメインに一致し、DOMAIN-KEYWORDはドメイン内のキーワードで照合します。IP-CIDRとIP-CIDR6はそれぞれIPアドレスの範囲に使用し、GEOIPは接続先IPの地理情報に基づいて判定します。USER-AGENTは利用可能なリクエストヘッダー情報に依存するため、あらゆる接続でアプリを識別できる汎用条件ではありません。

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

上記の例は構文と順序を示すもので、すべてのネットワークで使える完全な設定ではありません。PROXYはプロキシポリシーを使用する指定で、実際の接続先は選択中の項目と設定内容によって異なります。DIRECTは接続先へ直接接続し、REJECTはリクエストを拒否します。キーワードのadsも例にすぎません。文字列として照合されるため、特定の種類のコンテンツを正確に示すものではありません。

編集前に元の設定を保存し、保存後は変更したファイルが選択されていることを確認します。検証では新しいリクエストを発生させ、利用可能な接続記録で接続先と一致したルールを確認してください。既存の接続には変更前の処理結果が適用される場合があります。各セクションの構成、ポリシー、優先順位を確認するにはルールと設定項目のリファレンスをご覧ください。内容を説明できないルールを一度に大量に追加しないようにしてください。

接続情報

SubscribeとAdd Server:登録済み情報の管理

サーバー情報には接続パラメータを保存し、サブスクリプションではそれらをまとめて取得・更新します。HomeでAdd Serverを選び、ご自身が保有するサーバー情報を追加するか、TypeでSubscribeを選んで既存のサブスクリプションURLを入力します。アプリにScan QR Codeなどの項目がある場合は、ご自身の接続情報の読み取りにも利用できます。保存前に種類を確認してください。サブスクリプションURLと単一サーバーの共有情報は別のデータです。

手動入力する場合、プロトコルの種類はサーバー側の設定と一致させる必要があります。Shadowsocks、VMess、VLESS、Trojan、WireGuard、Hysteria2、HTTP、SOCKS5では必要な項目が異なります。アドレス、ポート、認証情報、通信設定は、ご自身が保有する情報に基づいて一つずつ入力してください。TLSを使用する場合は、証明書の検証設定と関連ドメインも確認します。名称が似ていても項目を置き換えたり、接続を通すために検証をむやみに無効にしたりしないでください。

サブスクリプションを更新すると、リモートの内容が再取得されるため、ローカルの記録名、件数、設定値が変わる場合があります。手動で編集した項目を残す必要がある場合は、サブスクリプションの管理対象か確認し、必要なバックアップを取ってください。用途ごとに見分けやすい名前を付けると、Homeで選択中の項目を確認しやすくなります。ただし、名前によってルーティングポリシーが変わることはありません。

インポート後はサーバーを1つ選択し、Connectivity Testを実行してから実際のリクエストで確認してください。テストに結果が表示されても、そのテスト方法で応答があったことを示すだけで、認証、名前解決、接続先へのアクセスがすべて正常とは限りません。サブスクリプションURLにはアクセス情報が含まれる場合があります。公開するスクリーンショット、診断ファイル、共有設定には載せないでください。トラブル対応の情報を共有する前に、URL内の機密部分とサーバーの認証情報を隠してください。

接続の自動化

On Demand:ネットワーク条件に応じて接続

On Demandは設定した条件に応じて接続を開始する機能であり、リクエストごとの接続経路を決めるものではありません。SettingsでOn Demand関連の項目を確認し、アプリで設定できるWi-Fi、モバイル通信、指定ネットワークなどの条件に合わせて設定します。項目の場所や選択肢は、デバイスに表示される内容をご確認ください。初めて有効にする前に、手動接続が正常に使えることを確認してください。

まずは、特定の種類のネットワークでのみ有効にするなど、条件を一つに絞って設定し、ネットワークを切り替えて動作を確認します。テスト中はHomeとシステムのVPN状態を確認し、条件を満たしたときに接続されるか、そのネットワークから離れた後の動作が想定どおりかを見てください。特定のWi-Fiを条件にする場合はネットワーク名を確認し、似た名前のネットワークを同一の条件と取り違えないようにしましょう。

On DemandとGlobal Routingは同時に機能します。前者は接続を開始するタイミングを決め、後者は接続確立後のリクエスト処理方法を決めます。手動で切断しても条件が満たされたままの場合、システムが再接続することがあります。一時停止するには接続スイッチを繰り返し操作するのではなく、On Demandの設定も確認してください。

オンデマンド接続によるバッテリー消費は、ネットワークの切り替え頻度、実際の通信量、再接続の状況によって異なります。スイッチの状態だけでは判断できません。システムのバッテリー設定で、使用時間や状況と合わせて消費割合を確認してください。頻繁に再接続する場合は、まずネットワーク条件とサーバーの安定性を確認してから、接続条件を調整します。複数の設定を同時に変更しないようにしてください。

通信量の確認

Data:通信量の統計を確認

Dataではアプリに記録された通信量を確認でき、利用傾向の把握や急増の調査に役立ちます。Dataを開いたら、表示中の統計の対象範囲と期間、アップロードとダウンロードの区別を確認してから数値を読み取ります。表示によって接続範囲や集計範囲が異なる場合があります。画面上の説明を確認し、一部の統計をデバイス全体の通信量として扱わないでください。

特定の操作による通信量を調べるには、まず現在の数値を記録し、目立ったほかのネットワーク活動を止めてから、同じ操作を一度行い、変化を比較します。アプリのバックグラウンド同期、メディアの先読み、システムの通信が同時に発生する場合があるため、短時間の差分が直前に開いたページだけによるものとは限りません。集計範囲を変更したり記録を消去したりする前に、残しておきたい結果を保存してください。

Dataの記録、システムのモバイル通信量、利用中のサービス側の使用量記録では、集計期間や計測方法が異なる場合があります。通信のオーバーヘッド、集計範囲、更新タイミングも差の原因になります。Dataはローカルでの確認に適していますが、サービス側の使用量記録の代わりにはなりません。また、通信量が増えただけでは特定のルールが適用されたとは判断できません。接続の詳細と実際のポリシーも確認してください。

よく使う設定

Settings:名前解決、テスト、ウィジェット、診断

Settingsの項目はそれぞれ異なる役割を持ちます。DNSはドメインの名前解決、Test Methodはテスト方法、Today Widgetはウィジェットへのアクセス、iCloudは関連データの同期、Diagnosticsはトラブル対応に必要な情報の収集に関係します。まず解決したい問題の層を特定し、該当する項目を確認してください。名称、場所、利用できる機能はアプリの実際の画面でご確認ください。

DNS:設定元を確認

DNSはドメイン名を接続先のアドレスに変換します。SettingsのDNS関連項目を確認する際は、現在のConfigの[General]セクションも確認し、dns-serverなどの設定があるか調べてください。画面上の設定と設定ファイルの両方が動作に関係する場合、入力欄に値があるだけで、すべてのリクエストが同じ経路で名前解決されるとは限りません。

変更前に元の値を記録し、一度に一か所だけ変更して、同じドメインで確認します。サーバーの遅延に問題がないのにWebページを開けない場合は、名前解決の失敗も確認対象にしてください。ルーティングで適用されたルールと接続先の状態も確認します。出所が不明な複数のDNSアドレスをむやみに追加したり、DNSサービスの設置場所をリクエストの最終的な接続先と同一視したりしないでください。

Test Method:測定対象を確認

Test MethodではConnectivity Testで使うテスト方法を選択します。Settingsでアプリが提供する方法を選び、Homeに戻って選択中のサーバーをテストしてください。複数の結果を比較する場合は、テスト方法、ネットワーク環境、テスト対象を揃えます。条件が異なる数値をそのまま比較することはできません。

方法によっては、接続の確立やテストリクエストの一部しか測定しない場合があります。表示される数値はWebページ全体の読み込み時間ではありません。テストに応答があるのにサービスへのリクエストが失敗する場合は、プロトコル認証、TLS、DNS、ルールを引き続き確認してください。テストが失敗しても実際のリクエストが正常なら、すぐにサーバー情報を削除せず、まずテスト対象と方法を確認します。

Today Widget:ウィジェットの利用範囲を確認

Today Widgetでは、システムのウィジェットに表示する情報や操作を設定できます。Settingsでアプリが提供するウィジェット設定を確認し、システムの該当エリアで追加または調整してください。配置場所、表示形式、利用できる操作はシステムの対応状況によって異なります。現在のデバイスに表示される内容をご確認ください。

設定後はHomeに戻って接続状態を確認し、ウィジェットの表示と一致しているか確認します。ウィジェットは対応する情報の確認や操作に便利ですが、サーバーの詳細な選択、設定ファイルの編集、ルールの確認はアプリ内で行ってください。デバイスがロックされているときに表示される情報についても、システムの設定を確認しましょう。

iCloud:同期前に両方の状態を確認

iCloud関連の設定では、対応する範囲でアプリのデータを同期できます。使用前にシステムでiCloudが有効になっているか、Shadowrocketによる関連サービスの利用が許可されているかを確認し、アプリ内で同期可能なデータの種類を確認してください。同期範囲は画面の説明に従ってください。サーバー情報、設定、統計データがすべて同じ方法で同期されるとは限りません。

別のデバイスで初めて有効にする前に、両方のデバイスで残しておきたい内容をバックアップし、ローカルとクラウドのデータを確認してください。統合や上書きの動作が分からないまま、続けて操作しないようにしましょう。同期が完了しても、選択中のサーバー、Global Routing、接続スイッチが適切な状態とは限りません。デバイスを変更した後も各項目を確認し、接続を再テストしてください。

Diagnostics:失敗時の情報を収集

Diagnosticsでは、接続の問題を確認し、アプリが提供する診断情報を表示できます。Settingsから該当する項目を開き、問題が起きたネットワーク、Global Routingの選択肢、現在の設定を記録してから、失敗を一度再現します。診断内容はその操作に関連付けて確認してください。長期間にわたって大量に蓄積した記録は、原因の特定が難しくなることがあります。

診断情報を読むときは、ドメインの名前解決、サーバーへの接続、認証、ルールによる処理などの段階を区別し、どの段階で最初に異常が発生したか確認します。診断情報を共有する前に、アクセス先のドメイン、サーバーアドレス、サブスクリプション情報、認証情報が含まれていないか確認し、トラブル対応に必要な内容だけを残してください。診断記録は原因を探るための手がかりであり、単一のエラーだけで原因を断定できるものではありません。

実際の操作

順番に設定を確認

まず再現可能な最小限の状況を作り、その後、普段使う設定を一つずつ戻します。サーバー、設定ファイル、DNS、テスト方法を同時に変更すると、結果が変わっても、どの変更が影響したのか判断しにくくなります。変更のたびに状況を記録し、元の値に戻せるようにしておきましょう。

  1. 接続情報を確認。Homeで、選択中のサーバーがご自身の有効な情報に基づくものか確認し、プロトコル、アドレス、ポート、認証情報が揃っているかを確認します。
  2. 接続状態を確認。システムのVPN設定の許可が完了していることを確認し、実際の接続状態を確認します。接続スイッチがオンであることと、接続先にアクセスできることは別です。
  3. ルーティングを確認。Global RoutingでConfig、Proxy、Directのどれが選択されているかを確認します。Configを使う場合は、使用中の設定ファイルも確認してください。
  4. リクエストを確認。同じ接続先に新しいリクエストを送り、ルールの適用結果、DNS、Diagnosticsを確認して、どの段階で失敗したかを調べます。
  5. 自動化設定を戻す。基本の接続が正常であることを確認してから、On Demand、ウィジェット、同期を有効にし、最後にDataの集計範囲を確認します。

初回接続を手順に沿って進める場合はShadowrocketの使い方ガイドをご覧ください。キーワードの記述方法を確認する場合は設定項目リファレンスをご覧ください。購入、インポート、接続時の状況について疑問がある場合はよくある質問をご確認ください。各ページは操作内容ごとに分かれています。一つの設定を確認するために設定ファイル全体を変更する必要はありません。