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

Shadowrocket
プロキシモードと設定

まずGlobal Routingでルーティング方式を選び、ルールとサーバーを確認します。接続のタイミングはOn Demandで管理し、実際の結果はDataとDiagnosticsで確認します。それぞれ役割が異なり、相互に代用できる設定ではありません。

Global Routing:3つのモード

設定 / プロキシ / 直接接続。画面上の表記はConfig / Proxy / Directです。

Global Routingは通信のルーティング方式を選択する項目であり、サーバーを作成する機能でも、接続のオン・オフでもありません。HomeでGlobal Routingを開き、Config、Proxy、Directから選択したうえで、現在のSERVERと接続状態を確認します。初めて使う場合は、登録済みサーバーの情報を確認し、短時間のテストで接続できるかを判断してから、Configに戻ってルールを検証してください。モードを切り替えたら、新しいリクエストで動作を確認します。切り替え前から続いている接続だけでは、変更が反映されたか判断しにくい場合があります。

モードと画面上の表記ルーティング動作使用する場面注意点
設定 · Config現在有効な設定ファイルに従って接続を処理し、[Rule]で経路を選択します。通常の通信振り分けや、特定のドメインがDIRECT・PROXY・REJECTのどれに振り分けられるか確認するとき。まず有効なConfigを確認し、次にルールの順序とFINALを確認します。
プロキシ · Proxy主な接続を選択中のプロキシサーバー経由で処理します。通常のルールに従って個別に振り分ける動作ではありません。サーバーが対象のリクエストを処理できるか短時間で確認し、ルールの問題かどうかを切り分けるとき。システムのルーティング、必要な除外設定、ネットワーク環境の影響を受けます。端末上のすべての通信が必ずプロキシ経由になるという意味ではありません。
直接接続 · Direct主な接続を直接接続し、プロキシサーバー経由では処理しません。ローカルネットワークでの接続状況と比較し、直接接続側とプロキシ経路側のどちらに問題があるかを切り分けるとき。DirectはVPN接続のオフを意味しません。接続を切るにはHomeの接続スイッチを操作します。

同じ接続先で比較し、一度に複数の項目を変更しない

Proxyで接続でき、Configでは接続できない場合は、Configのルール、ポリシー、DNS設定を優先して確認します。問題が振り分け経路にあり、サーバー情報全般が無効とは限らないためです。ProxyとConfigの両方で失敗する場合は、サーバー、ローカルネットワーク、プロトコル設定を確認します。Directの結果で分かるのは直接接続経路の状況だけで、プロキシサーバーの正常・異常は判断できません。

テスト中は現在のモード、選択中のサーバー、接続先ドメインを記録し、終了後に設定を元に戻します。一度の問題を調べるために、想定と異なるモードのまま使い続けないでください。特にConfigを切り替えた後は、Homeの接続スイッチがオンかどうかだけでなく、Global Routingも再確認します。

ルールの種類とポリシー

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

Configで[Rule]を確認

ルールによる振り分けでは、Configの条件に基づいて接続経路を選びます。Configで現在の設定ファイルを開き、[Rule]を上から順に確認してください。通常、ルールに一致すると後続の判定は行われません。具体的な条件を広範な条件より前に置き、どのルールにも一致しないリクエストを処理するFINALは末尾に置きます。

DOMAINは完全一致のドメイン、DOMAIN-SUFFIXはドメインとそのサブドメイン、DOMAIN-KEYWORDはドメイン内のキーワードに一致します。IP-CIDRとIP-CIDR6はそれぞれIPv4とIPv6のアドレス範囲を指定します。GEOIPはIPアドレスの地域データベースに基づいて判定します。USER-AGENTは取得可能なUser-Agent情報を対象とするため、すべての接続でアプリを識別できるとは限りません。

ポリシーのPROXYはプロキシ経由、DIRECTは直接接続、REJECTは拒否を表します。ポリシー名からサーバーの稼働状況は分からず、新しいサーバー情報が追加されるわけでもありません。まずリクエストがどのルールに一致したかを確認し、その後の接続が成功したかを判断します。

キーワードだけでなく、ルールの優先順位も確認

