この記事は、Shadowrocketを使い始めたばかりで、クライアントは開けるものの各項目の役割が分からない方に適しています。4つの下部タブ、Global Routingの4つの動作、代表的なルール用語、Add Server、Subscribe、On Demandなどの操作項目を整理できます。
まず4つの下部タブを理解する
Shadowrocketの下部ナビゲーションは、通常Home、Config、Data、Settingsで構成されています。これは4種類の接続モードではなく、4つの管理領域です。Homeはサーバー選択と接続制御、Configは設定ファイルとルール、Dataは通信記録、Settingsはクライアントの動作を管理します。設定の場所に迷ったら、それが「接続対象」「振り分けルール」「統計データ」「アプリの動作」のどれに属するかを確認してください。
Homeは日常的に最もよく使う画面です。接続スイッチ、現在のサーバー、Global Routing、サーバー一覧、遅延テストの結果を確認できます。接続スイッチは現在の通信制御を開始または停止するだけです。実際にどのサーバーを使うか、ルールで振り分けるかどうかは、選択中の項目とGlobal Routingによって決まります。
Home:接続画面と現在の状態
サーバー一覧の各行は、インポート済みまたは手動追加した1つの接続対象を表します。行をタップすると、その項目が現在の使用対象になります。遅延値はテストリクエストの応答時間を示すだけで、Webページの読み込み速度や通信帯域を意味しません。遅延が空欄、タイムアウト、または高い場合は、テスト方法、サーバーの利用可否、現在のローカルネットワークをそれぞれ確認してください。
Home右上の「+」はAdd Serverに使います。利用中のサービス提供元から接続情報を受け取っている場合は、その情報に合わせてShadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardなどのTypeを選び、Address、Port、Password、UUID、Public Keyなど該当する項目を入力します。プロトコルごとに必要な項目は異なるため、あるTypeのパラメータを別のTypeへそのまま入力しないでください。
Config:サーバー一覧ではなくルールファイルを管理
Config画面には、通信の振り分けに使う設定ファイルを保存します。設定ファイルにはルール、DNSの動作、ポリシー参照などを含められます。サーバー項目は主にHomeにあります。「サーバーには接続できるが、一部のドメインの経路が想定と違う」場合は、サーバーを何度も削除するのではなく、Configで有効になっているファイルとルールの順序を確認します。
- Home:サーバー選択、遅延テスト、接続のオン・オフ、Global Routingの切り替えを行います。
- Config:振り分け設定を選択・管理し、ルールの適用順を確認します。
- Data:アップロード、ダウンロード、接続リクエスト、通信量の変化を確認します。
- Settings:DNS、On Demand、Subscribeの更新、診断項目を調整します。
Global Routing:Config、Proxy、Direct、Sceneの違い
Global Routingは、通信全体を最初にどのように処理するかを決めます。Home画面にあり、Globalは「全体のルーティング判断」を意味します。特定のサーバーを選ぶ機能ではありません。主な選択肢はConfig、Proxy、Direct、Sceneで、切り替えると新しい接続が選択した方式で処理されます。
Configでは現在の設定ファイルを読み込み、ルールを上から順に判定します。ドメインがDOMAIN-SUFFIXに一致するとProxyへ、ローカルネットワークのIPがIP-CIDRに一致するとDirectへ、広告ドメインが明示的なルールに一致するとRejectへ送ることができます。ルールは通常、上から順に照合され、最初に一致した結果が優先されます。そのため、より具体的なルールを広いルールより前に置きます。
Config
推奨現在の設定ファイルを読み込み、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALなどのルールでポリシーを決定します。
適しています:ドメインやネットワーク範囲に応じた日常的な振り分け
Proxy
処理可能な通信を現在のプロキシ経路へまとめて渡します。通常の振り分けルールに従ってDirectを選ぶことはありません。
適しています:ルールによるアクセス差を一時的に確認したい場合
Direct
現在のサーバーを経由せず、対象へ直接接続します。接続スイッチがオンでも、ルーティング結果はDirectになります。
適しています:ローカルネットワークの直接接続と比較したい場合
Scene
あらかじめ設定したSceneに従い、ネットワーク環境ごとに対応する動作を選びます。具体的な結果はSceneの内容によって異なります。
適しています:ネットワーク環境に応じてプリセットを切り替えたい場合
Proxy、Direct、Reject:ポリシー用語は最終動作を示す
Proxy、Direct、Rejectは、ルールの末尾やLog、接続記録によく表示されます。これらは「条件に一致した後どう処理するか」を示し、DOMAIN-SUFFIX、GEOIP、IP-CIDRは「どの条件で一致させるか」を示します。条件と動作は別の概念です。ルールを読むときは、カンマで区切られた位置からそれぞれを見分けます。
Proxyは、一致した接続をプロキシポリシーへ渡すことを示します。Directは対象へ直接接続し、Rejectはリクエストを拒否します。Rejectは接続障害の表示ではありません。ドメインが明示的なルールでRejectに一致した場合、アクセスできないのはそのルールが意図した結果です。アクセスを戻すには、DNSを変更して再試行するのではなく、該当ルールを特定して調整します。
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN,local.example.com,DIRECT
GEOIP,CN,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
DOMAIN,ads.example.com,REJECT
FINAL,PROXY
1行目はexample.comとそのサブドメインに一致し、Proxyへ渡します。2行目は完全一致のlocal.example.comだけを対象にします。3行目はGEOIPデータでIP範囲を判定します。4行目は192.168.0.0/16のプライベートネットワークに一致し、no-resolveでこのIPルールのための追加のドメイン解決を避けます。5行目は指定したドメインを明示的に拒否します。FINALは、それまでのどのルールにも一致しなかった接続を処理します。
| 画面用語またはキーワード | 役割 | 確認するポイント |
|---|---|---|
| DOMAIN | 完全一致のドメインを照合 | 記載されたホスト名だけを処理 |
| DOMAIN-SUFFIX | ドメインサフィックスを照合 | 同じサフィックス配下のサブドメインにも適用可能 |
| GEOIP | 対象IPの地理データベースで照合 | 解決後の対象IPとデータ内容に依存 |
| IP-CIDR | IPネットワーク範囲で照合 | 例:192.168.0.0/16。スラッシュ後の数字はプレフィックス長を示します |
| FINAL | 前のルールに一致しなかった接続を処理 | 通常はルールの末尾に置く |
Add ServerとSubscribe:2つのインポート入口
Add Serverは接続情報を追加するために使い、Subscribeはすでに保有している購読URLを保存するために使います。どちらもHome右上の「+」から開始できますが、結果は異なります。手動追加では通常1つのサーバー項目が作成され、Subscribeを更新すると、そのURLから返された複数の項目を登録できます。Shadowrocketに接続サービスは付属しておらず、クライアントを買い切りで購入してもサーバーや購読が提供されるわけではありません。
Subscribeを追加するときは、URLを利用中のサービス提供元から受け取ってください。入力形式の例としてhttps://example.com/sub?token=xxxxと書けますが、これは形式の例であり、利用可能な内容は返しません。実際のURLは接続資格情報にあたるため、スクリーンショット、公開ログ、共有テキストに載せないでください。
追加画面を開く
Homeに移動し、右上の「+」をタップしてAdd Server画面を開きます。
Typeを選ぶ
単一の接続は、手元の情報に対応するプロトコルを選びます。購読URLの場合はTypeでSubscribeを選択します。
必要項目を入力
SubscribeではURLとメモを入力します。手動接続ではAddress、Port、プロトコルで指定された認証項目を入力します。たとえばサーバーのポートは、情報に記載された443などを入力します。
保存して更新
保存後、Homeに戻ります。購読項目はプルダウン更新、または対応するUpdate操作で最新内容を取得できます。
選択してテスト
項目をタップして遅延テストを実行し、その後接続をオンにします。遅延結果が表示されても、すべてのドメインルールが正しく動作しているとは限りません。
DataとLog:統計と診断は別の役割
Dataでは主に、利用中の通信量の変化を確認します。アップロードとダウンロードの数値は、接続でデータが発生しているかを判断する手がかりになりますが、特定のルールがProxyかDirectかを単独で証明するものではありません。カウンターが増えているのは通信が発生していることを示すだけです。具体的なドメイン、対象アドレス、ポリシー結果を確認するには、LogまたはConnectivity Testも参照します。
Logは接続単位の確認に使うツールです。記録には、ドメイン、対象IP、ポート、一致したルール、最終ポリシーなどが表示されます。HTTPSサイトへのアクセスでは対象ポートが443になることが一般的です。記録でドメインがDOMAIN-SUFFIXに一致し、DIRECTになっている場合は、Homeのサーバー遅延だけで判断せず、Configに戻って該当ルールを確認します。
現象から確認場所を絞り込む
- Dataに変化がない:接続スイッチ、現在のネットワーク、アプリが実際にリクエストを発行しているかを確認します。
- Dataには通信があるのに対象を開けない:Logでドメイン、ポート、ポリシー、エラーが発生した段階を確認します。
- 一部のドメインだけ異常:ConfigのDOMAIN、DOMAIN-SUFFIX、FINALの順序を確認します。
- ローカルネットワークの機器にアクセスできない:対応するIP-CIDRルールがあるか、最終動作がDirectかを確認します。
- Directに切り替えると復旧する:サーバー情報、現在のポリシー、DNSの解決経路を重点的に確認します。
Settings:On Demand、DNS、購読の動作
Settingsではクライアント全体の動作を管理します。主な項目にはOn Demand、DNS、Subscribe関連の設定、Connectivity Test、ログ設定があります。ここでのスイッチはすべての接続に影響する可能性があるため、変更前に元の状態を記録し、一度に1項目だけ変更して、同じWebサイトと同じローカルネットワークで再テストしてください。
On Demandは条件に応じて接続を開始する機能です。正確な場所はSettings → On Demandです。有効にした後も、ルール条件と現在のネットワーク環境を確認してください。全体スイッチをオンにするだけで、ネットワークが変わるたびに想定どおり接続されるわけではありません。自動接続を確認するときは、「トリガーされない」「トリガー後に接続に失敗する」「接続済みだがルールがDirectになる」の3つを区別します。
設定を開く
下部のSettingsを開き、On Demandに進みます。
全体スイッチを確認
On Demandが有効か、実行する条件が存在するかを確認します。
ネットワークを切り替えて再テスト
利用可能と分かっているWi-Fiとモバイルネットワークを切り替え、条件に応じて接続状態が変化するか確認します。
ルーティングを確認
Homeに戻ってGlobal Routingを確認します。Directの場合、接続がトリガーされてもアクセス結果は直接接続になる可能性があります。
記録を確認
Logで、条件がトリガーされなかったのか、サーバー接続エラーなのか、DNS解決に失敗したのか、ルールの一致に問題があるのかを切り分けます。
DNSはドメインをIPアドレスに解決します。「サーバーの遅延値は表示されるが、ドメインを入力しても開けず、既知のIPへ直接アクセスすると結果が異なる」場合は、確認箇所の1つとしてDNSを調べます。サーバー、Global Routing、DNS、設定ファイルを同時に変更すると、どの変更が効果を生んだのか判断できません。
Homeのスイッチをオンにしているのに、なぜDirectになる?
Home → Global Routingを確認します。現在がDirectの場合、接続スイッチをオンにしても通信はDirectで処理されます。ルールで振り分ける場合はConfigに戻し、正しい設定ファイルが選択されていることを確認します。
ProxyとConfigはどちらを選ぶ?
ドメインやネットワーク範囲ごとに日常的な振り分けが必要ならConfigを使います。Proxyは、異常が特定のDirectルールによるものかを確認するなど、短時間の比較テストに適しています。
遅延は正常なのにWebページを開けない場合は?
まずLogに対象ドメインの記録があるか確認し、次に一致したポリシー、対象ポート、DNSの結果を確認します。遅延テストが正常でも、テストリクエストが応答を受け取ったことしか分かりません。
購読を保存したのにサーバーが表示されないのはなぜ?
Homeに戻り、プルダウン更新または対応するUpdate操作を実行し、URLが完全か確認します。タイムアウトが表示された場合は、現在のネットワーク、接続状態、SettingsのSubscribe更新動作を確認します。
Rejectはサーバーエラー?
いいえ。Rejectはルールで明示された拒否動作です。Configで一致したDOMAINまたはDOMAIN-SUFFIXルールを特定し、その結果が設定の目的に合っているか確認します。
画面用語を一連の操作として理解する
一連の操作は次のように考えられます。HomeでAdd ServerまたはSubscribeから手元の接続情報を追加し、サーバーを選択します。Configで振り分けに使う設定ファイルを選び、Homeに戻ってGlobal RoutingをConfigに設定します。接続をオンにしたら、Dataで通信量を確認し、LogでDOMAIN-SUFFIX、IP-CIDR、FINALがProxy、Direct、Rejectのどれに一致したかを確認します。自動トリガーが必要な場合は、Settings → On Demandで条件を設定します。
この流れはトラブルシューティングにも使えます。Homeは「接続しているか、何を選んでいるか」、Configは「どのルールで処理するか」、Dataは「通信が発生しているか」、Logは「具体的なリクエストで何が起きたか」、Settingsは「クライアント全体の動作をどう設定するか」を示します。層ごとに確認すれば、ルールの問題をサーバーの問題と誤認したり、Directの想定結果を接続失敗と誤認したりするのを防げます。
- 接続対象に問題がある:Homeで現在選択中の項目とプロトコルの項目を確認します。
- 振り分け方向に問題がある:Global RoutingとConfigのルール順を確認します。
- 自動接続に問題がある:Settings → On Demandのスイッチと条件を確認します。
- 購読内容が変わらない:Updateを実行し、SubscribeのURLと更新時のネットワークを確認します。
- 特定のリクエストに失敗する:Logのドメイン、IP、ポート、ポリシー、エラー情報を順に確認します。
ShadowrocketはAppleプラットフォーム向けのクローズドソースの商用アプリです。主な利用端末はiPhoneとiPadで、Mac、Apple TV、Apple Visionへの対応状況は同じApp Store製品ページで確認できます。システム要件はApp Storeページの記載に従ってください。入手先はApp Storeのみです。確認時は開発者名Shadow Launch Technology LimitedとアプリID 932747118を確認できます。