Shadowrocket 公式マニュアル

プロキシモードと基本設定

まず通信の処理方法を決めてから、自動接続、DNS、テスト方法を設定します。このページではiPhone / iPadの画面表示に沿って操作手順を説明します。Mac、Windows、Android、Linuxでは画面構成や利用できるシステム連携機能が異なる場合があるため、各バージョンの実際の画面を確認してください。モバイルOS専用の設定を他のデバイスにそのまま適用しないでください。

Global Routing ルールとポリシー Settings リファレンス

Global Routing:Config・Proxy・Direct

概要:Global Routingでは、Shadowrocketが処理するリクエストのルーティング方式を選択します。Configは設定に基づく処理、Proxyはプロキシ経由、Directは直接接続です。Homeの接続スイッチとは別の機能です。モードを選んだだけでは接続の確立は確認できず、サーバー設定の確認に代わるものでもありません。モード名は通信の処理方法を示し、ネットワーク品質の評価ではありません。

場所と使い分け:HomeでGlobal Routingを開くと、現在のモードを確認できます。接続先ごとに処理を分ける場合はConfigを使用します。ルールの影響を一時的に除外して選択中のサーバーを確認するにはProxy、プロキシサーバーを経由しない場合の接続状況を確認するにはDirectを選びます。切り替える前に元の設定を記録し、テスト後に戻してください。

画面の選択肢 処理方法 確認に適したケース 事前に確認する条件
Config 現在有効なConfigのRuleとポリシーに従ってリクエストを処理します。 指定したサイトはPROXY、それ以外のリクエストはルールに従って直接接続または拒否します。 Configで正しい設定が有効になっており、ルールの順序と最終処理が明確であること。
Proxy アプリに入る通信をプロキシ経由で処理します。システムのルーティングや除外設定も確認してください。 ルールのマッチが原因か、一時的に切り分ける場合。 Homeで利用可能なサーバーが選択され、サービスが使用できる状態であること。
Direct プロキシサーバーを経由せず、接続先に直接接続します。 直接接続時と比較し、プロキシ経由の通信がアクセスに影響するか確認します。 現在のネットワークから接続先にアクセスできること。Directはアプリの接続を切る機能ではありません。

設定方法:初めて使う場合は、まずHomeでサーバーを選択します。次にGlobal Routingでモードを選び、Homeに戻って接続をオンにし、システムの案内に従ってVPN構成の追加を許可してください。その後、同じ接続先にアクセスして確認します。ProxyからConfigに変更して初めて問題が起きた場合は、すべてのサーバー情報を入力し直す前にConfigを確認してください。

注意点:Proxyを選んでも、デバイス上のすべての通信が必ずプロキシ経由になるわけではありません。システムサービス、ローカルネットワーク、除外ルート、アプリの動作によって実際の経路は変わります。リクエストの処理結果は接続ログとマッチしたルールで確認してください。Directは「切断」ボタンではありません。アプリの接続処理を停止するには、Homeの接続スイッチを操作します。

Rule:マッチ条件と処理ポリシー

概要:ルールは通常、種類、マッチ対象、ポリシーで構成されます。DOMAINは完全一致のドメイン、DOMAIN-SUFFIXはドメインとサブドメイン、DOMAIN-KEYWORDはドメイン内のキーワードでマッチします。GEOIPはIPアドレスの地域情報を使用し、IP-CIDRとIP-CIDR6はそれぞれIPv4とIPv6のアドレス範囲を指定します。USER-AGENTは該当するリクエスト情報を取得できる場合に使うもので、すべてのアプリに適用できる識別方法ではありません。

場所と確認方法:Configで使用中の設定を確認し、その中のRuleを開きます。PROXYはプロキシポリシー、DIRECTは直接接続、REJECTはリクエストの拒否を表します。Global RoutingのProxyとDirectは全体に適用するモード名です。一方、ルール内のPROXY、DIRECT、REJECTはマッチ後の処理ポリシーです。大文字表記と使われる文脈を区別してください。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,ads,REJECT
GEOIP,CN,DIRECT
FINAL,PROXY