構文がどちらも正しいルールでも、結果が異なることがあります。たとえば、広い範囲に一致するDOMAIN-SUFFIXを特定のDOMAINより前に置くと、後者は一致しません。変更前に現在の設定をバックアップし、該当する行の順序またはポリシーだけを調整して、新しい接続で確認してください。IPルールは利用可能な名前解決結果にも左右されます。GEOIPの判定はデータベースに依存するため、サーバーの実際の設置場所を正確に証明するものではありません。構文と設定項目の詳細はルールと設定のリファレンスをご覧ください。

Subscribeとサーバーの管理

サーバー情報は「どう接続するか」、設定ルールは「いつ使うか」を決めます。

Add Serverで登録済みの情報を追加

HomeでAdd Serverを開き、ご自身が保有する情報に対応したTypeを選び、アドレス、ポート、認証情報、通信方式を入力します。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2などは入力項目が共通ではありません。アドレスが同じでも、別のTypeの設定値をそのまま流用しないでください。TLS、サーバー名、通信オプションも既存サーバーの要件に合わせます。入力ミスを隠すために検証を無効にしないでください。

保存したらHomeに戻り、SERVERで選択中の項目を確認します。サーバーが一覧にあることと、接続に使用されていることは別です。手動で登録する場合は、見分けやすい名前を付けると便利です。ただし、一覧表示や診断情報の共有時に漏れるおそれがあるため、パスワード、鍵、サブスクリプションURL全体を名前に含めないでください。

Subscribeで更新されるのは登録済みサブスクリプションの内容

登録済みのサブスクリプションは通常、Add ServerでSubscribeのTypeを選んで追加できます。ご自身のサブスクリプションURLを入力して保存し、その項目の更新操作で内容を取得します。サーバー項目が表示されたか、選択中の項目が意図どおりかを確認してください。Subscribeに含まれる認証情報は機密情報として扱い、公開ページに貼り付けたり、無関係な検査ツールに送信したりしないでください。

サブスクリプションの更新失敗とサーバーへの接続失敗は別の問題です。前者はURLの有効性、現在のネットワークからのアクセス可否、取得した内容を認識できるかに関係します。後者は実際のサーバーのプロトコル、認証、通信方式に関係します。更新が成功しても、すべてのサーバーに接続できるとは限りません。サブスクリプションを削除する前に、関連項目も削除されるか確認してください。生成された項目を手動で変更しても、次回の更新で上書きされる場合があります。

Connectivity Testで確認できるのは、指定されたテスト条件のみ

HomeでConnectivity Testを使う前に、SettingsでTest Methodを確認します。方法によってはポートへの応答だけを確認する場合も、指定した接続先へのリクエストまで確認する場合もあります。テストに成功しても、すべてのWebサイトやアプリが使えるとは限りません。失敗した場合も、まずテスト対象と方法の影響を確認してください。テスト結果と実際の接続先へのリクエストを併せて確認すると、一覧のテスト表示だけに頼るより確実です。

On Demandによるオンデマンド接続

接続を開始する条件を管理します。Global Routingや[Rule]の代わりにはなりません。

手動接続を確認してから条件を有効にする

On Demandは、設定した条件に応じてシステムがVPN接続を開始または維持する機能です。まずHomeから手動で接続し、サーバーとConfigが正常に動作することを確認してから、SettingsのOn Demandでスイッチと設定可能な条件を確認します。具体的な条件は現在のアプリ画面で確認してください。Wi-Fiやモバイル通信に関する条件は適用範囲を一つずつ確認し、「自動接続」を「最速サーバーの自動選択」と混同しないようにします。

設定後は想定するネットワーク条件で再テストし、Homeの接続状態を確認します。Wi-Fiとモバイル通信の切り替え時には既存の接続が再確立されることがあり、一時的な中断だけでルールの構文に問題があるとは判断できません。まず接続条件が満たされているかを確認し、接続確立後のルーティングを調べます。

接続を一時停止するときもOn Demandを確認

