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

Shadowrocket
設定・機能ガイド

Global RoutingからDiagnosticsまで、「機能の概要 → 画面の場所 → 設定方法 → 結果の確認」の順にチェックします。まず現在のモードとConfigを確認してから個別の設定を調整し、複数箇所を同時に変更して原因を特定できなくなるのを防ぎます。

  • Global Routing / Config
  • On Demand
  • Data / Diagnostics

このページでは主にiPhoneとiPadでの操作を説明します。メニューの場所や利用できる項目は、現在のアプリ画面でご確認ください。システム要件はApp Storeの掲載内容をご確認ください。初めて設定する場合は、まずはじめにを読み、その後このページで各設定を確認してください。

Global Routing:Config・Proxy・Direct

Global Routingでは、通信全体の処理方法を選択します。通常はHomeにあり、Config、Proxy、Directがそれぞれルールに従うモード、プロキシ経由、直接接続にあたります。これらはサーバー情報の種類でも、接続のオン・オフでもありません。モードを選んだ後、Homeで選択中のサーバー、現在のConfig、接続状態も確認して、リクエストの処理方法を判断します。

ドメインやアドレスごとに処理を振り分ける場合はConfigを使います。ルールとの照合を一時的に除外して比較する場合はProxy、現在のネットワークから直接アクセスできるか調べる場合はDirectを使います。結果は対象ごとに確認してください。ページが1つ開けたからといって、すべてのリクエストが同じ経路を通るとは限りません。

モードと画面上の表示主な処理方法利用する場面注意点
ルールに従う / Config現在有効なConfigのルールとポリシーに従ってリクエストを処理します。ルールで通信を振り分ける場合や、特定のドメインに適用されるルールを確認する場合。Configが有効になっていることを確認してください。ファイルを保存しただけでは、そのConfigに切り替わっていません。
プロキシ経由 / Proxy通常のリクエストをプロキシ経由で処理します。具体的な動作は関連するネットワーク設定にも左右されます。サーバーへの接続とルールによる判定の違いを一時的に比較する場合。すべてのシステム通信が同じ経路を通るとは限らず、接続先への到達を保証するものでもありません。
直接接続 / Direct現在のネットワークから接続先へ直接接続します。現在のWi-Fiまたはモバイル通信で、基本的なアクセスができるか比較する場合。接続をオフにする設定ではありません。On Demandによる接続動作は別途確認が必要です。

モードの切り替えと確認方法

HomeでGlobal Routingを開き、目的のモードを選んで戻り、表示が切り替わったことを確認します。同じ接続先に新しいリクエストを送り、確認できる接続ログをチェックしてください。既存の長時間接続には新しい設定がすぐ反映されないことがあります。必要に応じてテスト中の接続を終了し、リクエストを再送します。比較後は元のモードに戻してください。一時的に使ったProxyやDirectで、ルールが引き続き適用されていると誤解しないよう注意しましょう。

ルール振り分け:マッチ条件と処理ポリシー

ルールはリクエストがどの条件に一致するかを判定し、ポリシーは一致後の処理方法を決めます。Configを開き、まず有効なConfigを確認してから、その中のルールの順序を見ます。通常、ルールは上から順に確認され、先に一致したルールが適用されます。後続のルールがその判定をやり直すことはありません。FINALは、それまでのルールに一致しなかったリクエストを処理します。

マッチする条件

DOMAINは完全なドメイン名、DOMAIN-SUFFIXはドメインの末尾、DOMAIN-KEYWORDはドメイン内のキーワードに一致します。IP-CIDRとIP-CIDR6はそれぞれ対応するIPアドレス範囲に一致し、GEOIPはIPアドレスの地域情報に基づいて判定します。ルールを選ぶ前に、対象がドメイン名かIPアドレスかを確認してください。完全なURLをドメインルールのマッチ値として使うことはできません。

DOMAIN-SUFFIX,example.com,PROXY

一致した後の処理

DIRECTは直接接続、PROXYはプロキシ経由、REJECTはリクエストの拒否を表します。Configではポリシーグループ名が指定されている場合もあり、実際の処理はグループ内で現在選択されている項目にも左右されます。変更時はルール末尾のポリシーと参照先のグループの両方を確認し、ルールの前半だけで通信経路を判断しないでください。

