公式ガイド · 機能紹介

Shadowrocket 機能と基本設定

まず通信の処理方法を決め、次に接続するタイミングを設定します。Global Routingは全体のルーティング方式、Configのルールはリクエストの振り分け先、On Demandはシステムが自動接続する条件を決めます。この3つはそれぞれ別の設定です。

  • Homeでサーバーとルーティングを選択
  • Configでルール設定を管理
  • Settingsで共通設定を確認
  • Dataで通信量の記録を確認

このページでは主にiPhoneとiPadでの操作を、「機能の概要」「画面の場所」「設定方法」「注意点」の順に説明します。画面の言語やアプリのアップデートによって、設定項目の場所が異なる場合があります。見つからないときは現在の画面とアプリ内の説明を確認し、複数の設定を同時に変更しないでください。

Global Routing:Config・Proxy・Direct

Global RoutingはHomeにあり、現在の接続全体に適用するルーティング方式を選択します。Config、Proxy、Directはそれぞれ画面上のモード名です。通常、ルールに応じてリクエストを振り分ける場合はConfigを使います。選択中のサーバーで接続できるか一時的に確認する場合はProxyに切り替えます。問題がプロキシ経由の通信に関係するか確認する場合は、比較のため一時的にDirectを使います。

モード 主な処理方法 使用場面 最初に確認すること
Config(設定) 現在有効な設定のルールとポリシーに基づいてリクエストを処理します。 通常のルール振り分けや、ローカルネットワークとその他のリクエストの区別。 現在の設定、ルールの順序、ポリシーの参照先。
Proxy(プロキシ) 通信をプロキシ経由で処理します。Configの通常のルールに沿った振り分けは行いません。 選択したサーバーへの接続経路を短時間で確認する場合。 選択したサーバーが有効か、プロトコルのパラメータが正しいか。
Direct(直接接続) 通信を直接接続で処理します。 現在のネットワークから直接アクセスした結果との比較。 現在のネットワークから目的の接続先にアクセスできるか。

設定方法:モードを選び、新しいリクエストで確認

Homeを開き、Global Routingでモードを選んで戻ります。Configを使う場合は、Configで想定した設定が有効になっていることも確認してください。Proxyを使う場合は、Homeで想定したサーバーが選択されていることを確認します。対象アプリに戻って新しいリクエストを実行し、結果を確認します。既存の接続やキャッシュ済みのページを、新しいテスト結果と混同しないようにしてください。

DirectはシステムのVPN接続をオフにする設定ではありません。リクエストの処理方法を示すもので、接続スイッチの状態とは異なります。また、Proxyに切り替えても、サーバーのパラメータ誤りは解消されません。モードを比較する際は、ネットワーク、接続先、選択中のサーバーを固定し、変更する条件は1つだけにしてください。テスト後は元のルーティング方式に戻し、一時的な設定がその後の利用に影響しないようにします。

Config:ルールの種類・順序・ポリシー

Configでは設定ファイルを管理し、ルールによる振り分けも行います。ルールは「どのリクエストが該当するか」、ポリシーは「該当したリクエストをどう処理するか」を定めます。Global RoutingでConfigを選んだら、現在の設定を開き、ルールの内容と参照先のポリシーを確認してください。ファイルを読み込んだだけで有効化していなければ、そのファイルを使って接続していることにはなりません。

よく使われるルールの種類

DOMAINはドメインを完全一致で判定します。DOMAIN-SUFFIXはドメインのサフィックスとサブドメインを対象とし、DOMAIN-KEYWORDはドメインに含まれるキーワードで判定します。IPアドレス範囲にはIP-CIDRまたはIP-CIDR6を使います。GEOIPはIPアドレスの位置情報データベースに基づいて分類します。USER-AGENTはリクエストから取得できるUser-Agent情報を対象とするルールです。暗号化されたすべてのリクエストに使える汎用的な識別方法ではありません。

PROXY、DIRECT、REJECTは、プロキシ経由、直接接続、拒否を指定する一般的なポリシーです。設定によってはカスタムポリシーグループを参照する場合もあります。カスタム名だけで最終的な接続経路を判断せず、グループ内で実際に選択される項目まで確認してください。

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

上の例はルールの構文と順序を示すもので、完全な設定ではありません。example.comは例示用のドメインです。キーワードルールは意図しないドメインにも一致することがあるため、必要な範囲に絞ってください。no-resolveは、そのIPルールのために追加のドメイン名前解決を行わない指定であり、DNSを全体的に無効にするものではありません。

変更方法:具体的なルールを先に、最後に最終処理