手動で切断した後に再接続される場合は、まずOn Demandが有効のままか、設定済みの条件によってシステムが再接続していないか確認します。一時停止する場合は、先にOn Demandを調整し、その後に接続スイッチを操作して、状態が再び変化しないか確認してください。順序を記録せずに複数の場所を繰り返し操作しないようにします。

On Demandでは、期限切れの認証情報、誤ったポート、無効な設定は修正できません。自動接続後もアクセスできない場合は、手動接続の手順に戻って原因を確認してください。職場のネットワークに固有の接続要件がある場合は、ネットワーク管理規定とローカルリソースへのアクセス方法を確認してから、自動接続を有効にするか判断します。

Dataの通信量統計

カウンターの変化を確認する補助機能です。通信事業者の請求額とは異なります。

Dataでは、アプリが記録できる通信量を確認できます。Dataを開いたら、まず現在の画面に表示されている集計範囲とカウンターの説明を確認し、接続の前後で送受信などの数値がどう変化したかを見ます。表示によって集計範囲が異なる場合があります。1回のセッション、個別項目、長期間の累計値をそのまま足し合わせて比較しないでください。統計の更新には時間差があるため、短時間変化が見られないことだけでリクエストが発生していないとは判断できません。

繰り返し可能な操作で変化を確認

関係のないバックグラウンド通信を止め、Dataの現在値を記録してから、特定のページを開くか既知のリクエストを1回実行し、Dataに戻って増加分を確認します。カウンターを消去する場合は、トラブル調査に必要な記録を保存してから、画面のリセット操作を行います。2回のテストを比較するときは、接続先、実行時間、集計範囲をそろえてください。実験条件の違いによる差を、モードの性能差と取り違えないようにします。

Dataのカウンターは、モバイル通信事業者の課金対象通信量でも、ご自身が利用する接続サービスの残量記録でもありません。プロトコルのオーバーヘッド、再送、集計箇所、計測期間によって数値が変わることがあります。ドメインがPROXYまたはDIRECTに一致したかは、接続記録と現在のルールを併せて確認します。通信量が増えたことだけでは、すべてのリクエストが同じ経路を通ったかは分かりません。

Settingsの主な項目

項目の場所と内容は現在のアプリ画面で確認し、一度に変更するのは1項目だけにします。

Settingsの機能とConfigファイルが、接続に同時に影響する場合があります。以下の項目を探す際は、全体設定、現在の設定ファイル、システム権限のどれを変更するのか先に確認してください。名前が似ていても同じ階層の設定とは限りません。画面上の位置はアプリの更新で変わることがあるため、固定の行番号ではなく英語の項目名を使って説明します。

DNS:名前解決の失敗と接続の失敗を区別

DNSは、ドメイン名を接続に必要なアドレスへ変換します。SettingsのDNS関連項目と、現在のConfigの[General]にdns-serverなどの設定があるかを併せて確認し、一方だけ変更してもう一方を見落とさないようにします。原因を調べるときは元の値を残し、ドメインを解決できないのか、解決結果が想定と異なるのか、アドレスは取得できるが接続できないのかを切り分けてから変更を検討します。

たとえばdns-server = systemは、システムの名前解決設定を使う記述例の一つであり、すべてのネットワークに適した推奨設定ではありません。DNSを変更するとIPルールの照合や実際の接続先に影響する場合がありますが、サーバーの認証エラーは修正できません。変更後は新しいリクエストでテストし、既存の名前解決キャッシュの影響も考慮してください。一度成功しただけで、すべてのドメインが復旧したとは判断できません。

Test Method:Connectivity Testの確認内容を把握する

SettingsでTest Methodを開き、現在の選択肢の説明を読んでからテスト方法を選びます。接続先の指定が必要な場合は、その接続先にアクセスできることも確認してください。ポートレベルの応答と、アプリケーション層のリクエスト完了は異なる結果です。方法が異なるテスト結果を直接比較しないでください。変更後はHomeに戻ってConnectivity Testを再実行し、同じ接続先への実アクセスも確認します。

テスト結果は候補の絞り込みや原因の特定を補助するもので、継続的な通信速度やすべてのリクエストの使用感を示すものではありません。テストだけ失敗し、実際の利用には問題がない場合は、サーバー情報をすべて書き直す前に、テスト方法と接続先を確認してください。