IP-CIDR,192.168.0.0/16,DIRECT

変更する際は、まず対象を特定し、一致する可能性がある上位のルールを確認します。より具体的な条件を適切な位置に置き、最後に適用する処理方法も明確にしてください。上記のルールは構文の説明用で、完全なConfigではありません。Configを有効にした後にWebページの表示に問題が起きた場合は、まず一致したルールを記録して、その箇所だけを変更します。Config全体とDNSを同時に変更しないでください。プロトコルの設定項目はプロトコルリファレンスをご覧ください。

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

サーバー情報には、接続に必要なアドレス、ポート、プロトコル、認証情報が保存されます。サブスクリプションは、登録済みの情報をまとめて読み込み、更新するためのものです。これらはConfigのルール振り分けとは別の設定です。サーバー情報があっても適切なルールが有効とは限らず、ルールファイルを読み込んでも接続可能なサーバーが登録されるわけではありません。

Home / Add Server:登録済みの情報を追加

HomeでAdd Serverを選び、登録済みサーバーの情報に合った種類を選択して、各項目を入力します。サブスクリプションを利用する場合は、追加画面で該当するSubscribeの種類を選び、ご自身のサブスクリプションURLを入力して保存します。QRコードを使う場合は、Scan QR Codeから読み込んだ後も、種類と重要な項目を確認してください。プロトコルごとに認証、トランスポート、TLSの項目は異なるため、ある種類の設定を別の種類にそのまま適用しないでください。

保存後にHomeへ戻り、項目が追加され、目的のサーバーが選択されていることを確認してからConnectivity Testを実行します。項目名は識別のためのラベルで、接続成功を示すものではありません。手動で編集する前に元の値を記録しておきましょう。サブスクリプションから作成された項目は、後の更新で上書きされる場合があります。変更を保持する必要がある場合は、現在のアプリで利用できる管理方法を確認してください。

Subscribe:更新と重複項目の確認

サブスクリプションを更新した後、項目数の変化、グループ分け、現在の選択が想定どおりか確認します。更新に失敗した場合は、URLが完全か、現在のネットワークからアクセスできるかを確認し、必要であれば有効な元情報を再取得してください。「サブスクリプションを更新できること」と「その中のサーバーに接続できること」は別です。前者は情報の取得に成功したことを示すだけで、後者にはサーバーの状態、プロトコル設定、ネットワーク環境も関係します。

サブスクリプションURL、QRコード、エクスポートしたConfigには認証情報が含まれることがあります。画面を撮影したり、トラブルの情報を共有したりする場合は、これらを隠してください。特に、サブスクリプションURL全体を公開のコメント欄に掲載しないでください。読み込み手順ははじめにの追加方法をご覧ください。

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

機能と設定場所

On Demandは、設定したネットワーク条件に応じて、システムが接続を開始するかどうかを決める機能です。接続を開始する条件を扱うもので、Configのリクエスト振り分けを置き換えるものではありません。アプリのOn Demand関連メニューで利用可能な条件を確認してください。メニューの場所や条件名は、現在のアプリ画面に従います。設定前に手動接続を行い、システムVPNの設定許可、サーバー情報、基本的なアクセスが正常であることを確認してください。

Wi-Fi、モバイル通信、特定のネットワークなど、実際に必要な条件を設定する場合は、まず少数の条件から始めます。保存後、該当するネットワークごとに接続状態を確認してください。条件と現在の環境が一致していなければ、テスト結果は参考になりません。同じネットワーク上で画面を何度も切り替えても、ネットワーク切り替えのテストにはなりません。

確認方法と注意点

手動で接続をオフにしても再び接続される場合は、システムVPNの設定を何度も削除するのではなく、On Demandが接続を再度開始していないか確認してください。テストを完全に停止する場合は、先にOn Demandを一時停止してから接続をオフにし、システムの状態も確認します。自動接続されない場合も、すぐにサーバーを変更せず、まず条件が一致しているか確認してください。

On Demandを使っても、認証情報の誤りは解消されず、ネットワーク切り替え後も既存の接続がすべて維持されるとは限りません。Wi-Fiとモバイル通信の切り替えによって、接続が再確立される場合があります。テストでは切り替え前後のネットワーク、接続条件、状態を記録し、条件の問題か接続自体の失敗かを切り分けてください。