設定方法:まず現在のConfigをバックアップします。Ruleでは対象範囲が狭く意図が明確なルールを前に、範囲の広いルールを後ろに配置し、どのルールにもマッチしないリクエストを最後にFINALで処理します。次の例では、example.comとそのサブドメインが先にPROXYにマッチし、該当しないリクエストは下のルールで判定されます。例示のドメインは構文説明用で、利用可能なプロキシサーバーを示すものではありません。

注意点:ルールは通常、上から順に判定され、最初にマッチしたルールが最終結果に影響します。範囲が広すぎるDOMAIN-KEYWORDは正常なドメインにも影響することがあり、ネットワーク範囲のルールを早い位置に置くと、後続の例外ルールにマッチしない場合があります。テスト時はGlobal RoutingをConfigにして、マッチしたルールを確認してください。ページが開けるだけでは、意図したポリシーで通信した証明にはなりません。項目と順序の詳しい例はルールとConfigのリファレンスをご覧ください。

Subscribeとサーバーの管理

概要:サーバーの項目には、接続に必要なアドレス、ポート、プロトコル、認証情報を保存します。Subscribeには、ユーザーがすでに利用しているサブスクリプションの取得先を登録し、複数のサーバー情報を更新します。SubscribeとConfigは別のデータです。Subscribeの更新はサーバー一覧の管理に使い、ConfigファイルはDNS、ルールなどの処理方法を設定します。一方を読み込んでも、もう一方が設定済みとは限りません。

場所と操作:HomeでサーバーとSubscribeのグループを確認します。サーバーを手動で登録する場合は通常Add Serverから始めます。既存のSubscribeを追加するにはSubscribeを選び、サービス提供元から案内された完全なURLを入力します。既存のQRコードにはScan QR Code、対応形式のデータにはImport from Cloud JSONを使います。通常のWebページのURLをSubscribeとして登録しないよう、読み込むデータの種類を事前に確認してください。

  1. 既存の情報がShadowsocks、VMess、VLESS、Trojanなど、実際に使用するプロトコルに対応していることを確認してください。名前だけで種類を推測しないでください。
  2. Subscribeを使う場合は、必要なクエリパラメーターを含む完全なURLを登録します。手動登録では、アドレス、ポート、認証情報、TLSなどの項目を個別に入力してください。
  3. 保存して更新を実行し、Homeに想定したサーバーが表示されることを確認してから選択し、Connectivity Testを行います。
  4. 提供元ごとに判別しやすい名前を付け、更新の前後で件数の変化や利用できない項目を確認します。同じ提供元を重複して読み込まないようにしてください。

注意点:Subscribeを更新すると、そのSubscribeで管理されている項目が上書きされる場合があります。手動で変更したサーバー情報は別途記録してください。Subscribeを削除する前に対象グループを確認し、一覧をまとめて消去しないようにします。SubscribeのURLには個人用の認証情報が含まれることがあるため、公開する質問用のスクリーンショットにそのまま載せないでください。サーバー一覧が空の場合は、再読み込みの前にURLの有効性、利用中のサービスの状態、返されるデータ形式を確認します。詳しい手順はクイックスタートをご覧ください。

On Demand:オンデマンド接続

概要:On Demandは、ネットワーク条件に応じてアプリの接続を開始または維持する機能です。「いつ接続するか」を決めるもので、「接続後にリクエストをどう処理するか」を決めるRuleとは役割が異なります。On Demandを有効にしても、サーバー設定が自動修正されたり、すべての通信がPROXYになったりするわけではありません。実際の振り分けはGlobal Routingと現在のConfigで決まります。

場所と確認方法:SettingsでOn Demand関連の項目を確認します。利用できる条件やシステムの動作は、使用中のデバイスに表示される選択肢によって異なります。バージョンによってはネットワークの種類を区別したり、特定のネットワークを指定したりできます。各条件の意味を確認してから保存してください。表示されていない項目を必須だと考える必要はありません。

設定方法:まず手動で接続し、正常にアクセスできることを確認してからOn Demandを有効にします。自動接続が必要な条件を一つずつ設定してください。保存後、Wi-Fiからモバイル通信に切り替え、さらに元のネットワークに戻して、Homeの接続状態と実際のリクエストを確認します。一時的に自動再接続を止める場合は、先に該当するOn Demand条件を無効にしてから接続を切ってください。そうしないと、条件によってすぐに再接続されることがあります。

