ShadowrocketはiPhone、iPad、Mac(AppleシリコンとIntel)、Windows、Android、Linuxに対応しています。以下では主にiPhone / iPadの画面を例に説明します。他のプラットフォームではメニューの場所やシステム権限が異なる場合があるため、実際の画面で同じ名称の機能を探してください。
Global Routing:Config、Proxy、Direct
Config、Proxy、Directは通信全体の処理方法を決めるもので、異なるサーバーを指す設定ではありません。
概要:Global Routingは、通信全体の処理方法を選ぶ機能です。Configでは選択中の設定ファイルにあるルールに従って処理します。Proxyでは、アプリが処理するリクエストにプロキシポリシーを適用します。Directは直接接続との比較に使います。ドメインやIPアドレスごとに振り分ける場合はConfigを使います。Proxyを「ルールがより細かいモード」と考えないでください。
場所と設定方法:HomeでGlobal Routingを開き、モードを選びます。Configを使う場合は、Configで選択中の設定ファイルを確認してください。Proxyを使う場合は、Homeで選択中のサーバーに接続できることを確認します。変更は一度に1つのモードだけにし、同じ接続先にアクセスして比較すると、変更の影響を把握しやすくなります。
| 画面上の項目 | 処理方法 | 使用例 | 優先して確認する項目 |
|---|---|---|---|
| Config(設定) | 選択中の設定ファイルにあるルールとポリシーに従ってリクエストを処理します。 | 通常の振り分けや、特定のドメインまたはIPアドレスの処理結果の確認。 | 選択中の設定、ルールの順序、最終的に適用されるポリシー。 |
| Proxy(プロキシ) | アプリが処理するリクエストにプロキシポリシーを適用します。 | ルールの違いを一時的に切り分け、サーバーに基本的な接続ができるか確認する場合。 | 選択中のサーバー、認証情報、接続先に到達できるか。 |
| Direct(直接接続) | アプリが処理するリクエストを接続先へ直接送信します。 | ローカルネットワークでの接続と比較し、プロキシ経路が原因かどうかを調べる場合。 | ローカルネットワーク、DNS、接続先サービスの状態。 |
注意点:これらのモードはシステムのVPN権限に代わるものではなく、すべてのシステム通信がアプリで処理されるとは限りません。Proxyでは接続できるのにConfigでは失敗する場合、まずルールとポリシーを確認します。Directでも失敗する場合は、ローカルネットワークまたは接続先サービスを確認してください。切り分け後は通常のモードに戻し、一時的な設定が通信先に影響し続けないようにします。
各モードを詳しく比較するには、Global Routingの3つのモードの解説をご覧ください。
Ruleによる振り分け:条件と適用ポリシー
ルールは「何に一致するか」、ポリシーは「一致した後にどう処理するか」を決めます。
概要:振り分けルールは、リクエストのドメイン、IPアドレスなどの情報を設定内の条件と順番に照合します。一致した場合、その行に指定されたポリシーが適用されます。DIRECTは直接接続、PROXYはプロキシポリシー、REJECTは拒否を意味します。カスタムポリシーグループを使っている場合は、グループで選択中のサーバーまたはポリシーも確認してください。
場所と設定方法:Configで選択中の設定を開き、ルールの内容と順序を確認します。一般的には、対象範囲が狭く用途が明確なルールを前に置き、範囲の広いルールやFINALを後に配置します。変更前に設定のコピーを保存し、少数のルールを追加して動作を確認してから拡張してください。一度に多く変更すると原因を特定しにくくなります。
| キーワード | 一致する対象 | 使用上の注意 |
|---|---|---|
DOMAIN | 完全一致するドメイン。 | 特定のホスト名を指定する場合に適しています。 |
DOMAIN-SUFFIX | ドメインのサフィックスとそのサブドメイン。 | 意図しないサブドメインまで対象にならないか確認してください。 |
DOMAIN-KEYWORD | ドメインに含まれるキーワード。 | 一致範囲が広いため、想定外の一致がないか事前に確認してください。 |
IP-CIDR / IP-CIDR6 | IPv4 / IPv6のアドレス範囲。 | 実際の接続先IPアドレスに依存します。ドメインの名前解決結果は変わることがあります。 |
GEOIP | IP地理情報データベースによる分類。 | データベース上の分類は、サービスの実際の運営地域を示すものではありません。 |
USER-AGENT | 取得可能なUser-Agent情報。 | 通信内容の可視性に制約があるため、一般的なアプリ識別方法としては適しません。 |
FINAL | それ以前のルールに一致しなかったリクエスト。 | 最後のフォールバックとして使い、具体的なルールより前には置かないでください。 |
最小限のルール例
以下はルール行の書式を示す例であり、既存の設定全体と置き換えられるファイルではありません。example.comは例示用ドメインです。実際に適用するポリシーは、ご自身の設定に合わせてください。
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
注意点:ルールは通常、上から順に処理されます。前方に範囲の広いルールがあると、後方の詳細なルールに一致しない場合があります。ドメインルールとIPルールでは参照する情報も異なります。ドメインルールだけを設定しても、アプリがIPアドレスへ直接接続する場合に同じ結果になるとは限りません。振り分け結果が想定と異なる場合は、Global RoutingがConfigになっていることを確認し、接続ログで接続先、適用ルール、最終ポリシーを調べてください。ページを開けるかどうかだけで判断しないようにします。
複数のプロトコル:サーバー情報に合わせて設定
プロトコルはクライアントとサーバーの通信方法を決めます。接続先にどのルールを適用するかを決めるものではありません。
概要:Shadowrocketでは、複数のプロトコルのサーバーを管理できます。プロトコルの種類に加え、認証方式、トランスポート方式、TLSなどの設定が接続条件を構成します。アドレスとポートが同じでも、同じ接続方式とは限りません。選択できる項目は、利用中のプラットフォームとアプリの画面で確認してください。
場所と設定方法:HomeからAdd Serverを開き、Typeを選択して、手元にあるサーバー情報を入力します。共有リンクやQRコードがある場合は、対応するインポート方法を利用できます。サーバーアドレス、ポート、パスワードまたはUUID、トランスポート関連の情報は、利用中のサービス提供元から入手してください。他の項目の見た目から推測して入力しないでください。
たとえば、VLESSとVMessでは認証情報を相互に置き換えられません。TrojanのパスワードやTLS関連の項目はサーバー側と一致させる必要があります。WireGuardの鍵、アドレス、許可するネットワーク範囲にはそれぞれ異なる役割があります。インポート後もTypeと重要な項目を確認し、コピー時に余分な空白が入っていないか、必要な項目が抜けていないか、サービス提供元の変更によって情報が古くなっていないかを確認してください。
注意点:接続エラーを回避するために、証明書の検証を安易に無効にしないでください。まず端末の日時、サーバー名、TLSの設定を確認し、次にサーバー側が正常に動作しているか確認します。プロトコル名だけで速度を比較することはできません。遅延、通信速度、安定性はローカルネットワーク、サーバーの負荷、接続先サービスにも左右されます。
Subscribeとサーバーの管理
サブスクリプションはサーバー一覧を管理し、Configは通信の処理方法を設定します。
概要:Subscribeでは、サブスクリプションURLからサーバー情報を取り込み、クライアントに反映します。個別のサーバー項目は、すでにある少数の接続先を手動で管理する場合に適しています。サブスクリプション、サーバー共有リンク、設定ファイルはそれぞれ別の形式です。どれもリンクとして表示されるからといって、同じ入力欄に貼り付けないでください。
場所と設定方法:HomeからAdd Serverを開き、Subscribeを選択します。サービス提供元から入手したサブスクリプションリンクをURLに入力し、識別しやすいメモを追加します。保存後に更新し、サーバー項目が表示されたことを確認してから、そのうち1つを選んで接続をテストします。QRコードを使う場合は、Scan QR Codeの操作手順を参考に内容を確認してください。保存後は同様に各項目をチェックします。
インポート後に確認する3項目
- 内容の種類を確認。更新後に想定したサーバー一覧が表示されることを確認します。リンク先がログイン画面やエラーページになる場合は、サブスクリプションを何度も追加せず、まずリンクの有効性を確認してください。
- 更新結果を確認。サブスクリプションの更新に成功しても、すべてのサーバーに接続できるとは限りません。実際に選択した項目で接続をテストしてください。
- 今後の管理方法を確認。サブスクリプション内の項目は、次回の更新時に再作成される場合があります。手動で変更する前に、独立した項目として保存する必要があるか確認してください。
注意点:サブスクリプションリンクにはアカウントのリソースにアクセスするための認証情報が含まれる場合があります。公開画像、チャット履歴、診断資料に載せないでください。漏えいが疑われる場合は、サービス提供元から新しいリンクを入手してクライアントを更新します。重複したサブスクリプションを削除する前に、現在選択しているサーバーがどのグループに属しているか確認してください。削除によって現在の選択を失うおそれがあります。
On Demand:条件に応じて接続を開始
On Demandは接続を開始する条件を設定する機能です。Global RoutingやRuleの代わりにはなりません。
概要:On Demandは、システムが提供するオンデマンド接続機能を利用し、設定条件を満たしたときに接続を開始します。振り分けとは役割が異なります。On Demandは接続を開始するタイミングを決め、Global Routingと設定内のルールは、接続後のリクエスト処理を決めます。
場所と設定方法:SettingsでOn Demandを探し、実際の画面にあるネットワーク条件を設定します。まず手動接続で正常にアクセスできることを確認してから、オンデマンド条件を有効にしてください。Wi-Fi、モバイル通信、指定ネットワークなどの条件が表示される場合は、項目ごとに設定し、それぞれのネットワークでテストします。一度に多くの条件を追加しないでください。
再現性のあるテスト手順は次のとおりです。現在のネットワークとスイッチの状態を記録し、接続を開始したいネットワークに切り替えます。システムが処理するまで待ち、クライアントの接続状態と実際のアクセス結果を確認します。次に別のネットワークへ切り替え、想定どおりの結果になるか確認してください。テスト中は同じサーバーと設定を使い、変数を増やさないようにします。
注意点:メインの接続スイッチをオフにしても、オンデマンド接続が無効になるとは限りません。切断後に再接続する場合は、On Demandの条件を確認してください。システムのVPN権限、他のVPN設定、ネットワークを切り替えるタイミングも結果に影響します。システムにVPNの表示があっても、特定の接続先にアクセスできるとは限りません。接続が頻繁に切り替わる場合は、まずOn Demandを無効にして手動接続と比較し、その後条件を1つずつ戻してください。
Data:通信量の確認と振り分けの検証
通信量の統計は実際に発生した通信を確認するためのもので、リアルタイム速度の保証でもサービス提供元の請求額でもありません。
概要:Dataには、クライアントが記録できる通信量が表示されます。利用できる表示や統計の単位は、現在のプラットフォームの画面で確認してください。サーバー、アプリ、接続ごとの表示では、集計範囲が異なる場合があります。アップロードとダウンロード、集計期間、リセット状態をあわせて確認し、累計値だけで比較しないでください。
場所と確認方法:Dataを開き、まず現在の集計単位を確認して既存の数値を記録します。次に、同じウェブページを開く、既知のファイルを転送するなど、規模が小さく内容が明確な操作を行います。操作後に数値の変化を確認し、接続ログの接続先、ルール、ポリシーと照らし合わせて、想定どおりに処理されたか判断します。
2つのサーバーを比較する場合は、同じローカルネットワーク、接続先、できるだけ近い条件を使い、サーバーだけを切り替えてください。アプリごとの識別結果は、プラットフォームや通信内容の可視性に左右されます。アプリ名が表示されなくても、通信が発生していないとは限りません。バックグラウンド同期によって同時に数値が増えることもあるため、テスト前に他の通信がないか確認してください。
注意点:クライアント、システム、サービス提供元の統計は、集計範囲、接続時のオーバーヘッド、時間の区切りが異なるため、数値が一致しないことがあります。リセットする場合は、先に現在の数値を記録し、画面のリセット操作がどのデータに適用されるか確認してください。接続を切るたびに自動でゼロに戻るとは限りません。通信量に異常がある場合は、まず接続が維持されていないか、バックグラウンド通信がないかを確認してから、ルールの変更を検討します。
詳しくはDataの通信量統計の解説をご覧ください。
Settings:基本項目とトラブルの切り分け
動作する設定を基準として残し、一度に1項目だけ変更します。
Settingsには、接続、テスト、表示、同期、診断に関する項目があります。ここでは各設定の用途を説明します。具体的な場所や利用できる項目は、現在のアプリ画面で確認してください。変更前に現在の値を記録します。問題を調べる場合は、特定の接続先だけで失敗するのか、すべての接続先で失敗するのかを確認してから、対象の設定を選んでください。
DNS:名前解決の失敗と接続エラーを切り分ける
概要と場所:DNSはドメイン名をIPアドレスに変換します。SettingsでDNS関連の設定を探し、現在のConfigにDNS設定が含まれていないかも確認してください。両方の設定がどのように適用されるかは、選択中の設定ファイルとアプリの説明を確認します。
設定方法と注意点:まず現在のDNS設定を残し、問題が起きるドメインを記録します。ドメイン名でのアクセスだけに問題があるか確認してください。設定を変更する場合は、名前解決に関する項目を一度に1つだけ変更し、名前解決結果と接続ログを比較します。キャッシュの削除を恒久的な解決策と考えないでください。DNS、ルール、サーバーを同時に変更すると、アクセスが回復しても原因を特定しにくくなります。IPv6を使う場合は、ローカルネットワークとサーバーまでの経路が対応しているかも確認してください。
Test Method:Connectivity Testの測定範囲を理解する
概要と場所:Test Methodでは、Connectivity Testのテスト方法を選択します。Settingsで該当する項目を探してください。テスト結果は特定の条件で行った測定を示すもので、すべてのウェブサイトの実際の読み込み時間を表すわけではありません。
設定方法と注意点:サーバーを比較するときは、同じTest Methodを使用します。テスト先を指定する方法の場合は、接続先もそろえてください。まずHomeで既存のサーバーにConnectivity Testを実行し、その後、実際に使いたいサービスへアクセスします。数値が低くてもダウンロードが必ず速いとは限らず、タイムアウトはテスト先が原因の場合もあります。測定結果と実際の使用感が異なる場合は、数値だけを見てサーバーを削除せず、実際に接続が確立しているか確認してください。
Today Widget:システムのショートカットと状態確認
概要と場所:Today Widgetは、対応するシステムとアプリ環境で利用できるショートカットです。Settingsで関連項目を探し、システムのウィジェット管理画面で設定してください。
設定方法と注意点:まずアプリ内でサーバーと設定を選択し、VPNの許可を完了してから、利用可能なウィジェットを追加します。ウィジェットから操作した後、必要に応じてHomeに戻って状態を確認してください。表示はシステムの更新タイミングに左右されるため、表示文字だけで接続先に到達できると判断しないでください。現在のシステムに対応するウィジェットがない場合は、アプリ内の操作画面を使います。
iCloud:同期前にローカルコピーを保存
概要と場所:iCloudは、対応するデータの同期やインポートに使用します。Settingsで同期関連の項目を探し、必要なアカウントにシステムでサインインしていることと、アプリのiCloud利用が許可されていることを確認してください。Import from Cloud JSONは特定のデータを取り込むための項目です。Subscribeの更新とは別の機能です。
設定方法と注意点:同期する前に、画面に表示されるデータの範囲を確認し、重要な設定のコピーを保存してください。複数の端末で同時に編集すると、上書きや競合が起きる場合があります。内容に差異が見つかった場合は、編集を続ける前に、どのデータを残すか確認してください。同期にはシステムのVPN権限、現在の接続状態、すべてのローカル設定が含まれるとは限りません。端末を変更した後も、各項目を確認してください。
Diagnostics:ログを使って問題の範囲を絞り込む
概要と場所:Diagnosticsは、トラブルの調査に必要な情報を収集または確認する機能です。Settingsで該当する項目を探してください。名前解決、接続、認証、後続のリクエストのどの段階でエラーが起きたかを確認できますが、誤った設定を自動で修正する機能ではありません。
設定方法と注意点:現在のGlobal Routing、設定ファイル、サーバーを記録してから、問題を一度だけ再現し、その時刻に対応するログを確認します。診断資料を提出する場合は、サブスクリプションURL、パスワード、UUID、鍵、個人を特定できる情報を隠してください。調査後は、診断のために一時的に有効にした詳細ログをオフにし、不要なデータが蓄積されないようにします。
次の操作に進む前の確認
入手方法を確認してから、手順に沿って接続を設定します。
iPhone / iPad版はApp Storeから入手できます。価格は2.99ドルの買い切りで、システム要件はApp Storeのページに記載されている内容をご確認ください。Mac(Appleシリコン版とIntel版)、Windows、Android、Linux版は無料です。パソコン版とAndroid版のインストーラーは、当サイトの/dl/から入手できます。プラットフォームの選択と初回起動時のシステム許可については、ダウンロードページをご覧ください。
インストールとインポートが完了したら、まず再現しやすい接続先を1つ選んで設定を確認します。手動接続が正常に動作することを確かめてから、ルール、オンデマンド条件、同期機能を1つずつ追加すると、複数の設定を同時に変更するより管理しやすくなります。