公式ガイド / 機能解説

Shadowrocket
機能と基本設定

まず通信の処理方法を決め、サーバー、ルール、接続条件を確認します。一度に変更する設定は一つに絞ると、変更の影響を判断しやすくなります。

このページでは、iPhoneとiPadのアプリ内メニューを手がかりに説明します。項目の内容は現在の画面で確認してください。システム要件はApp Storeのページをご確認ください。

01 / 通信の処理方法

Global Routing:Config、Proxy、Direct

Global Routingは、クライアントで処理する通信の経路を決めます。サーバーが利用可能か、システムの接続スイッチがオンかどうかとは、それぞれ別の確認事項です。

概要:Configは設定モードで、有効なConfigのルールに従って処理方法を選びます。Proxyはプロキシモードで、クライアントが処理する通信をプロキシのポリシーに渡します。Directは直接接続モードで、直接接続のポリシーを使います。ここでいう「すべて」は、クライアントが処理する通信を指し、端末上のあらゆるシステム通信が必ず対象になるという意味ではありません。

画面上の場所:HomeからGlobal Routingを開き、該当するモードを選びます。トラブルシューティングを始める前に、現在の選択内容とHomeで選択中のサーバーを記録してください。Proxyに切り替えても、サーバーの設定が補完されたり、接続可能であると確認されたりするわけではありません。

画面の選択項目 処理方法 使用する場面 確認ポイント
Config / 設定 現在のConfigに設定されたルールとポリシーに従って処理します。 振り分けの条件が決まっており、普段からルールに沿って使う場合。 有効なConfig、ルールの順序、ポリシーの割り当て。
Proxy / プロキシ プロキシのポリシーを使い、通常のルールによる振り分けは行いません。 一時的にプロキシ接続を確認し、ルールに関する問題の範囲を絞り込む場合。 選択中のサーバー、認証情報、実際のアクセス結果。
Direct / 直接接続 直接接続のポリシーを使います。 現在のネットワークで直接アクセスできるか、一時的に確認する場合。 ローカルネットワークが利用可能か、テスト後に元のモードへ戻したか。

設定方法:利用可能なConfigがある場合はConfigを選び、想定したルールに該当する宛先へアクセスして確認します。Configで失敗したら、一時的にProxyを選び、同じネットワーク、同じサーバーで同じ宛先にアクセスしてください。Proxyでは成功しConfigでは失敗する場合、該当したルールを確認します。両方で失敗する場合は、ルールを追加する前にサーバー情報とネットワーク環境を確認しましょう。

注意点:Directにしても、システムのVPN接続がオフになるわけではありません。画面上のモードと接続スイッチは別々に確認してください。トラブルシューティング後は、普段使っているモードに戻し、一時的な設定を残さないようにしましょう。接続手順を順番に確認する場合は使い方ガイドをご覧ください。このページでは、各機能の関係を説明します。

02 / Configとポリシー

ルール振り分け:条件に一致した後、ポリシーを選択

ルールは「今回の接続がどの条件に一致するか」を判断し、ポリシーは「一致した接続をどう処理するか」を決めます。ルールのキーワードだけでは、実際の経路は判断できません。

概要:ルールは通常、上から順に確認され、一致したルールに指定されたポリシーが適用されます。よく使われるポリシーはDIRECT、PROXY、REJECTで、それぞれ直接接続、プロキシ、拒否を意味します。Configではポリシーグループを参照することもあります。PROXYやグループ名が表示されたら、最終的にどのサーバーへ接続するのかも確認してください。

画面上の場所:Configを開き、まず現在有効な設定を確認してから、ルールを表示または編集します。別のファイルを保存しても、そのファイルが有効になるとは限りません。設定した振り分けを確認するには、Global RoutingがConfigになっていることも確認してください。

設定方法:まず現在のConfigをバックアップし、対象範囲を明確にしたルールを追加します。具体的な対象のルールは、広い条件に一致するルールより前に置き、末尾のFINALも確認してください。テスト時はアクセス先、該当ルール、適用されたポリシーを記録します。ページが開いたかどうかだけで振り分け結果を判断しないでください。

