Shadowrocketを初めて開いたら、まずHomeで接続とサーバーを確認し、Configで設定ファイルを探します。Dataではリクエストの記録を確認し、Settingsでアプリの動作を調整します。この記事では実際の操作順に沿って各項目を解説し、Configの2つの意味、ProxyとDirectの違い、「接続済み」と「アクセス先に接続できる」ことの違いも説明します。
まずHome・Config・Data・Settingsの役割を確認
Shadowrocketを開いたら、まずHomeと表示されたメイン画面を探します。サーバー一覧、接続スイッチ、Global Routingはここで確認できます。ルールを変更するときはConfigを開きます。接続するだけなら、Settingsを一つずつ確認する必要はありません。iPhoneとiPadでは項目の配置が異なる場合があるため、画面上のアイコンの順番ではなく、英語の名称で見分けましょう。
| 画面の項目 | ここで行う操作 | 確認すること |
|---|---|---|
| Home | サーバーの選択、Global Routingの切り替え、接続の開始・停止 | サーバーの選択と接続状態が、今回の操作目的に合っている |
| Config | 設定ファイルの管理・選択・編集 | 目的のファイルが選択され、ルールの内容も正しい |
| Data | 通信量やリクエスト記録を確認し、リクエストの経路を調べる | テストした時刻、ドメイン、接続先に該当する記録が見つかる |
| Settings | On Demandやサブスクリプション関連など、アプリの設定を変更する | 変更した設定が、想定した接続や更新の動作と一致している |
これらの項目は、接続・設定・記録の確認・アプリの動作をそれぞれ扱います。必ず順番に進めるウィザードではありません。サーバーと使用可能な設定がそろっていれば、普段はHomeで状態を確認するだけで十分です。問題が起きたときに該当する画面で設定を一つ変更し、もう一度テストしましょう。
Home:登録済みのサブスクリプションを追加し、サーバーを選んで接続
ここでは、利用者が自分で用意したサービスとサブスクリプションがあることを前提に説明します。サブスクリプションはサーバー情報を取得するためのアドレスで、ルールファイルでもApp Storeの購入証明でもありません。Shadowrocketは買い切りのクローズドソースアプリです。アプリの購入と通信サービスの契約は別です。アプリを購入しても、利用可能なサーバーが自動で用意されるわけではありません。
-
追加画面を開く
Homeを開き、右上の「+」をタップして、TypeでSubscribeを選択します。ここでは、手動で特定のプロトコルのサーバーを入力するのではなく、サブスクリプションとして項目を追加します。
-
登録済みのアドレスを入力
URLに自分のサブスクリプションアドレス全体を貼り付け、先頭・末尾とクエリパラメーターを確認して保存します。サービスのアカウントページのURLをサブスクリプションアドレスとして使わないでください。認証情報を含むリンク全体を他人に見せないようにしましょう。
-
更新して選択
Homeに戻り、下に引いてサブスクリプションを更新します。サーバー項目が表示されたことを確認し、今回使う項目を選択してください。リストに名前が表示されても、項目が読み込まれたことを示すだけで、リモート接続の確認が済んだわけではありません。
-
接続して確認
HomeでGlobal Routingを確認してから、接続スイッチをオンにします。初回はシステムの案内に従ってVPN構成の追加を許可してください。その後、接続先を決めてページを開き、Dataで今回のリクエストを確認します。
手動で追加する場合、TypeではShadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardなどのプロトコルを選べます。自分が利用しているサービスのパラメーターに基づいて選択してください。エラーを解消するために、適当に別の種類へ変更してはいけません。Address、Port、認証情報はそれぞれ別の項目です。たとえばサービス情報にPortが443と記載されている場合は、ポート欄に443と入力します。WebページのURL全体を入力するものではありません。この数字は入力方法の例であり、共通のポート指定ではありません。
Global Routing:Config・Proxy・Direct・Sceneの違い
HomeでGlobal Routingを開き、現在の選択を確認してから、リクエストがその経路を通る理由を調べます。ここで制御するのは通信の処理方法であり、サーバーのプロトコル種別ではありません。Proxyに変更してもTrojanサーバーが別のプロトコルに変わるわけではなく、Directにしても設定ファイルが削除されるわけではありません。
Config
おすすめ現在の設定ファイルのルールに従って、リクエストの経路を決めます。ドメインによってDIRECTに一致する場合もあれば、PROXYに一致する場合もあります。結果はルールの内容と順序で決まり、地域に応じて自動で分類されるわけではありません。
適した用途:確認済みのルールを使い、接続先ごとにリクエストを処理したいとき。
Proxy
通信をProxyで処理し、Configのルールによる処理結果と比較します。この設定でも、使用可能なサーバーと正しいパラメーターが必要です。接続スイッチやシステムのネットワーク状態も引き続き影響します。
適した用途:特定のアクセス失敗がルールの選択に関係しているか、一時的に切り分けたいとき。
Direct
通信をDirectで処理し、接続先へのリクエストをプロキシサーバー経由で転送しません。この状態でもシステムのVPN接続が維持される場合があるため、ステータスバーのVPN表示だけでリクエストがプロキシ経由だと判断することはできません。
適した用途:現在のネットワークで直接接続した結果と比較し、問題の範囲を絞り込みたいとき。
Scene
設定済みのシーン条件に応じて、対応するルーティングを適用します。使う前にシーンの条件と動作を確認してください。シーンの設定を確認せず、名称だけから選択されるサーバーやルーティング方法を推測しないでください。
適した用途:シーンの設定が明確で、環境に応じて異なるルーティングを適用したいとき。
画面上のProxyとDirectは、ルール文中のPROXYやDIRECTと関連しますが、設定する階層が異なります。前者はGlobal Routingの選択肢、後者は個々のルールの処理先です。トラブル時はまず全体のルーティング方法を確認し、その後でルールを見直してください。そうしないと、Proxyに設定した状態で、今回の振り分けに想定どおり使われていないルールを何度も編集することになりかねません。
Config:設定ファイルとルーティング方法は別の項目
ルールを確認するには、Configを開いて現在選択中のファイルを見つけ、その中の[Rule]セクションを確認します。ファイルをリストに読み込んだだけでは、そのファイルが選択されたことにはなりません。別のファイルを編集しても、現在使用中のファイルのルールは自動で変わりません。変更前にバックアップを取り、変更後は保存を確認します。Homeに戻り、Global RoutingがConfigになっているかも確認してください。
Configに関する2つの確認項目
Config画面
- 現在選択中の設定ファイルを確認する。
- Rule、DNSなどの設定内容を確認する。
- 編集後に保存し、変更前のファイルも残しておく。
Global Routing → Config
- 現在の設定ファイルのルールに従って通信を処理する。
- Dataと併せて、実際に適用された結果を確認する。
- 設定ファイルの選択や編集の代わりにはならない。
まず「どのファイルを使うか」を決め、次に「そのファイルのルールに従って処理するか」を確認します。両方が正しく設定されて初めて、ルールを検証できます。
以下の断片は構文と順序の例であり、個別の設定ファイルとしてそのまま使えるものではありません。example.comは例示用のドメインです。使用前に、対象とプロキシの選択が適切か確認してください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT
DOMAIN-SUFFIXはドメインの末尾に基づいて照合します。この例ではexample.comとそのサブドメインが対象です。IP-CIDRはIPアドレスの範囲を照合します。例のno-resolveは、このIPルールを照合するためだけにドメイン名の解決が行われるのを防ぎます。GEOIPは接続先IPアドレスの地域情報に基づいて照合します。Webページの言語やドメインの末尾から地域を推測するものではありません。FINALは末尾に置き、それ以前のルールに一致しなかったリクエストを処理します。例ではDIRECTを指定していますが、すべての設定でこのフォールバック先を使うべきという意味ではありません。REJECTは一致したリクエストを拒否します。ネットワークのタイムアウトとは原因が異なるため、サーバーを変えるだけでは切り分けられません。
ルールは通常、上から順に確認され、最初に一致したルールが処理結果を決めます。そのため、より広いルールに覆われる可能性がある場合は、具体的な例外を先に置きます。各項目を詳しく確認するには設定項目の解説をご覧ください。複数の情報源から得た設定断片を、確認せずに重ねただけで完成と判断しないでください。
Data:リクエスト記録で結果を確認する。通信量は請求額ではない
接続した状態で、ブラウザーからテスト対象を1つだけ開き、おおよその時刻を記録してからDataで該当するリクエストを探します。ドメインまたは接続先アドレス、記録時刻、表示されるルールや処理経路を優先して確認してください。他のアプリのバックグラウンド通信が一覧に含まれている場合もあるため、最新の行だけで今回のWebアクセスだと判断しないでください。
- テスト前に対象と現在のGlobal Routingを確認し、一度に変更する条件を増やさないようにします。
- 新しいアクセスを1回行います。既存の長時間接続やキャッシュ済みページでは、新しく識別しやすい記録が残らない場合があります。
- Dataで今回の接続先を探します。ルール情報が表示される場合は、Configの該当するルールと一字ずつ照合します。
- 設定を1つだけ変更して再度アクセスし、リクエストの経路と成功・失敗の状況を比較します。
たとえばGlobal RoutingがConfigで、対象リクエストがDIRECTで処理されている場合は、該当したDirectルールとFINALを先に確認します。サーバーの故障と決めつける必要はありません。PROXYで処理されても失敗する場合は、現在のサーバー、プロトコルのパラメーター、ネットワークへの到達性を確認します。対象リクエストが記録にない場合は、新しいリクエストを実際に発生させたか、記録機能の設定や保存範囲に問題がないかを確認してください。
Settings:アプリの動作とOn Demandの確認
条件に応じて接続を開始するには、Settings → On Demandを開き、スイッチと起動条件を確認します。On Demandはシステムが条件に応じて接続を開始するタイミングに関わります。Global Routingは、接続後にリクエストをどう処理するかを決めます。両方を同時に使えますが、互いの代わりにはなりません。
On Demandを変更したら、実際に使うネットワーク環境で動作を確認します。該当するネットワークに切り替え、条件に応じて接続が確立するかを見てから、対象へアクセスしてルーティング結果を確認してください。手動で接続をオフにした後に再び接続される場合は、システムのVPN設定を何度も削除するのではなく、まずOn Demandとその条件を確認します。
サブスクリプションを読み込んだのに、Configにルールが表示されないのはなぜ?
Homeに戻り、サブスクリプション内にサーバー項目があるか確認します。サーバーのサブスクリプションと設定ファイルは別々に管理されます。ルールに基づいて処理するには、Configで適切なファイルを選んだうえで、Home → Global RoutingからConfigを選択してください。
接続スイッチはオンなのに、ページが開かないのはなぜ?
まずHome → Global Routingが想定した設定か確認し、次にDataで今回のアクセスを探します。接続済みとはシステムのトンネルが確立していることを示すだけで、すべての接続先に到達できるとは限りません。記録にある処理経路に基づいて、ルールまたはサーバーのパラメーターを確認してください。
接続を切っても再接続される。スイッチが壊れている?
Settings → On Demandを開き、有効な条件が設定されているか確認します。一時的に自動接続を止めるには、該当する条件を変更するかOn Demandをオフにしてから接続を停止し、実際のネットワークで状態を確認してください。
サブスクリプションの更新に失敗したら、Configを変更すべき?
まずHomeで更新対象のサブスクリプションを確認し、アドレスが完全か、認証情報が有効か、現在のネットワークから接続できるかを確認します。既存のプロキシ経由でそのアドレスにアクセスする必要がある場合は、Settings → SubscribeのUpdate via Proxyも確認してください。この設定で期限切れの認証情報や誤ったURLが直るわけではありません。
画面の役割は「Homeで接続、Configでルール、Dataで結果、Settingsで動作」を目安に確認できます。毎回、現在の問題に直接関係する項目だけを1つ変更し、変更前後の状況を記録しましょう。サーバー、ルール、On Demandを一度に切り替えるより、原因を特定しやすくなります。