注意点:公衆Wi-Fiなどでは、先に認証ページでログインが必要な場合があります。自動接続が認証を妨げる場合は、一時的にOn Demandを無効にし、ログイン後に戻してください。ネットワーク切り替え後の短い待ち時間は、必ずしもルールの問題ではありません。まずアプリが接続を再確立したか確認します。継続して使う前に、ロック、ロック解除、ネットワーク切り替えの3つの状況をテストしてください。現在のWi-Fiだけで一度確認して終わりにしないでください。

Data:通信量の確認

概要:Dataでは、アプリが記録できる通信量や接続状況を確認できます。一定時間通信が続いているか、アップロードやダウンロードに異常がないか、操作によってリクエストが発生したかを調べる際に便利です。これはアプリ側の記録であり、サービス提供元の利用明細ではありません。Subscribeの残量を直接推定するためにも使わないでください。

場所と確認方法:Dataを開き、集計範囲、カウントの開始条件、利用できる分類を確認します。サーバー別や時間別の表示がある場合は、比較する条件をそろえてください。たとえばサーバーの変更前後で比較する際は、選択したサーバーと操作時刻も記録します。記録がないと、累計値を1回のアクセスによる通信量と誤解することがあります。

使い方:問題を調べるときは、まず現在の数値を記録し、関係のないバックグラウンドダウンロードを止めてから、ページを開く、自分のテスト用ファイルをダウンロードするなど、内容が明確な操作を1回行います。Dataに戻って数値の変化を確認し、接続ログで接続先と処理ポリシーも確認してください。統計をリセットする場合は、必要な情報を先に保存してから、画面上のリセット操作を実行します。

注意点:システムのバックグラウンド通信、再試行、接続時の通信などが集計に影響することがあります。DIRECTのリクエストが特定の分類に含まれるかは、集計方法によります。通信量が増えたことから分かるのは通信が発生したことだけで、接続先からデータがすべて返された証拠にはなりません。「通信量は増えるがページが開かない」場合は、累計値だけでサービスの正常性を判断せず、DNS、TLS、サーバーの状態、マッチしたポリシーを続けて確認してください。

Settings:DNSとTest Method

DNS:現在のConfigを確認してから変更

概要と確認場所:DNSはドメイン名をIPアドレスに変換します。関連項目はSettingsと、現在のConfigにあるDNSの設定欄で確認できます。同じ名前の設定でも、実際の動作はConfigの内容によって異なる場合があります。Settingsだけを変更して、使用中のConfigを確認し忘れないようにしてください。ドメインルールのマッチや、アドレスルールで使われる結果にもDNSの処理が関係することがあります。

設定方法:変更前の値を記録し、すべてのドメインで失敗するのか、一部の接続先だけに問題があるのかを確認してください。DNS関連の項目を一つだけ変更し、同じ接続先で再度試して、名前解決の結果を確認します。暗号化通信を使うDNSの場合は、現在のネットワークと選択中のルートからDNSサービスに到達できることも確認してください。ドメインとIPアドレスを固定で対応させる場合は、Hostの用途を理解し、一時的なIPアドレスを長期的なDNS設定の代わりに使わないでください。

注意点:DNSを変更しても、パスワードやポートの誤り、Subscribeの無効化は解決しません。キャッシュの影響で変更がすぐに反映されないこともあります。再試行する前に、該当する接続を切断して再接続し、必要に応じて画面にあるキャッシュ操作を使ってください。Configの具体的な項目や例はConfigの項目を確認し、Config全体とDNS設定を同時に置き換えないようにしてください。

Test Method:テスト結果と実際の通信を区別する

概要と確認場所:SettingsのTest Methodでは、Connectivity Testで使う確認方法を選択します。テスト方式によって確認できる段階は異なります。ポートへの接続が確立しても、認証、TLS、接続先サイトへのアクセスがすべて正常とは限りません。リクエストを使うテストは、テスト先自体の状態にも左右されます。

設定方法と注意点:現在のバージョンで利用できるテスト方式から選び、テスト先とネットワーク環境をそろえて同じグループのサーバーを比較します。1台だけテストに失敗した場合は、サーバー情報とテスト先を確認してください。1回の結果だけでサーバーを削除しないでください。テストに成功した場合も、接続を有効にして実際のアクセスを確認します。表示される所要時間は同じ条件での比較にのみ使えます。ダウンロード速度や、すべてのサイトでの応答速度を示すものではありません。