Today Widget:ショートカットとシステムの表示条件

Today Widgetは、システムで対応しているウィジェット領域から情報を確認したり操作したりするための機能です。まずSettingsでToday Widget関連の設定を確認し、次にシステムのウィジェット編集画面で追加できるか確認します。利用できる形式は、端末のシステムとアプリが提供する機能によって異なります。特定のウィジェット表示がすべての端末で利用できるとは限りません。

ショートカットを使うには、サーバー、設定、接続権限が登録済みである必要があります。操作後はHomeに戻って実際の状態を確認してください。特に、端末のデータを復元した直後やアプリの初期設定が完了していない場合は注意が必要です。ウィジェットは独立した接続設定ではなく、現在のSERVERの確認にも代わりません。

iCloud:データ同期と購入済みアプリの復元は別々に確認

複数の端末で設定を保持する場合は、SettingsのiCloud同期項目を確認し、システムでShadowrocketのiCloud利用が許可されているかを確かめます。有効にする前に重要な設定をバックアップし、両方の端末にあるデータを確認してください。同期はいつでも元に戻せる履歴保存機能ではありません。スイッチがオンであることだけに頼らず、実際の項目が同期されたか確認します。

App Storeの購入済み項目はアプリを入手する権利の復元に使い、iCloudはアプリが対応するデータの同期に使います。別々の手順です。端末を買い替えた後、アプリがインストール済みでも、サーバー情報、Configの選択、VPNの許可を確認する必要があります。同期範囲はアプリ内の説明をご確認ください。サーバーの認証情報やサブスクリプションの内容は機密情報の場合があるため、使用するアカウントと端末のアクセス権を確認します。

Diagnostics:状況を記録してから診断情報を収集

問題が発生したら、SettingsでDiagnosticsを開き、アプリが提供する診断またはログの機能で情報を収集します。発生時刻、現在のネットワーク、Global Routing、選択中のサーバー、接続できない接続先を記録してから、問題をもう一度再現してください。状況を併せて記録すると、名前解決、認証、通信、ルール照合のどこに問題があるかを切り分けやすくなります。エラーメッセージを1件残すだけより有用です。

記録を共有する前に、ドメイン、IPアドレス、サブスクリプションURL、認証情報、個人のアクセス内容を確認し、不要な機密情報を削除してください。ログにリクエストの失敗が記録されても、すべての接続が利用できないとは限りません。発生時刻と同じ接続先での再テストを併せて判断します。調査後は一時的に変更した診断設定を元に戻し、日常利用に不要な記録を長期間残さないようにしてください。

設定後の確認手順

まず基本の接続を確認し、その後にルール振り分けと自動接続を設定します。

  1. 登録済みの情報を確認します。HomeでSERVERを確認します。サブスクリプションを追加した場合は項目が正しく表示されているか、手動で追加した場合はプロトコル、アドレス、ポート、認証情報が正しいかを確認します。
  2. 再現可能な接続テストを行います。Test Methodを確認し、短時間Proxyで比較してから、明確な接続先にアクセスします。テストに失敗した場合は、まず基本の接続を調べます。
  3. Configに戻ってルールを確認します。有効な設定ファイルを確認し、[Rule]の順序とFINALを調べます。新しい接続を開始して対象のリクエストを再現し、該当する記録を確認します。
  4. その後On Demandを有効にします。手動接続が正常なことを確認してから、接続条件をテストします。ネットワークを切り替えた後は状態を再確認し、自動接続とルールへの一致を混同しないでください。
  5. 結果を保存し、一時設定を元に戻します。検証済みの設定を記録し、バックアップしてから次の調整に進みます。DataとDiagnosticsは確認の補助に使い、単一のテスト表示だけで最終判断しないでください。

初期設定の手順はShadowrocketの使い方ガイドをご覧ください。設定を1行ずつ確認する場合は、ルールと設定のリファレンスへ進んでください。アプリをまだ購入していない場合は、開発者名・公式アイコン・アプリIDの確認手順を確認してから、App Storeで入手してください。