Data:通信量の確認(契約残量の確認ではありません)

Dataでは、クライアントが記録できる範囲の通信量を確認でき、使用量やその変化を把握できます。Dataを開いたら、統計の対象範囲、期間、単位を確認してから、アップロードとダウンロードの数値を比較してください。アプリ内の統計は、システムのモバイル通信量や利用中のサービスの課金基準と異なる場合があるため、残りの利用可能量を推測することはできません。

確認するには、まず現在の数値を記録し、対象を明確にしたアクセスを行ってから、Dataに戻って変化を確認します。リセット機能がある場合は、対象範囲と残しておくデータを確認してから実行してください。リセット後は、トラブルの比較基準が失われることがあります。統計の増加は、その範囲で通信量が記録されたことを示すだけです。特定のドメインにPROXYが適用された証拠でも、コンテンツをすべて取得できた証拠でもありません。

通信量の異常を調べるときは、Dataと接続ログを併用します。まず増加した時刻を特定し、その時間帯の接続先と処理ポリシーを確認してください。バックグラウンド同期、メディアの先読み、アプリの再試行もリクエストを発生させることがあります。ルールを変更する前に、具体的な通信の原因を確認しましょう。一定時間の合計通信量だけで、特定のプロトコルのほうが「通信量を節約できる」と判断しないでください。

Settings:DNS、テスト、ウィジェット、同期

以下では機能ごとに説明します。Settingsまたは該当する機能の画面で現在利用できる項目を確認してください。画面上の名称、表示場所、システムの対応状況は実際の表示に従います。

DNS:名前解決と接続を分けて確認

DNSはドメイン名を接続に使うアドレスへ変換します。名前解決の成功と、接続先サービスへの到達は別の段階です。SettingsのDNS関連設定、または現在のConfigに含まれるDNSの設定を確認し、実際にどの設定が使われているかを調べます。Configファイルに独自のDNS指定が含まれることもあります。変更前に、ほかの設定との重複や相互作用を確認してください。入力欄を1つ変更しただけで、すべてのリクエストに反映されたと判断しないでください。

変更前の値を記録し、DNSの設定元または動作を一度に1つだけ変更してから、同じ接続先にアクセスし、名前解決と接続のログを確認します。接続テストの結果が正常でもWebページが開かない場合は、名前解決、接続、TLSのどの段階で失敗したかを切り分けてください。すべての問題をDNSのせいにしないようにしましょう。IPv6を使う場合は、IPv6アドレスが表示されるかだけで異常と判断せず、現在のネットワークがそのアドレスへの接続に対応しているかも確認してください。

Test Method:テスト条件を統一

Test Methodでは、Connectivity Testで使用するテスト方法を選択します。該当する設定を開き、現在選択できる方法の説明を確認してから、同じ方法で登録済みサーバーを比較してください。テスト先を指定する方法では、接続先も統一します。方法によってポートへの接続や特定のリクエストの結果を測るため、異なる方法の結果をそのまま並べて比較することはできません。

テストに数値が表示されても、Webページが必ず開くとは限らず、継続的な通信速度を示すものでもありません。比較前に端末が同じネットワークに接続されていることを確認し、大容量の通信はできるだけ避けます。一度だけ失敗した場合は、再テストして状況を記録してください。詳しく調べるにはGlobal Routing、適用されたルール、実際の接続先も確認します。

Today Widget:情報の確認と操作へのショートカット

Today Widgetでは、システムウィジェットによる情報表示や操作を利用できます。まずSettingsでアプリが提供する関連項目を確認し、次にシステムのウィジェット編集画面で追加できるか調べてください。利用できる画面や操作はシステム環境によって異なります。ウィジェットが表示されるかどうかを、アプリの接続機能の判断材料にしないでください。

設定後は、まずアプリ内で接続できることを確認してから、ウィジェットの表示や操作を確認します。ウィジェットの更新には時間がかかる場合があります。表示と状態が一致しないときはHomeとシステムVPNの状態を確認し、ウィジェットの表示だけで接続済みと判断しないでください。ロック画面や共有端末でサーバー名が表示される可能性にも注意しましょう。

iCloud:同期する範囲を事前に確認