キーワード一致条件設定時の確認事項
DOMAIN完全一致するドメイン。単一のドメインを指定するときに使います。サブドメインすべてが対象になるわけではありません。
DOMAIN-SUFFIXドメインのサフィックス。該当ドメインとそのサブドメインが対象になります。影響する範囲を確認してください。
DOMAIN-KEYWORDドメインに含まれるキーワード。一致範囲が広いため、短いキーワードによる意図しない一致に注意してください。
IP-CIDR / IP-CIDR6IPv4 / IPv6のアドレス範囲。アドレスの種類とプレフィックス長を確認してください。ドメインへのリクエストでは名前解決も関係する場合があります。
GEOIPIPアドレスの地理情報。IPアドレスとデータベースに基づく判定で、ページの言語による振り分けではありません。
FINAL先行するルールに一致しなかった場合のフォールバック。フォールバック先のポリシーを確認し、ルールに一致しなかった通信が意図しない経路へ進まないようにします。

注意点:1つのページから複数のドメインにリクエストが送られることがあります。メインページが表示されても、関連リソースが同じポリシーに一致したとは限りません。ルールの一致結果は、DNSの応答、Configの内容、接続の再利用などにも左右されます。例のルールを任意の位置に追加しただけで設定完了と判断せず、先行するルールが先に一致していないか確認してください。キーワードの説明は用語ガイドをご覧ください。

03 / Homeとインポート

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

利用可能なサブスクリプションまたはサーバー情報があることを前提に説明します。アプリの買い切り購入と接続サービスの契約は別です。サブスクリプションURLは利用中のサービス提供元から入手してください。

概要:個別のサーバーには、接続に必要なプロトコル、アドレス、ポート、認証情報を保存します。Subscribeは複数のサーバー情報をインポート、更新するための機能です。Configはルールなどの設定を管理するもので、役割が異なります。サブスクリプションの更新は通常、そのサブスクリプションに含まれる情報を更新する操作です。あらゆる設定の問題を解決する方法ではありません。

画面上の場所:Homeの追加メニューからAdd Serverを開き、該当する種類を選びます。サブスクリプションURLがある場合はSubscribeを使います。個別のサーバー情報がある場合は、該当するプロトコルを選んで各項目を入力します。QRコードはScan QR Codeで読み取れます。クリップボードからのインポートは、現在のクライアントが対応する共有形式で利用できます。

設定方法:まず、インポートする情報がサブスクリプションURL、個別サーバーの共有リンク、Configファイルのどれに該当するか確認し、適切なメニューを選びます。手入力する場合、Address、Port、プロトコルはサービス提供元の情報と一致させてください。Password、UUID、TLS、SNIなどは、そのプロトコルで必要な場合にのみ入力します。異なるプロトコルの項目を流用しないでください。インポート後はサーバーやサブスクリプションを見分けやすい名前で登録し、対象サーバーを選んでテストします。

複数のサブスクリプションを使う場合は、提供元や用途ごとに名前を整理し、更新前に対象のグループを確認してください。1台のサーバーが使えなくなっても、グループ全体を削除する必要があるとは限りません。まず更新結果と、サービス提供元側で有効かどうかを確認しましょう。削除前には必要な情報を保存してください。特に、手動で変更した項目は更新時に上書きされる可能性があります。

注意点:サブスクリプションURLにはアクセス情報が含まれる場合があります。公開ログ、スクリーンショット、問い合わせ文などに貼り付けないでください。QRコードを読み取れたことは、内容を認識できたことを示すだけで、サーバーに接続できることを保証しません。遅延テストも、Webページへのアクセス全体を検証するものではありません。更新、並べ替え、削除、バックアップについてはサブスクリプションとサーバーの管理ガイドをご覧ください。

04 / 接続条件

On Demand:条件に応じて接続

On Demandは接続を開始するタイミングを管理します。Global Routingの代わりにはならず、サブスクリプションの有効性を判定する機能でもありません。

概要:On Demandはシステムのオンデマンド接続機能を使い、設定したネットワーク条件に応じて接続を制御します。特定のネットワーク環境で自動接続したい場合に便利です。アプリ内に表示される条件や組み合わせ方は、現在の画面で確認してください。

画面上の場所:Settingsを開き、On Demandの関連項目で現在のスイッチと設定済みの条件を確認します。以前にオンデマンド接続を設定している場合は、まず条件を記録してから、追加や変更が必要か判断してください。条件の重複による予期しない動作を避けられます。