ルールは通常、上から順に照合され、一致した時点で対応するポリシーに従って処理されます。そのため、より具体的な例外ルールを広範なルールより前に置きます。FINALは、先行するルールに一致しなかった場合の最終処理を指定します。変更前に元の設定を保存し、変更後は新しいリクエストを実行して、利用可能なリクエスト記録から一致したルールと処理ポリシーを確認してください。

リモートで管理される設定は、更新時にローカルの内容が置き換わることがあります。個別の変更を長期間残す場合は、設定の更新方法とローカルコピーの関係を先に確認してください。出所の分からないルールを一度に大量に追加しないでください。問題が起きたときに重要なのはルールの総数ではなく、「どのリクエストがどのルールに一致したか」です。

Home:サブスクリプションとサーバーの管理

サーバー項目には、1つの接続に必要なプロトコル、アドレス、ポート、認証パラメータが保存されます。Subscribeは、利用者自身が用意したサブスクリプション情報から複数の項目を更新する機能です。サーバー情報とConfigは別のもので、前者は接続先、後者はリクエストの振り分け方法を指定します。サブスクリプションを読み込んだ後も、選択中のサーバーとGlobal Routingを確認してください。

Add Server:登録済みサーバー情報を項目ごとに確認

HomeからAdd Serverを開き、手元にある情報に合わせてプロトコルを選び、対応する項目を入力します。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardなどでは、必要な項目が異なります。アドレスとポートに加え、認証情報、通信方式、TLS、Server Nameなどの確認が必要な場合もあります。手元のサーバー情報と、アプリに現在表示されている項目に従ってください。

QRコードから読み込む場合はScan QR Codeを使い、保存前に読み取り結果を確認します。QRコードは情報を格納する手段であり、設定内容が正しいことを保証するものではありません。手動入力では、前後の空白、ポート番号、認証情報に漏れがないか確認してください。表示名は識別しやすい名前に変更できますが、名前を変えても接続パラメータの誤りは直りません。

Subscribe:更新後に項目と選択状態を確認

自分で用意したサブスクリプションを追加するには、Subscribeを選び、既存のサブスクリプションURLを入力して保存し、更新を実行します。更新に成功した場合、URLを読み取れて認識可能な項目が作成されたことは分かりますが、すべてのサーバーに接続できるとは限りません。まず項目が表示されることを確認し、サーバーを1つ選んでConnectivity Testを実行してから、実際のリクエストを確認してください。

サブスクリプションの更新に失敗した場合は、URLが完全か、有効な状態か、現在のネットワークから読み取れるかを確認してください。すべての項目を何度も削除する必要はありません。更新後に項目名や数が変わり、以前の選択を確認し直す必要が生じる場合があります。サブスクリプションURLやQRコードには認証情報が含まれることがあるため、問題を記録する際は機密部分を隠してください。

On Demand:条件に応じた自動接続

On Demandは、システムのオンデマンド接続機能を使い、条件を満たしたときに接続を開始します。接続を開始するタイミングを決める機能であり、Global Routingの振り分け設定を置き換えるものではありません。Wi-Fi、モバイル通信、ドメインに関する条件が用意されている場合があります。選択できる項目は、現在のOn Demand画面で確認してください。

設定方法:確認しやすい条件を1つ選ぶ

Settings内のOn Demand関連設定を開き、現在の条件を確認してから、実際の利用状況に合わせて追加または変更します。初めて設定するときは、指定したWi-Fi環境での接続動作を確認するなど、検証しやすい条件を1つだけ設定してください。保存後に該当するネットワークへ切り替え、システムの処理を待ってから、システムの接続状態と実際のリクエストを確認します。

条件に順序や優先関係がある場合は、画面の説明に従って確認してください。接続と切断の条件を同時に複数追加し、互いに矛盾させないようにします。また、条件の変更と同時にサーバー、DNS、設定ファイルを切り替えないでください。複数の項目を変えると、挙動が変わっても原因を特定できません。

注意点:手動で切断しても再接続する場合

手動で切断した後に再接続する場合は、すぐにスイッチの異常と判断せず、On Demandの条件が引き続き満たされていないか確認してください。一時的な切り分けで手動接続の状態を保つ必要がある場合は、元の条件を記録してからOn Demandをオフにし、テスト後に元へ戻します。有効にしても必ずバッテリー消費が減るわけではありません。実際の消費は、起動頻度、バックグラウンドのリクエスト、ネットワークの切り替わりにも左右されます。