iCloud関連の設定では、アプリが対応する項目を同期できます。まずシステムでiCloudが利用可能で、アプリにアクセス権があることを確認してから、Shadowrocketの関連設定で同期範囲を確認してください。同期、ファイルの読み込み、完全な復元は別の操作です。サーバー、認証情報、統計、システムVPNの許可がすべて一緒に移行すると想定しないでください。

有効にする前や別の端末で復元する前に、現在利用できるConfigのコピーを保存し、統合や上書きが発生する可能性を確認してください。完了後はConfig、サーバーの選択、Global Routing、On Demandをそれぞれ確認します。システムVPNの設定許可は端末ごとに確認が必要です。同期した項目が表示されても、実際に接続テストを行ってから利用してください。

Diagnostics:障害が発生した段階を特定

Diagnosticsでは、接続に関する手がかりを収集して確認できます。Settingsの該当メニューで、現在利用できる診断項目を確認してください。Connectivity Testとは目的が異なります。1回の接続テストで得られるのは限定的な接続情報ですが、診断ではどの段階で失敗したかを調べられます。実行前に「同じドメインがConfigでは失敗し、Directではアクセスできる」のように、再現する現象を具体的に決めてください。「接続が不安定」と記録するだけでは原因を特定しにくくなります。

順番に確認する

  1. 現在のネットワーク、接続のオン・オフ、システムVPNの許可状態を確認します。
  2. Global Routing、現在のConfig、選択中のサーバーを確認します。
  3. 同じ接続先に再度リクエストを送り、名前解決、接続、ルールのログを確認します。
  4. 条件を一度に1つだけ変更し、同じテストを繰り返して結果を比較します。

必要な情報を記録する

障害が起きたときのネットワークの種類、モード、テスト方法、エラーメッセージを記録します。タイムアウト、認証失敗、証明書エラーは発生段階が異なり、対処方法も異なります。診断結果にドメイン、アドレス、認証情報が含まれる場合は、必要な情報をまとめる前に機密情報を隠してください。

エラーを消すために、証明書の検証をむやみに緩めないでください。まずサーバー情報、証明書名、端末の時刻を確認し、項目を確かめてから同じ接続先で再テストします。

特定の接続先だけ失敗する場合は、その名前解決、適用されるルール、接続先サービスの状態を確認します。すべての接続先で失敗する場合は、基本ネットワークとサーバー設定を見直してください。この順序で確認すると、関係のない設定変更を減らし、アプリ側の設定とサーバー側の状態を切り分けやすくなります。よくある症状についてはトラブルシューティングをご覧ください。

設定変更の順序と復元後の確認

初めて設定するときは、「手動で接続できること」と「意図どおりに通信を振り分けられること」を別々に確認します。前者では登録済みサーバー情報とシステムの許可を、後者ではGlobal RoutingとConfigを確認してください。基本的な接続を確認する前に複雑なルール、自動接続条件、複数のDNS設定を追加すると、同じ障害に複数の原因が考えられ、特定が難しくなります。

  1. 現在の状態を記録します。利用可能なConfigを保存し、現在のモード、サーバーの選択、重要な設定の元の値を記録してください。復元する際は記録を基準にし、記憶を頼りに再入力しないようにします。
  2. まず手動接続を確認します。On Demandを一時停止し、登録済みの項目で目的の接続ができることを確認してください。Connectivity Testと実際のリクエストの両方を確認しますが、互いの代わりにはなりません。
  3. 次にConfigを確認します。目的のConfigを有効にして、対象に適用されるルールとポリシーを確認してください。問題があれば該当するルールだけを変更し、サーバーの認証情報まで同時に変更しないようにします。
  4. 最後に自動化を追加します。必要に応じてOn Demand、ウィジェット、同期を有効にし、それぞれ該当する環境で確認してください。問題がないことを確認してから、Dataや診断ログを使って日常の状態を確認します。

設定を元に戻した後も、新しいテストリクエストを送って確認してください。既存の接続、アプリのキャッシュ、システムのネットワーク状態によって、変更直後の動作が一時的に想定と異なる場合があります。テスト対象、ネットワーク条件、観察する時間を固定すると、複数のスイッチを何度も切り替えるより、結果を再確認しやすくなります。