設定方法:まず手動接続でサーバーとConfigが使えることを確認してから、オンデマンド接続を設定します。一度に変更するネットワーク条件は一つに絞り、保存後、該当するネットワークでシステムのVPN状態を確認し、既知の宛先に実際にアクセスしてください。Wi-Fiとモバイル通信を切り替えた後も、それぞれの環境で確認します。同じネットワークでスイッチを何度も切り替えるだけでは不十分です。

注意点:On Demandを設定していると、手動で接続を切っても、条件を満たしたときに再接続することがあります。自動接続を一時停止するには、Homeのスイッチを繰り返し操作するだけでなく、On Demandの条件を確認してください。オンデマンド接続が確立しても、振り分けが正しいとは限りません。接続後の通信経路は、Global Routingと現在のConfigによって決まります。

05 / 利用状況の記録

Data:通信量を確認する。請求の確認には使わない

Dataではクライアントに記録された通信量の変化を確認できます。通信が発生したかを調べるのに役立ちますが、速度、回線品質、請求内容を単独で証明するものではありません。

概要:Dataには、クライアントから確認できる範囲の通信量が表示されます。アップロードとダウンロードは、それぞれ異なる方向のデータ通信を示します。統計の対象や記録範囲は、実際の画面表示で確認してください。クライアント、端末のシステム、サービス提供元では集計方法が異なる場合があるため、数値が完全に一致するとは限りません。

画面上の場所:Dataを開き、まず集計対象と期間を確認します。サーバーや接続ごとの分類が表示される場合は、対象を確認してから前後の数値を比較してください。特定の分類の数値を、端末全体の通信量と取り違えないようにしましょう。

確認方法:宛先を一つだけ開くなど、条件を明確にしたテストを行い、操作前後の通信量を比較します。画面にリセット機能がある場合は、必要な記録を保存してからリセットするか判断してください。クライアントの統計をリセットしても、サービス提供元側の使用量はリセットされません。長時間観察する場合は、同じ集計範囲を保つようにします。

注意点:少量の通信が記録されても、目的のコンテンツが正常に読み込まれたとは限りません。接続の確立、再試行、バックグラウンド通信でもデータが発生することがあります。Dataから残りの利用可能量を直接算出することはできず、サービス提供元の請求情報に代わるものでもありません。アクセス失敗の原因を調べる場合は、DataとDiagnosticsの接続情報をあわせて確認してください。

06 / よく使う設定

Settings:DNS、テスト、ショートカット、同期

現在利用できている設定を保ったうえで、問題に応じて変更します。設定名が同じでも、あらゆる接続障害を解決できるとは限りません。

DNS:名前解決の失敗と接続の失敗を切り分ける

概要と画面上の場所:DNSはドメイン名をアドレスに変換します。SettingsのDNS関連項目を確認する際は、現在のConfigにDNS設定が含まれているかも確認してください。一方の設定だけを変更し、使用中のConfigを見落とさないようにします。

設定方法:まず現在の名前解決設定を記録し、明確な必要性がある場合に変更してから、同じドメインで再確認します。一部の宛先だけ失敗する場合は、名前解決で応答が返らないのか、アドレスが返った後の接続が失敗するのかを切り分けてください。名前解決方式を指定する場合は、アドレス形式、到達可能性、現在のネットワーク条件を確認します。よく見かけるアドレスだからという理由だけで置き換えないでください。

注意点:名前解決の結果はキャッシュされる場合があり、設定を変更しても結果がすぐに変わるとは限りません。DNSを変更しても、サーバーのパスワード、ポート、TLSの設定ミスは解決しません。Configによる上書きや優先順位が関係する場合は、現在のConfigと診断結果を確認してください。DNSの変更を常に最初の対処方法にする必要はありません。

Test Method:テスト条件をそろえる

概要と画面上の場所:Test Methodは、Settingsにある接続テスト方式の設定項目です。HomeのConnectivity Testの結果は、選択した方式を踏まえて判断してください。方式によってテストする段階が異なるため、結果を同じ基準として扱うことはできません。

設定方法:現在の画面で利用でき、今回の確認目的に合った方式を選び、同じサーバー群をテストします。結果を比較する際は、ネットワーク、テスト方式、テスト対象をそろえてください。テスト方式に対象アドレスやタイムアウトの設定がある場合は、それらも記録します。

