公式マニュアル · 機能と設定
Shadowrocketの機能と基本設定
まず通信の処理方法を決め、次にサーバー、接続条件、診断結果を確認します。各設定の役割は異なるため、一度にすべて変更する必要はありません。
本ページでは主にiPhoneとiPadでの操作を説明します。画面構成や利用できる項目は、アプリ内の表示をご確認ください。システム要件はApp Storeの掲載内容をご確認ください。
ルール、プロキシ、または直接接続のどれで処理するかを決めます。
ルールの順序に従って通信の処理方法を選びます。
実際のアクセス結果から、問題が起きている箇所を特定します。
Home → Global Routing
Global Routingの3つのモード
普段はConfigでルールを使い、ProxyとDirectは目的を明確にした一時的な確認に適しています。
Global Routingは、クライアントが処理する通信の範囲と方法を決めます。HomeでGlobal Routingを開き、Config、Proxy、Directのいずれかを選んでから、選択中のモードを確認してください。これらはそれぞれ設定、プロキシ、直接接続に対応する画面上の英語表記です。サーバー情報を示すものではなく、接続に必要な情報を補う機能もありません。
| モード | 処理方法 | 使用する場面 | 確認する項目 |
|---|---|---|---|
| Config · 設定 | 現在有効な設定ファイル内のルールに従って、ポリシーを選択します。 | 接続先ごとにPROXY、DIRECT、REJECTを使い分ける場合。 | 有効な設定ファイル、ルールの順序、最終的に適用されるポリシー。 |
| Proxy · プロキシ | このモードの処理対象にプロキシ経由で接続します。 | サーバー経由で目的のサイトやサービスにアクセスできるか一時的に確認する場合。 | 選択中のサーバー、認証情報、実際のアクセス結果。 |
| Direct · 直接接続 | このモードの処理対象に直接接続します。 | 問題が現在のローカルネットワークでも発生するか確認する場合。 | ローカルネットワーク、名前解決、接続先への到達性。 |
モードを切り替えた後の確認方法
最初に元のモードと使用中のサーバーを記録し、同じ接続先で比較テストします。ProxyではアクセスできてConfigではできない場合は、設定ファイルとルールを確認します。どちらも失敗する場合は、サーバー情報と基本的なネットワーク環境を優先して確認してください。Directでアクセスできても、プロキシの設定が正しいとは限りません。その接続先に今回の条件で直接アクセスできたことを示すだけです。
Global Routingを切り替えても、すべてのシステム通信が同じように処理されるとは限りません。システムのネットワーク動作、設定ファイル内の関連項目、既存の接続によって結果は変わります。切り替え後は接続先へのリクエストを新たに実行し、以前の接続結果と混同しないようにしてください。テスト後は普段使用しているモードに戻します。
Config → ルール
ルールの種類とポリシーの動作
ルールはリクエストを照合し、ポリシーは一致した場合の動作を決めます。まず順序を確認し、次に個々の構文を確認してください。
ルールによる振り分けは、Global RoutingでConfigを選択したときに適用されます。Configを開き、現在有効な設定ファイルを確認してから、ルールを表示または編集してください。ルールは設定ファイル内の順序どおり上から確認され、最初に一致したルールのポリシーが適用されます。FINALは最後に配置し、それ以前のルールに一致しなかったリクエストの処理方法を指定します。
接続先の特徴に合わせてルールの種類を選ぶ
DOMAINはドメイン名の完全一致、DOMAIN-SUFFIXは指定したドメインの末尾とそのサブドメインの照合に使います。DOMAIN-KEYWORDはドメイン名に含まれるキーワードで照合するため、対象範囲が広くなりやすいルールです。IP-CIDRとIP-CIDR6は、それぞれIPv4とIPv6のアドレス範囲を指定します。GEOIPはIPアドレスの地域情報に基づいて判定します。種類によって照合に使う情報が異なるため、ドメインルールとIPアドレスのルールは単純に置き換えられません。
USER-AGENTはリクエストに含まれる該当情報を照合しますが、すべての接続で判定に使える情報が得られるわけではありません。汎用的なアプリ識別方法として扱わないでください。編集前に、現在のアプリでサポートされているルール構文と、対象の通信にそのルールを適用できる条件を確認してください。
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
DOMAIN-KEYWORD,ad,REJECT
FINAL,PROXY
これはルールの順序を説明するための例であり、既存の設定ファイルをそのまま置き換えることを推奨するものではありません。example.comは例示用のドメインです。
PROXY、DIRECT、REJECTの違い
PROXYはプロキシポリシーの使用、DIRECTは直接接続、REJECTは一致したリクエストの拒否を意味します。利用可能なポリシーグループ名を指定した場合は、そのグループで選択されている内容も確認してください。画面上のモードProxyとルールの動作PROXYは大文字・小文字が異なります。また、Configモードではすべてのリクエストが必ずプロキシ経由になるわけではありません。
リモート設定を更新すると、ローカルで加えた変更が置き換わる場合があります。変更を継続して使う場合は、現在のファイルの入手元と更新方法を確認し、復元できるコピーを保管してください。操作手順は使い方ガイドをご覧ください。
Home · Subscribe · Add Server
サーバーとサブスクリプションの管理
既存のサブスクリプションまたはサーバー情報があることを前提に、インポート後も選択内容と接続パラメーターを確認します。
サブスクリプションを使うとサーバー情報をまとめて更新できます。手動追加は、接続パラメーターが明確なサーバーを管理する場合に適しています。サブスクリプションURLは利用中のサービス提供元から入手し、対応するSubscribe画面に入力してください。個別に追加する場合はHomeからAdd Serverを開き、手元の情報に合わせてプロトコルを選び、必要な項目を入力します。画面上の項目や場所は、現在のアプリ内表示をご確認ください。
プロトコルを選択して接続情報を入力
ShadowrocketはShadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2などのプロトコルに対応しています。必要な認証情報や通信関連の項目はプロトコルによって異なるため、アドレスとポートだけを入力して設定が完了したと判断しないでください。サーバーアドレス、ポート、パスワードなどの認証情報を一つずつ確認し、TLSや通信方式などの関連項目も手元の情報に従って設定します。
QRコードを読み取る場合はScan QR Codeを使用します。クリップボードから読み込む場合は、目的の共有情報がコピーされていることを先に確認してください。QRコードや共有リンクに認証情報が含まれることがあるため、公開ページへアップロードしないでください。サブスクリプションURLも認証情報として慎重に扱います。https://example.com/sub?token=xxxxは入力形式の説明用であり、実際の接続情報ではありません。
更新、選択、削除はそれぞれ確認する
Subscribeで更新すると、取得元から返された内容に基づいてサーバー情報が更新されます。アプリのアップデートとは異なり、選択中のサーバーが引き続き利用できる保証もありません。更新後は項目名や件数の変化、現在の選択を確認し、Connectivity Testを実行してから実際のウェブサイトやサービスにアクセスしてください。サブスクリプション内の項目を手動で変更すると、次回の更新で上書きされる場合があります。重要な情報は別途適切に記録してください。
複数のサブスクリプションを管理する場合は、用途や取得元がわかるメモを付けてください。削除前に、対象が個別のサーバーかサブスクリプション全体かを確認します。リストから削除しても、サービス提供元との契約が解除されるわけではなく、リモート側の認証情報が無効になるわけでもありません。
Settings → On Demand
On Demand(オンデマンド接続)
接続を開始する条件を設定します。リクエストの経路を決めるGlobal Routingとは役割が異なります。
On Demandは、設定したネットワーク条件に応じて接続動作を開始します。ネットワークが変わるたびに手動で操作する手間を減らしたい場合に便利です。SettingsのOn Demandを開き、利用できる条件を確認してから、必要に応じて設定してください。SSIDを条件にする場合は、使用するWi-FiのSSIDを正確に入力し、その条件で接続、無視、または別の動作のどれが実行されるかを確認します。
まず手動接続を確認し、その後に条件を設定
まずオンデマンド接続が影響しない状態にし、現在のサーバーに手動で接続できることと、Global Routingが意図どおりであることを確認します。その後、明確な条件を一つ設定してください。保存後は、条件に一致するネットワークと一致しないネットワークの両方でテストし、接続状態と実際のアクセス結果を確認します。サーバー、ルール、ネットワーク条件を同時に変更すると、問題の原因を特定しにくくなります。
On Demandは決まった時刻に起動するスケジュール機能ではなく、ネットワークの切り替え後もすべての既存接続が維持されることを意味しません。システムによる制御、ネットワークの状態、VPN設定などによって動作は変わります。起動しない場合は条件とシステムの許可を確認してください。接続が何度も再開する場合は、メインスイッチを繰り返し操作するのではなく、オンデマンド条件が引き続き適用されていないか確認します。
接続を開始するタイミングとリクエストの振り分けは、別々の設定です。On Demandで接続が開始されても、ConfigのDIRECTルールに一致する通信は直接接続されます。外出先へ移動したりネットワークを変更したりする前に、条件を簡単に記録し、以前のSSID条件を忘れないようにしてください。
Data
Data(通信量の統計)
クライアントに記録された通信量の変化を確認するための機能です。サービス提供元の利用明細に代わるものではありません。
Dataでは、クライアント側で記録した通信量を確認できます。Dataを開き、画面に表示されている集計対象、期間、分類を確認してから、アップロード、ダウンロード、累計値の意味を判断してください。集計対象が異なる数値をそのまま差し引いて比較することはできません。リセットする前に、どの記録が対象になるかも確認してください。
統計は問題の切り分けに使い、合計値だけで判断しない
問題を調べる際は、まず現在の数値を記録してから、目的を明確にしたアクセスを一度行い、再び数値を確認します。アップロードがある一方でダウンロードがほとんどない場合、リクエストを送信しても期待した応答が得られていない可能性がありますが、診断結果や接続先の状態も合わせて確認してください。バックグラウンド処理、別の通信、接続の再試行も数値に影響するため、できるだけ単純な条件でテストします。
集計期間、プロトコルのオーバーヘッド、計測方法などの違いにより、クライアントの統計とサービス提供元の明細は一致しないことがあります。Dataに表示される合計値は、利用できる残量を示すものではなく、サブスクリプションの有効期限も判断できません。サービスの有効期間や利用可能量は、利用中のサービスの記録を確認してください。
通信量が増えても、必ずしもルールによる振り分けに問題があるとは限りません。まず、どの種類のリクエストで変化が生じたかを確認し、Global Routingとルールの一致状況を調べてください。調査記録を残す場合はテスト時刻と操作を記録します。共有する前に、サーバー情報、ドメイン名などの機密情報を隠してください。
Settings
DNS、テスト、同期、診断
一度に変更する項目は一つにし、元の設定を記録してから同じ接続先で確認します。
DNS:現在の設定元を確認
DNSはドメイン名をIPアドレスに変換します。確認できる場所は、Settings内のDNS関連設定と、現在有効なConfigファイルのDNS項目です。変更する前に、名前解決をどの設定が制御しているか確認し、該当する項目だけを変更してください。ウェブページが開かないからといって複数のDNS設定を同時に変更したり、サーバーアドレスの名前解決と接続先サイトの名前解決を混同したりしないようにします。
レイテンシテストに成功してもウェブページが開かない場合は、ドメイン名を解決できるか、ルールで最終的にどのポリシーが適用されるか、実際のリクエストが成功するかを順に確認します。設定内の名前解決経路とプロキシの通信経路は異なる場合があります。一つのテスト結果だけでアクセス全体が正常だとは判断できません。元の設定を保存し、変更後にリクエストを再実行して、元に戻した場合の結果とも比較してください。
Test MethodとConnectivity Test:条件をそろえて測定
Test Methodでは利用できるテスト方法を選択します。通常はSettingsのテスト関連項目から変更できます。Connectivity Testは接続テストを実行する機能です。テスト方法によって確認する段階が異なるため、結果を比較する際は同じネットワーク、同じ方法、近い時間帯で測定してください。一度の数値が小さいからといって、すべてのサイトで速いと判断しないようにします。
テストに失敗した場合は、まず選択した方法の要件を確認し、次にサーバー情報とネットワーク環境を調べてください。テストに成功した後も、実際の接続先にアクセスし、名前解決、接続、コンテンツの読み込みが完了することを確認します。Test Methodを変更して結果が大きく変わった場合は、方法名を記録し、異なる条件の結果を比較しないようにしてください。
Today Widget:すばやく確認・操作する
Today Widgetは、システムで許可されている範囲で、情報の確認や操作をすばやく行うための入口です。Settingsで関連項目を確認した後、システムのウィジェット管理画面で追加できる項目があるか確認してください。利用できる形式は、デバイスのシステムとアプリが実際に提供する機能によって異なります。過去の特定のレイアウトが、すべてのデバイスに表示されるとは限りません。
ウィジェットの表示は更新されるまで時間がかかることがあります。操作後の状態が想定と異なる場合は、Homeに戻って実際の接続状態を確認し、システムで必要な機能が許可されているか調べてください。ウィジェットは独立したサーバー設定ではなく、アプリ内のVPN許可に代わるものでもありません。
iCloud同期:同期とバックアップの違い
SettingsでiCloud関連の項目を確認し、システム設定でShadowrocketのiCloud利用が許可されているかも確認してください。有効にする前に、各項目がどのデータを対象としているかを確認します。サーバー情報、設定ファイル、選択状態、その他の設定がすべて同期されるとは限りません。初めて利用する場合は、まずローカルにコピーを保存し、別のデバイスで項目ごとに確認してください。
同期は対応データをデバイス間でそろえるための機能で、変更履歴をすべて保存するものではありません。削除や誤った編集が同期先にも反映される場合があるため、同期は個別のバックアップの代わりになりません。同期データにサブスクリプションURLや認証情報が含まれることがあります。デバイスとiCloudアカウントを安全に管理し、問題の調査のために同期データ全体を公開しないでください。
Diagnostics:失敗したリクエストの情報を集める
SettingsのDiagnostics、または現在の画面に表示される診断項目から始めます。まずネットワークの種類、Global Routing、現在の設定ファイルとサーバーを記録し、失敗したリクエストを一度再現してください。基本的なネットワーク、サーバーアドレスの名前解決、接続の確立、ルールの適用、接続先へのアクセスの順に調べると、すべての設定を何度も切り替えるより原因を絞り込みやすくなります。
診断記録には、接続先のドメイン名、サーバーアドレス、リクエストの詳細が含まれることがあります。共有する前に、サブスクリプションURL、認証情報、その他の個人情報を削除し、状況の説明に必要な最小限の部分だけを残してください。調査後は一時的に変更した設定を元に戻し、不要になった詳細記録を停止して、以降の操作と過去のテスト結果が混ざらないようにします。