Shadowrocketの英語表示は、「入口」「ルーティング方法」「結果」の3つに分けて考えると分かりやすくなります。Homeでは接続先の選択と状態確認、Configでは設定ファイルの管理、Settingsではアプリの動作設定を行います。ProxyとDirectはルーティングの選択肢で、プロトコル名ではありません。Dataでは通信量を確認できます。利用するサービスやサブスクリプションをすでに持っており、操作ガイドを見ながら画面上の項目を確認したい方に向けて、同じConfigが場所によって異なる意味を持つ理由も解説します。
まず場所を確認:Home・Config・Data・Settings
表示されている場所を確認してから、項目の意味を判断しましょう。ナビゲーションのConfigは設定ファイルの管理画面を指します。一方、Home → Global RoutingにあるConfigは、設定に従ってリクエストを処理するルーティング方法です。同じ表記でも、前者は「どのファイルを使うか」、後者は「リクエストをどう処理するか」を示します。
| 画面表示 | 機能と表示場所 | 確認するポイント |
|---|---|---|
| Home | メイン画面。接続スイッチ、サーバー一覧、Global Routingなどの項目がまとまっています | 選択中の項目、接続状態、ルーティング方法 |
| Config | 設定ファイルの管理画面。Global Routingの選択肢にも表示されることがあります | 設定ファイルの画面とルーティングの選択肢を区別する |
| Proxy | Global Routingのルーティング選択肢。ルール内ではポリシー名として使われることもあります | 選択したプロキシまたは該当ポリシーを使うかどうか |
| Direct | Global Routingのルーティング選択肢。ルール例ではDIRECTと表記されます | 接続先へ直接アクセスするかどうか |
| Data | 通信量データを確認する項目または画面 | 集計対象、期間、単位、カウントの変化 |
| Settings | アプリの設定画面。On Demandなどの動作設定があります | 変更するのはアプリの動作であり、サーバーのプロトコル設定ではありません |
画面上の項目の並びや表示内容は、デバイスのレイアウトやアプリの画面変更によって異なる場合があります。操作ガイドの画像と同じ位置にあるとは限りません。英語の表示と現在開いている画面を手掛かりに確認してください。iPadでサイドバーが表示される場合も、左右の列を別のルーティング機能と考えず、同じ機能関係に沿って項目を探します。
Home:接続・サーバー・サブスクリプションの違い
Homeで選択したサーバーは、接続に使うパラメーターを決めます。接続スイッチは、アプリが必要とするシステムネットワーク接続を開始するかどうかを切り替えます。Global Routingはリクエストのルーティング方法を決めます。項目を選択しただけでは接続されません。また、接続状態が正常でも、すべての接続先にアクセスできるとは限りません。アドレス、ポート、認証パラメーター、ルール、接続先サービスの稼働状況などが結果に影響します。
サブスクリプションは、サーバー項目をまとめて取得・更新するための情報源であり、通信プロトコルではありません。以下の操作は、利用者がすでに持っているサービス提供元のリンクを使う場合に限ります。リンク内のトークンにはアクセス情報が含まれることがあるため、完全なリンクを公開の場に投稿しないでください。トラブル対処のために、出所の分からないアドレスへ置き換えることも避けましょう。
-
Homeを確認する
Homeを開き、選択中のサーバーとGlobal Routingの表示を記録します。変更前に現在の状態を把握し、複数の条件を同時に変更しないようにします。
-
サブスクリプションを追加する
Home → 右上の「+」→ Type → Subscribeの順に進み、自分のサブスクリプションリンクを入力して保存します。サブスクリプションリンクと個別サーバーのアドレスは、それぞれ該当する入力欄に入力してください。
-
項目を確認する
Homeに戻り、サブスクリプション項目とサーバー一覧が表示されていることを確認します。更新する場合は該当するサブスクリプションの更新操作を使い、一覧名が残っているかだけでなく、更新結果にエラーがないかも確認してください。
-
ルーティングを確認する
Home → Global Routingを開き、Config、Proxy、Direct、Sceneのどれが選択されているか確認します。設定ファイルのルールを使って検証する場合は、先にConfig画面で目的のファイルが選択されていることを確認してください。
-
リクエストをテストする
Homeに戻って使用するサーバーを選択し、接続をオンにします。初回接続時はシステムの案内に従って許可してください。アクセス先を明確にしたリクエストで結果を確認し、設定は一度に1つだけ変更します。
Global Routing:Proxy、Direct、Config、Scene
Global Routingはルーティング方法を選ぶ項目であり、プロトコルの選択画面ではありません。ここではShadowrocketでよく使われる3つのルーティング方法を比較します。「おすすめ」は、利用可能な設定をすでに持っており、ルールの動作を確認したいという、この記事の学習用途に限ったものです。どのネットワークでも同じ設定が適しているという意味ではありません。
Config
おすすめ現在有効な設定とルールに従ってリクエストを処理します。接続先ごとに異なるポリシーを適用できます。先行するルールに一致しなかったリクエストも、設定内の後続ルールに従って処理されるため、「それ以外はすべて直接接続」とは限りません。
適した用途:設定があり、ルールによる振り分けを確認したい場合。
Proxy
Shadowrocketの処理対象となるリクエストにプロキシ経由のルーティングを適用します。一時的にプロキシ経由とルール経由の結果を比較できますが、デバイス上のすべてのシステム通信が同じサーバーを経由すると判断することはできません。
適した用途:アクセス結果の違いがルールの選択に関係しているか、一時的に確認したい場合。
Direct
対象のリクエストを直接接続し、選択中のプロキシサーバーを経由しません。これはルーティング方法の一つであり、接続スイッチをオフにすることやサーバー項目を削除することとは異なります。
適した用途:現在のネットワークから直接アクセスした場合の結果を比較したいとき。
Sceneは、シーンに応じたルーティングを設定する項目です。動作を理解するには、登録済みのシーン、その条件、アクションを確認してください。名前だけで、リクエストが最終的にProxyとDirectのどちらを通るかは判断できません。既存の設定を引き継ぐ場合は、使う前にシーンの内容を確認します。再現性のあるルール検証を行うときは、ルーティングの選択を記録し、シーンの変更をサーバーの不安定さと取り違えないようにしましょう。
- ConfigからProxyに切り替えてアクセスできた場合、2つのルーティング経路で結果が異なったことを示します。どのルールに一致し、実際にどのポリシーが適用されたかを引き続き確認してください。
- Directに切り替えても結果が変わらない場合でも、設定に問題がないとは言い切れません。同じ接続先に対し、同じ種類のリクエストをテストしているか確認してください。
- 比較が終わったら元の設定に戻してください。特に、一時的な確認のために選んだProxyをそのまま使い続けながら、Configのルールに基づく結果を想定しないよう注意します。
Config:設定ファイルとルールキーワードの関係
Config画面でファイルを選択すると、アプリが使用する設定が決まります。Global RoutingでConfigを選択すると、その設定に従ってリクエストを処理します。設定ファイルにはルールなどを含めることができ、サーバー項目にはリモート接続に必要なパラメーターが含まれます。両者は関連しますが、同じデータではありません。サブスクリプションを更新すれば、すべてのルールも更新されるとは限りません。
以下は読み方を説明するためのルール例で、完全な設定ではありません。例示するドメインとアドレスは構文の説明用で、利用可能なサービスを示すものではありません。ルールは上から順に照合されるため、最後に評価するFINALは、優先して判定するルールの後に置きます。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX:ドメインのサフィックスで照合します。ここではexample.comとそのサブドメインが対象です。Webページ内のキーワードを検索するものではありません。IP-CIDR:IPアドレスの範囲で照合します。例にある192.0.2.0/24はドキュメント用の例示ネットワークです。no-resolveは、このルールの照合のために追加のドメイン解決を行わないことを示します。GEOIP:宛先IPアドレスの地域データベース上の情報に基づいて照合します。Webページの言語やアカウントの地域を判定するものではありません。データベース上の判定結果と、サイトが実際にサービスを提供する地域は別の概念です。FINAL:それ以前のルールに一致しなかったリクエストを処理します。ここではPROXYを指定しているため、一致しなかったリクエストが自動的にDIRECTになるわけではありません。
画面上のDirectとルール内のDIRECTは、使われる場面が異なります。操作ガイドを読むときは表示を原文のまま確認し、ルールを編集するときもキーワードとカンマの構成を維持してください。ルール内のポリシー名を日本語の説明に置き換えないでください。カスタムポリシーグループを使う場合は、名前と実際の定義が一致しているかも確認します。
DataとSettings:通信結果の確認と動作設定を分ける
Dataでは通信量を確認しますが、プロトコルは選択しません。アップロードまたはダウンロードのカウントが増えていれば、該当する集計対象の通信量が変化したことは分かります。しかし、それだけでは特定のWebリクエストにどのルールが適用されたかは判断できず、アプリの通信量をサービス提供元のプランの請求量と同一視することもできません。判断する前に、画面に表示される集計範囲と単位を確認してください。
操作の進め方:まず観察し、その後に変更する
Data:結果を確認する
- 表示されている集計対象と範囲を確認します。
- テスト前後の数値を記録し、累計値を今回のリクエストの通信量と混同しないようにします。
- 接続状態やリクエスト記録と合わせて判断します。カウントが増えたことだけでは、アクセス成功の証明になりません。
Settings:動作を変更する
- Settings → On Demandを開き、オンデマンド接続と関連条件が有効になっているか確認します。
- 変更前に現在の設定を記録し、一度に1項目だけ変更します。
- Homeに戻って接続状態とGlobal Routingを確認します。設定画面だけで結果確認を済ませないでください。
Dataでは通信量を確認し、Settingsではアプリの動作を変更します。どちらも、現在のサーバーとConfigの確認に代わるものではありません。
On DemandとGlobal Routingの役割は異なります。前者は条件に応じて接続を開始する機能、後者は接続後のリクエストに適用するルーティング方法です。On Demandを有効にしても、適切なルールが自動で有効になるわけではなく、電池の消費が抑えられる保証もありません。電池消費を判断する場合は、スイッチ名だけで結論を出さず、システムのバッテリー使用状況、利用時間帯、接続状況を確認してください。
TypeとSubscribe:プロトコルのパラメーターを正しい欄に入力する
項目を追加するとき、Typeで項目の種類を指定します。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは、それぞれ異なるプロトコルまたはトンネル方式の名称です。Subscribeはサブスクリプションの情報源を指定します。画面上の表示を揃えるために、あるプロトコルのパラメーターを別の種類の欄に入力したり、サブスクリプションリンク全体をサーバーアドレス欄に入力したりしないでください。
| 入力する場所 | 確認する内容 | よくある誤解 |
|---|---|---|
| Type → Subscribe | 自分のサブスクリプションリンク全体と、サービス提供元の利用案内 | サブスクリプションを特定の暗号化プロトコルだと考える |
| 各プロトコルの項目 | アドレス、ポート、およびそのプロトコルに対応する認証・転送・セキュリティのパラメーター | どのプロトコルもアドレスとパスワードだけで設定できると思う |
| ポート欄 | サービス提供元が指定した正確な数値。たとえば443と指定されている場合は、入力値が443になっているか確認します | 接続できないと、よく使われるポート番号に適当に変更する |
| Home → Global Routing | Proxy、Direct、Config、Sceneなどのルーティング方法を選ぶ | ここにVMessやTrojanのパラメーター入力欄があると思う |
443はポート番号の例にすぎず、特定のプロトコルで必ず使う番号ではありません。また、443を入力すれば適切なセキュリティ設定が自動的に有効になるわけでもありません。サブスクリプションから作成された項目は、更新後の元情報を優先して確認してください。手動で変更した場合は、次回のサブスクリプション更新で変更が上書きされる可能性にも注意します。
よくある操作の疑問:英語表示を手掛かりに確認
Configが2か所に表示されるのはなぜですか?
まずConfig画面を開き、現在使われている設定ファイルを確認します。次にHome → Global Routingに戻り、Configが選択されているか確認してください。前者はファイルを管理する画面、後者は設定に従ってリクエストを処理するための選択肢です。ファイルが存在するだけでは、現在のルーティングに使われているとは限りません。
Proxyを選択すれば、サーバーを選ぶ必要はありませんか?
Homeで選択中のサーバーと接続状態を確認する必要があります。Proxyはプロキシ経由のルーティングを示すだけで、アドレス、ポート、認証パラメーターを自動で補うものではありません。先にサーバーを確認し、その後にルーティングを比較してください。
Dataの数値が増えているのに、Webページが開かないのはなぜですか?
通信量の変化は、別のリクエストや接続失敗後の再試行による可能性があります。テスト前の数値を記録し、対象を1つだけ開いてください。そのうえで、リクエスト記録、サーバーの状態、現在のGlobal Routingを確認します。累計通信量だけでWebページへのアクセス成功を判断しないでください。
接続を切ったのに、また接続される場合はどこを確認しますか?
Settings → On Demandを開き、接続を再度開始する設定がないか確認してください。変更前の状態を記録してから調整・再テストし、システム側の関連する接続設定も確認します。接続が再開する問題に対処するために、サブスクリプションを何度も削除しないでください。
サブスクリプションを更新すると、ルールも一緒に更新されますか?
2種類の更新を同じ操作と考えないでください。まずHomeでサブスクリプション項目を確認し、次にConfigで現在のファイルと内容を確認します。設定も更新されるかどうかは、その設定の取得元と更新操作によって異なります。サーバー一覧に変化があっただけでは判断できません。
次に操作ガイドを見ながら確認するときは、現在の画面、選択中のサーバー、Global Routingの値、現在のConfigファイルの4点を順に記録すると、「ボタンが見つからない」と「設定結果が想定と違う」を分けて対処できます。画面表示の詳しい説明は用語集をご覧ください。初めて操作する場合は、はじめにを順に確認してください。
App Storeで正規アプリを確認して、使い始める
ShadowrocketはAppleプラットフォーム向けの有料アプリで、入手先はApp Storeのみです。購入前に、デベロッパ名がShadow Launch Technology Limitedであることと、アプリIDが932747118であることを確認してください。システム要件はApp Storeの掲載内容をご確認ください。アプリの買い切り価格と接続サービスのプラン料金は別のものです。接続機能に必要な情報は、利用者がすでに契約しているサービス提供元から入手してください。