注意点:テストに成功しても、通常のアクセスがすべて成功するとは限りません。失敗と表示された場合も、テスト対象やタイムアウト設定が関係することがあります。並べ替えの際に一つの遅延結果だけで判断せず、実際にアクセスして現在のサーバーを確認してください。

Today Widget:ショートカットとシステムの対応状況

概要と画面上の場所:Today Widgetは、システムからすばやくアクセスするための設定項目です。まずSettingsで関連する項目を確認し、システムの該当するウィジェット管理画面で追加できるか確認してください。利用できる場所や表示方法は、現在のシステムとアプリの画面に従います。

設定方法:システムで案内される手順に沿って追加したら、表示される接続状態と操作対象を確認します。初めて使うときはHomeに戻って動作を確認し、ウィジェットの表示だけで接続が切り替わったと判断せず、意図した接続に影響しているか確かめてください。

注意点:ウィジェットは操作への近道を提供しますが、サーバー情報やルールの内容は変更しません。表示されない場合は、まずシステムの対応状況とウィジェットの設定を確認してください。表示させるためにDNS、サブスクリプション、Configを同時に変更する必要はありません。

iCloud:同期と個別バックアップを分けて考える

概要と画面上の場所:iCloud関連の設定は、システムアカウントとクラウドサービスが利用できる場合に、アプリが対応するデータを同期するためのものです。Settingsで該当するスイッチを確認し、システム側のiCloudアクセス権と空き容量も確認してください。実際に同期される範囲は、アプリ内の説明に従います。

設定方法:端末を買い替える前に、旧端末で同期状態を確認し、重要なConfigと利用中のサブスクリプション情報を別途保存してください。新しい端末でApp Storeからアプリを再取得したら、同期内容がそろっているか確認し、サーバー、Config、ルールを一つずつ検証します。リストに表示されたことだけを根拠に、旧端末のデータを削除しないでください。

注意点:同期は独立した履歴スナップショットではありません。一方の端末で行った変更や削除が、他の端末に影響する場合があります。購入履歴、システムのVPN構成に関する許可、アプリ内の設定は、それぞれ別のデータです。同期後も、新しい端末でシステムの許可を確認する必要がある場合があります。

07 / 診断と再テスト

Diagnostics:記録を手がかりに原因を絞り込む

まず問題を一度再現してから、その時刻の記録を確認します。接続、名前解決、ルール、サーバー情報を分けて確認すると、複数の設定を同時に変更するより原因を特定しやすくなります。

概要と画面上の場所:Diagnosticsは、接続状態や関連記録を確認するための診断メニューです。Settingsから探してください。利用できるログやツールは現在の画面で確認します。診断記録は補助情報です。問題が起きたときのネットワーク、Global Routing、現在のConfigとあわせて読み取ってください。

使い方:失敗した宛先、発生時刻、エラーメッセージを記録してから、必要最小限の操作をもう一度行います。該当する記録を見て、DNS、接続確立、認証、その後のリクエストのどの段階で失敗したかを確認してください。Configモードだけで失敗する場合は、ルールとポリシーを重点的に確認します。同じサーバーがProxyでも失敗する場合は、サーバーの設定項目とテスト条件を優先して確認してください。

注意点:ログには、サブスクリプションURL、サーバーアドレス、アクセス先のドメイン、認証情報などが含まれる場合があります。記録を共有する前に、接続情報と個人情報を削除し、原因の特定に必要な時刻、エラーの種類、確認済みの項目だけを残してください。一般的な接続エラーの調査で、TLS検証を安易に緩和しないでください。

設定を一通り確認する

  1. ネットワーク自体が利用できることを確認し、Homeに表示されるサーバーと接続状態を記録します。
  2. Global Routingを確認し、同じ宛先で問題を再現します。
  3. Configではルールの順序とポリシーの割り当てを確認し、サーバー側ではプロトコルと認証情報を確認します。
  4. DNS、Test Method、Diagnosticsを確認し、異なる条件でのテスト結果をそのまま比較しないようにします。
  5. 一度に変更する項目は一つに絞り、再テスト後、有効な変更だけを残して一時的なモードを元に戻します。

症状に応じて引き続き確認する場合はトラブルシューティングをご覧ください。インポートと接続の手順を最初から確認する場合は使い方ガイドをご覧ください。