Today WidgetとiCloud同期

Today Widget:ショートカット操作後も状態を確認

概要と追加場所:Today Widgetは、システムが対応している場合に利用できる、状態確認や操作のショートカットです。まずSettingsで関連項目を探し、デバイスのシステムが提供する方法でウィジェットを追加してください。システムのバージョンによって、表示形式、追加場所、操作できる内容は異なる場合があります。すべてのプラットフォームに共通する機能ではありません。

設定方法と注意点:まずHomeでサーバーを選択して初回接続を済ませてから、ウィジェットを追加し、実際の操作をテストします。ウィジェットの表示が更新されていない場合もあるため、タップ後にHomeへ戻り、現在のサーバー、Global Routing、接続結果を確認してください。ウィジェットが表示されないときは、システムの対応状況とアプリの設定を確認します。ショートカットを使うために既存のConfigを削除する必要はありません。

iCloud:同期範囲と復元手順

概要と確認場所:iCloud関連の項目は、現在のバージョンが対応するデータの同期やクラウドからの読み込みに使います。デバイスのiCloudの状態と必要なアクセス権が前提です。アプリの購入履歴、アプリ内データ、Subscribeサービスはそれぞれ別のものです。同じiCloudにサインインしても、すべてのSubscribeを利用できるわけではなく、どのプラットフォームでも同じサーバー一覧が自動表示されるわけではありません。

設定方法:Settingsで同期項目を確認し、使用中のデバイスでShadowrocketのiCloud利用が許可されていることと、画面に表示される同期範囲を確認します。初めて有効にする前に、ローカルのConfigを保存してください。別のデバイスで読み込みまたは同期した後は、Config名、サーバーグループ、有効状態を確認してから接続します。同じ名前の項目がある場合は、内容を比較し、空のデータで既存の内容を上書きしないようにしてください。

注意点:同期は独立したバックアップではありません。削除や変更が他のデバイスにも反映される場合があります。SubscribeのURLや認証情報を含むデータは慎重に管理し、書き出したファイルを公開フォルダーに保存しないでください。デバイス間の問題を調べるときは、まずアカウント、アクセス権、ネットワークを確認してからアプリ内のデータを確認します。同期を無理に開始させるために、データをすべて繰り返し削除しないでください。

Diagnostics:問題の発生箇所を段階的に確認

概要と確認場所:Diagnosticsは、問題の調査に必要な情報を集める機能です。Settingsで現在のバージョンが提供するツールを確認してください。HomeのConnectivity Testや接続ログと組み合わせて使えます。Diagnosticsはネットワークとアプリの状態、Connectivity Testはサーバーのテスト結果、接続ログは個々のリクエストの確認に役立ちます。診断情報は問題の範囲を絞るためのもので、1件のエラーだけでConfig全体が破損したと判断しないでください。

  1. 基本ネットワークを確認。現在のネットワークで必要な認証が済んでいるか、通常の直接接続ができるかを確認します。ネットワーク自体が使えない場合は、先にネットワークを復旧してください。
  2. サーバー情報を確認。アドレス、ポート、認証情報、利用中のサービスの状態を確認し、同じ条件でConnectivity Testを実行します。
  3. ルーティングモードを確認。Configで失敗する接続先を記録し、一時的にProxyへ切り替えて比較します。結果が異なる場合はRuleと選択中のポリシーを確認してください。
  4. 名前解決とハンドシェイクを確認。DNSの結果、TLS関連の設定、接続エラーを個別に確認し、名前解決の失敗と認証の失敗を混同しないでください。
  5. 再現後に記録。操作の順序、使用したネットワーク、接続先ドメイン、現在のモード、画面に表示されたエラーを記録します。テスト後は元の設定に戻してください。

注意点:一度に変更する設定は1種類にしてください。サーバー、DNS、Configを同時に変更すると、問題が解消しても原因を特定しにくくなります。ログやスクリーンショットを共有する前に、SubscribeのURL、パスワード、認証情報、個人のアドレスなどの機密情報を隠してください。エラーの種類と調査に必要な情報だけを残します。特定の接続先で失敗する場合は、まずその接続先に絞って調べ、環境全体をすぐにリセットしないでください。