Wi-Fi、モバイル通信、ドメイン条件の組み合わせについては、On Demandの設定方法をご覧ください。バックグラウンドでのバッテリー消費を確認する場合は、バックグラウンド消費の確認手順を参考に、近い利用条件で比較してください。

Data:通信量の統計を確認

Dataでは、アプリに記録された通信量を確認できます。一定期間のアップロード、ダウンロード、各項目の統計の変化を見るのに適していますが、通信事業者の請求情報や、利用者が契約するサービスの通信量とは異なります。集計範囲、リセット時刻、ネットワークのオーバーヘッドが異なると、表示場所によって数値が一致しないことがあります。

確認方法:同じ時間帯で増加量を比較

Dataを開き、現在の画面に表示されている集計範囲と利用可能な分類を確認します。テスト前の数値を記録し、対象アプリで操作を1回行ってから戻り、増加量を確認してください。記録を消去する場合は、履歴を残す必要がないか先に確認します。統計を消去しても、外部サービスで消費した通信量は戻りません。

特定のサーバーが実際に通信を処理したか確認するには、合計だけでなく、選択中のサーバー、ルーティング方式、ルールの一致結果も確認してください。直接接続のリクエスト、バックグラウンド同期、ほかのアプリの通信も表示に影響する場合があります。ダウンロード量が多いだけで、接続品質が高いとは判断できません。スループット、遅延、リクエストの成功率はそれぞれ異なる指標です。

Dataの変化が予想と異なる場合は、対象のリクエストが新しく実行されたか、キャッシュが使われていないかを確認します。次に、接続が継続しているか、ネットワークが切り替わっていないかを確認してください。ページを1回再読み込みしただけで、すべてのリクエストの処理経路を判断しないでください。

Settings:DNS・テスト方式・補助機能

Settingsでは、一般的な動作や補助設定を管理します。設定を確認するときは、名前解決、テスト、システム上の操作、データ同期のどれに影響する項目かを見極めてください。一部の項目は現在のConfigによって指定される場合もあります。共通設定を変更する前に、使用中の設定に別の指定がないか確認し、「変更したのに動作が変わらない」と誤認しないようにします。

DNS:設定元を確認してから名前解決を変更

DNSはドメイン名をIPアドレスに変換します。名前解決の失敗とサーバー接続の失敗は似た読み込みエラーに見えることがありますが、対処方法は異なります。SettingsのDNS関連項目に加え、現在のConfigのDNS設定も確認し、特定の画面に表示されたアドレスだけでなく、実際に使われる設定を特定してください。

用途を把握しているDNSパラメータを使い、元の値を記録してから、一度に1つだけ変更します。変更後はテスト条件を作り直し、新しいドメインへのリクエストを実行してください。キャッシュにより以前の結果が残る場合があります。ローカルネットワーク上の機器、内部ドメイン、一般公開ドメインでは異なる処理が必要なことがあります。すべてのDNSリクエストを同じ経路に変更してから原因を探す方法は避けてください。

DNSの変更を、あらゆるタイムアウトに対する万能な対処として扱わないでください。プロトコル認証の失敗、ポートへの到達不可、サーバーが要求する時刻条件の不一致は、DNS設定だけを変えても通常解決しません。「ドメインを名前解決できない」のか、「アドレスは取得できたが接続に失敗する」のかを先に切り分けます。

Test Method:比較できるテスト結果を得る

Test Methodは、Connectivity Testで使うテスト方式を指定します。Settingsで該当項目を開き、現在の画面にある選択肢から方式を選び、関連するテスト対象を確認してください。方式によって測定する段階が異なります。基本的な往復時間のテストと、より多くのネットワーク処理を必要とするテストの数値を、同列に比較しないでください。

サーバーを比較するときは、同じTest Method、同じテスト対象、近いネットワーク環境を使ってください。タイムアウトは、そのテストが予定時間内に完了しなかったことを示すだけで、すべての通信が利用できないことを意味するとは限りません。反対に、テストに成功しても、すべてのWebサイトにアクセスできるとは限りません。実際のアクセス確認も行ってください。

Today Widget:システム上のウィジェットを確認

Today Widgetは、システムのウィジェットから操作したり状態を表示したりする機能です。Settingsで関連設定を確認してから、システムのウィジェット編集画面を開き、追加できるShadowrocketの項目があるか確認してください。利用可否や表示形式は、システムとアプリが現在提供する機能によって異なります。実際の端末画面で確認してください。

ショートカットを操作しても状態がすぐ変わらない場合は、何度もタップせず、HomeとシステムのVPN状態を確認してください。ウィジェットは操作の入口であり、独立した接続設定ではありません。選択中のサーバー、Global Routing、On Demandも実際の動作に影響します。

