Shadowrocket
機能と設定方法
まずGlobal Routingを選び、ConfigとSERVERを確認します。接続後は実際のリクエストで結果を確かめます。
このページでは、iPhoneとiPad版Shadowrocketを対象に、機能の概要、設定場所、操作手順、注意点を説明します。画面の構成はデバイスによって異なる場合があります。項目名や利用できる選択肢はアプリ内の表示をご確認ください。初回の読み込みから操作したい場合は、はじめにをご覧ください。
Global Routing:3つの動作モード
Configはルールに基づいて通信先を決定します。Proxyはプロキシ経由、Directは直接接続です。
概要:Global Routingは、クライアントのネットワーク経由で処理されるリクエストの扱いを決めます。サーバー一覧や接続スイッチとは異なります。サーバーを選ぶと、プロキシが必要な場合に使う出口が決まります。一方、Config、Proxy、Directの選択は、リクエストをどのような方針で処理するかを決めます。3つのモードは用途が異なるため、モードの切り替えでサーバー設定の誤りを補うことはできません。
場所と設定方法:Homeを開き、Global RoutingからConfig、Proxy、Directを選択します。ドメインやアドレスなどの条件で振り分ける場合は、Configで有効な設定を確認してからConfigを選びます。選択中のサーバーでリクエストを処理できるか一時的に確認するにはProxyを、現在のネットワークから直接アクセスした場合と比較するにはDirectを選びます。切り替えた後は、対象に新しいリクエストを送って確認してください。すでに確立済みの接続だけを見ても判断できません。
| 画面上の項目 | 処理方針 | 利用する場面 | 確認するポイント |
|---|---|---|---|
| Config ルールに従う |
現在有効な設定のルールとポリシーに従ってリクエストを処理します。 | 宛先ごとにDIRECT、PROXYなど、定義済みのポリシーを指定したい場合。 | 設定が有効か、ルールの順序は適切か、ポリシー名が存在するか。 |
| Proxy プロキシ経由 |
クライアントの処理対象となるリクエストをプロキシ経由で処理します。 | 選択中のサーバーとプロキシ経路が利用できるか、一時的に確認する場合。 | SERVERの選択、プロトコル設定、接続先サービスへのアクセス可否。 |
| Direct 直接接続 |
クライアントの処理対象となるリクエストを直接接続で処理します。 | 現在のネットワークから直接アクセスした結果を比較し、振り分けの問題を切り分ける場合。 | ローカルネットワークが正常か、自動接続の条件が残っていないか。 |
ルールによる振り分け:条件と処理方針
概要:ルールは「何に一致するか」と「一致した後にどう処理するか」で構成されます。DOMAIN、DOMAIN-SUFFIXなどは一致条件を示し、DIRECT、PROXY、REJECTなどは処理方針を示します。ルールは上から順に確認され、通常、一致したリクエストは後続のルールでは処理されません。そのため、ルールの内容だけでなく順序も重要です。Global RoutingがConfigの場合に、現在の設定のルールを確認して振り分け結果を調べます。
場所と設定方法:Configを開き、現在有効なファイルを確認してから、[Rule]セクションを確認します。編集前に元の設定を保存し、対象のリクエストに関係する項目だけを変更してください。範囲が明確で限定的な例外ルールを適切な位置に置き、最後にFINALを確認します。ポリシーが設定内で定義されたグループ名を参照している場合は、名前の表記が一致し、グループ内で選択可能な項目があることも確認します。
| キーワード | 一致条件または処理内容 | 使用時の注意点 |
|---|---|---|
DOMAIN | 完全一致するドメイン名を指定します。 | 特定のホスト名だけを対象にする場合に適しています。 |
DOMAIN-SUFFIX | ドメイン名とそのサブドメインに一致します。 | 単一のDOMAINより対象範囲が広いため、サブドメインも対象にしてよいか確認します。 |
DOMAIN-KEYWORD | ドメイン名に含まれるキーワードで一致させます。 | 短すぎるキーワードは、関係のない宛先まで一致するおそれがあります。 |
IP-CIDR / IP-CIDR6 | IPv4またはIPv6のアドレス範囲に一致します。 | アドレスファミリー、マスク、実際に接続するアドレスを確認します。 |
GEOIP | IPの地理的位置情報データベースに基づいて一致させます。 | 判定結果はドメインの地域とは異なり、データベースにも左右されます。 |
DIRECT / PROXY / REJECT | 直接接続、プロキシ経由、リクエスト拒否をそれぞれ指定します。 | これらは処理ポリシーであり、ドメインの一致条件ではありません。 |
FINAL | 前のルールに一致しなかったリクエストを処理します。 | 通常はルールの末尾に置き、残りのリクエストの処理先を明示します。 |
最小限のルール例
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
この例は一致条件の仕組みを示しています。example.comとそのサブドメインへのリクエストはPROXYで処理し、それ以外はDIRECTで処理します。すべてのユーザーに適した完全な設定ではありません。PROXYの実際の接続先は、現在の設定とサーバーの選択を確認してください。編集後はテスト対象に再アクセスし、接続記録の宛先とポリシーを見て、想定したルールに一致しているか確認します。
注意:Webページは複数のドメインに同時にアクセスする場合があります。トップページが開いても、画像、ログイン、APIのリクエストに同じポリシーが使われるとは限りません。問題を調べるときは、失敗した宛先を特定し、サイト名だけを頼りに範囲の広すぎるルールを追加しないでください。ルールキーワードの詳細は用語集をご覧ください。
Subscribeとサーバーの管理
概要:サーバー項目には、接続に必要なアドレス、ポート、プロトコル、認証情報が保存されます。Subscribeでは、ユーザーがすでに持っているサブスクリプションURLからサーバー項目を読み込みます。サブスクリプション、サーバー、Configはそれぞれ別のものです。サーバーを読み込んでもルールファイルが正しく有効になったとは限らず、Configを有効にしても、参照先のサーバーが利用できるとは限りません。
場所と設定方法:HomeでAdd Serverを開きます。すでにサブスクリプションを利用している場合は、TypeにSubscribeを選び、サービス提供元から受け取ったURL全体を貼り付けて保存し、読み込み結果を確認します。サーバー情報が1件分ある場合は、指定されたプロトコルに合わせてTypeを選び、各項目を入力します。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは入力項目が異なります。名称が似ているからといって、別のプロトコルの設定を流用しないでください。
- 入力内容がすべてそろっているか確認します。特にサブスクリプションURLの末尾にあるパラメーターに注意してください。説明文を一緒に貼り付けないようにします。
- 保存後、Homeでグループとサーバー項目を確認し、意図した内容が読み込まれたことを確かめてからConnectivity Testを実行します。
- 使用するSERVERを選び、Global Routingを確認します。Configを使う場合は、ルールが参照しているポリシーも確認してください。
- サブスクリプションを更新した後は、現在の選択をもう一度確認します。項目名や内容が変わる場合があるため、以前の選択がそのまま有効だと思い込まないでください。
注意:サブスクリプションの更新失敗とサーバーへの接続失敗は、別々の段階で起きる問題です。前者はURLの有効性と、現在のネットワークからサブスクリプションを取得できるかを確認します。後者はサーバーアドレス、ポート、認証情報、通信設定を確認します。サブスクリプションURLにはアクセス情報が含まれる場合があります。スクリーンショット、ログ、問い合わせ文を共有する際は、URL全体と認証情報を隠してください。項目を削除する前に、元の情報を保存したか確認します。サブスクリプションから生成された項目を手動で編集しても、次回更新時に置き換えられる場合があります。
On Demand:条件に応じた接続
概要:On Demandは、設定した条件に合致したときにシステムがVPN接続を開始する機能です。「いつ接続するか」を決めるもので、接続後のリクエスト処理を決めるGlobal RoutingやConfigとは役割が異なります。On Demandを有効にしても、サーバー情報が補われたり、誤った設定が使えるようになったりするわけではありません。
場所と設定方法:Settingsを開き、On Demandの設定を探して、アプリ内に表示されるネットワーク条件を設定します。設定を始める前に手動で接続し、現在のSERVERとConfigが正常に動作することを確認してください。その後、必要な条件を1つだけ追加して保存し、該当するネットワークに切り替えて動作を確認します。Wi-Fiとモバイル通信の条件を個別に設定できる場合は、それぞれでテストします。一方のネットワークでの結果から、もう一方の動作を判断しないでください。
注意:有効にすると、手動で接続を切っても、システムが後から再接続する場合があります。「切断したのに再びつながる」場合は、まずOn Demandとシステム側の関連するオンデマンド接続設定を確認し、ネットワーク切り替え後の動作を観察します。一時的に自動接続を完全に止めるには、関連条件を先に無効にしてから、接続スイッチを操作してください。
On Demandだけでバッテリー消費の大小が決まるわけではありません。電波状況、ネットワークの切り替え頻度、リクエスト数、接続時間などもバッテリーの使用状況に影響します。他の条件をできるだけそろえ、システムのバッテリー画面で一定期間の実際の使用状況を比較してください。VPNアイコンの表示だけでは判断できません。接続が安定してから条件を少しずつ追加すると、どの変更が動作に影響したか確認しやすくなります。
Data:通信量とリクエストの確認
概要:Dataでは、クライアントに記録された通信量や接続に関する情報を確認できます。利用中にリクエストが発生したか、通信量が増え続けているか、設定変更の前後でどう変わったかを把握するのに役立ちます。クライアント側の確認画面であり、サービス提供元の利用明細とは異なります。また、通信量の合計だけで特定のルールが正しいかを判断することはできません。
場所と確認方法:Dataを開き、まず表示されている集計範囲と期間を確認してから、再現できるアクセス試験を行います。個別の問題を調べる場合は、現在の集計値を記録するか必要な記録を保存し、同じ対象にアクセスして前後の変化を比較します。記録の消去や統計のリセットを使う場合は、対象範囲を確認し、調査に必要な情報まで消さないようにしてください。
注意:アップロードとダウンロード、直接接続とプロキシ接続、現在のセッションと累計記録では、集計方法が異なる場合があります。画面上のラベルに従って確認してください。サービス提供元側の計測にはプロトコルのオーバーヘッドが含まれる場合があり、集計期間も異なることがあるため、数値が完全に一致するとは限りません。システムのモバイル通信の統計にも独自の期間設定があります。比較する前に対象期間をそろえてください。
「通信量は増えているのにページが開かない」場合でも、すぐにサーバーが正常だと判断しないでください。バックグラウンドのアプリや別のドメインによる通信の可能性があります。対象のリクエストとエラー内容を引き続き確認します。新しい記録がない場合は、接続スイッチ、テストリクエストを再実行したか、リクエストがクライアントの処理対象になっているかを確認してください。記録を共有する際は、調査に必要な部分だけを残し、個人のドメイン、アドレス、認証情報を隠します。
Settings:よく使う項目の確認
現在の値を記録し、一度に変更するのは1項目だけにします。設定ファイル内の項目もあわせて確認してください。
DNS:名前解決と接続の問題を切り分ける
概要と場所:DNSはドメイン名をアドレスに変換します。SettingsのDNS設定と、現在のConfigにあるDNS関連の設定を確認します。実際の動作は使用中の設定にも左右されるため、一方の画面だけで判断しないでください。
設定方法と注意点:まずは現在の利用可能な設定を維持し、問題が起きるドメインとネットワークを記録します。名前解決の異常を確認できた場合に限り、設定に応じてDNSを変更します。その後、接続をやり直してリクエストを送信し、結果を確かめてください。アドレスが解決できても接続が成功するとは限らず、アドレスが変わっても障害とは限りません。DNS、サーバー、ルールを同時に変更すると、どの設定が結果に影響したか判断できなくなります。
Test Method:Connectivity Testの条件をそろえる
概要と場所:Test Methodはサーバーのテスト方法を決める設定で、Settingsから確認できます。Connectivity Testの結果が何を示すかに影響しますが、実際のサービスへのリクエストを代替するものではありません。
設定方法と注意点:テストの目的に合わせてアプリ内に表示される方法を選びます。サーバーを比較するときは、テスト方法、対象、使用中のネットワークをそろえてください。テスト方法によって確認する段階が異なるため、結果をそのまま混ぜて比較することはできません。テストに成功した場合も、実際の対象を開いて確認します。失敗した場合はサーバーのプロトコルとネットワーク環境も確認し、1回の結果だけで全項目を削除しないでください。
Today Widget:ショートカット操作後も状態を確認
概要と場所:Today Widgetは、クライアントの状態をシステム上で手早く確認または操作するための機能です。Settingsで関連項目を確認し、システムで対応している場所にウィジェットを追加します。追加できるかどうかや表示方法は、使用中のシステムとアプリの対応状況によって異なります。
設定方法と注意点:まずアプリ内でサーバーとルーティングを設定し、その後ショートカットを設定します。使用後はHomeに戻り、接続状態、選択中のSERVER、Global Routingを確認してください。システムウィジェットの表示は更新に時間がかかる場合があります。前回の表示だけで現在の状態を判断せず、問題の確認にはアプリ内の状態と実際のリクエスト結果を優先してください。
iCloud:同期範囲を確認し、完全なバックアップと混同しない
概要と場所:iCloud関連機能は、条件を満たした場合にアプリが対応するデータを同期します。Settingsで同期項目を確認し、システムのiCloud設定でShadowrocketに該当サービスの利用が許可されていることも確認してください。
設定方法と注意点:まずデバイスで使用しているiCloudアカウントとネットワークの状態を確認し、画面に表示される同期範囲に沿って有効にします。デバイスを変更した後は、設定、サーバー、選択状態をそれぞれ確認してください。すべてのデータやシステム上の許可が復元されるとは限りません。同期には時間がかかる場合があります。複数のデバイスで同時に編集する前に、復元できる設定のコピーを保存してください。サブスクリプションや認証情報を含むデータは、引き続き機密情報として扱います。
Diagnostics:問題を絞り込むための情報収集
概要と場所:Diagnosticsは問題の切り分けに使う診断機能で、Settingsから確認できます。診断情報は問題の範囲を絞り込むためのものであり、サーバー設定の確認や実際のアクセス試験に代わるものではありません。
設定方法と注意点:問題が起きたときのネットワーク種別、Global Routing、選択中のSERVERを記録し、画面の案内に従って関連するチェックを実行します。ログが必要な場合は、問題を再現するために必要な範囲だけを記録し、必要な結果を保存したら通常の設定に戻してください。書き出しや共有の前に、サブスクリプションURL、認証情報、個人のリクエスト先などの機密情報が含まれていないか確認します。問題が起きた時刻や操作内容が不明な長いログより、明確で再現可能なテストの方が役立つことがあります。
設定の確認:決まった手順で問題を特定
設定後は、まず最短の手順で確認し、徐々に対象を広げます。接続スイッチがオンでも、接続が開始されたことを示すだけです。Connectivity Testの結果は、選択したテストから応答があったことを示します。対象ページに正常にアクセスできたことが、そのリクエストの実際の結果です。それぞれ確認できる内容が異なるため、互いに代用することはできません。
- 入力内容を確認:Homeでサーバーまたはサブスクリプションが正しく読み込まれているか確認します。アドレス、ポート、プロトコル、認証情報を確認し、現在のSERVERも確かめてください。
- 処理方法を確認:Global Routingを確認します。Configを使う場合はConfigを開き、有効なファイル、ルールの順序、FINALを確認してください。テストのためにProxyやDirectを一時的に使った場合は、元の設定を記録し、確認後に戻します。
- 接続と自動接続を確認:接続スイッチとシステムの許可状態を確認します。接続が自動的に再開する場合はOn Demandを調べます。ネットワーク切り替え後に問題が発生する場合は、Wi-Fiとモバイル通信の環境でそれぞれ再現を試みます。
- 対象のリクエストを確認:同じ対象をもう一度開き、Data、接続記録、Diagnosticsを確認して、名前解決、サーバー接続、個別リクエストのどの段階で失敗したかを判断します。
- 設定を戻して再確認:一度に変更するのは1項目だけにし、変更前の値を記録します。改善しなければ元に戻してから次の項目を確認し、別々の問題を混同しないようにします。
初回接続がまだの場合は、はじめにの手順に沿って操作してください。購入、復元、App Storeでの表示に関する問題は入手と購入をご覧ください。設定用語の意味を確認するには用語集をご利用ください。ShadowrocketはAppleプラットフォーム向けにApp Storeのみで提供されています。システム要件はApp Storeの製品ページでご確認ください。