iCloud:同期範囲を確認してから別の端末で確認

iCloud関連の設定では、対応する範囲でアプリのデータを同期できます。まずシステムのiCloudの状態とShadowrocketの同期設定を確認し、現在の画面の説明を読んで、同期対象を把握してください。iCloudを有効にしても、すべてのサーバー、ルール、システム権限が完全に複製されるわけではありません。

別の端末で操作する前に、重要なローカル設定を保存し、同期結果、選択中のサーバー、現在の設定を確認してください。システムのVPN許可は端末ごとに確認が必要です。App Storeでの購入済み項目の復元とiCloudによるデータ同期は別の機能です。前者は購入資格、後者はアプリのデータに関するもので、一方の状態から他方を判断することはできません。

Diagnostics:問題の特定に役立つ情報を収集

Diagnosticsは、ネットワークや接続の問題を確認するための機能です。SettingsでDiagnostics関連の項目を開き、現在の画面にある診断を実行してください。診断では、「登録済みサブスクリプションを更新できない」「特定のドメインへのリクエストがタイムアウトする」など、明確な現象を対象にします。すべての診断を一度に実行し、数値が小さい項目だけを比べる方法は避けてください。

操作方法:問題を再現してから該当する記録を確認

現在のネットワーク、Global Routing、設定、サーバーを記録します。自動切り替えを抑える必要がある場合は、一時的にOn Demandをオフにしてください。その後、問題を1回だけ再現し、該当時刻付近の診断またはリクエスト記録を確認します。名前解決の失敗、接続タイムアウト、認証エラー、ルールやポリシーの不一致など、原因を区別できる手掛かりを優先して探してください。

振り分けを確認する場合は、対象ドメイン、一致したルール、最終的なポリシーを対応させます。接続を確認する場合は、Connectivity Testとサーバーのパラメータから確認してください。リクエスト記録がないときは、キャッシュが使われていないか、リクエストが現在の接続を実際に通ったか、記録機能が利用可能な状態かも確認します。

設定の確認順序:変更する条件は一度に1つ

機能には相互に関係する部分があります。まずアプリの入手と手元の情報を確認し、次に接続、その後にルールと自動動作を確認すると、設定の変更を繰り返さずに済みます。以下は「読み込みは済んだが、アクセス結果が想定と異なる」場合の確認順序です。

  1. 手元の情報を確認。Homeでサーバー項目に不足がないか、サブスクリプションが正常に更新されたか、想定した項目が選択されているかを確認します。サブスクリプションを読み取れたことだけで、接続も利用可能だと判断しないでください。
  2. システムの接続状態を確認。初回のVPN構成に必要な許可が完了しているか確認し、実際の接続状態を確認します。許可の確認画面についてはVPN構成の許可についてをご覧ください。
  3. テスト条件を確認。ネットワークを変えずにTest Methodを選び、Connectivity Testを実行してから実際のリクエストを確認します。タイムアウトについては接続できない場合の確認手順をご覧ください。
  4. ルーティングとルールを確認。Global Routingを確認します。Configを使う場合は、現在の設定、ルールの順序、ポリシーの参照先も確認してください。一時的にモードを切り替えた場合は、元の設定に戻します。
  5. 最後に自動設定と補助設定を確認。基本的な接続が安定してから、On Demand、DNS、カスタムテスト方式、同期結果を1つずつ確認します。変更前と変更後の記録を残し、必要に応じて元に戻せるようにしてください。
Proxyではアクセスできるのに、Configの結果が想定と異なる場合は?

現在有効なConfig、対象リクエストが一致したルールとそのポリシーを確認し、次にカスタムポリシーグループ内の項目を確認してください。モードを変えると結果が変わることは、調査範囲を絞る手掛かりになりますが、DNSやサーバーの問題だと断定する根拠にはなりません。

別の端末に移行した後も設定の確認が必要なのはなぜ?

購入済み項目の復元、データ同期、システムのVPN許可は、それぞれ異なる内容を扱います。アプリを復元できた場合も、その端末の許可、現在の設定、サーバーの選択を確認してください。iPhoneとiPadの互換性およびシステム要件は、App Storeの掲載内容をご確認ください。

読み込みから初回接続までの手順はどこで確認できますか?

はじめての設定ガイドを順に読み、手元の情報の読み込み、Global Routingの選択、システムの許可、実際のアクセス確認を行ってください。購入や購入済み項目の復元についてはApp Storeでの入手ガイドをご覧ください。