公式マニュアル / Global Routing・Settings
プロキシモードと基本設定
まずGlobal Routingを選び、Config、現在のサーバー、接続状態を確認します。モードは通信の処理方向を決め、ルールは一致したときの動作を決めます。サーバー情報は接続の確立に関わるため、この3点を分けて確認してください。
- モード Config / Proxy / Direct
- ルール 最初に一致したルールを適用
- 設定 一度に変更するのは1項目
01 / Home
Global Routingの3つのモード
Global RoutingはHomeにあり、接続全体の処理方法を選択します。設定ファイルを使うConfig、プロキシを使うProxy、直接接続するDirectの3種類です。モードを選んでもサーバー情報は補完されず、接続が有効になるわけでもありません。操作後はHomeで現在のサーバーと接続状態を確認してください。
接続先ごとに処理を振り分ける場合は、まずConfigで使用する設定ファイルを選んで有効にし、Global RoutingをConfigに設定します。接続先ごとの動作は設定ファイル内のルールで決まり、すべての接続先に同じポリシーが適用されるわけではありません。ファイルを読み込んだだけで有効化していない場合や、想定と異なるファイルを選んでいる場合は、ルールどおりに動作しません。
| モード | 処理の基準 | 利用場面 | 主な確認項目 |
|---|---|---|---|
| 設定 / Config | 現在有効なConfigのルールに基づいてポリシーを決定します。 | 日常的なルール振り分け。接続先ごとに処理を分けます。 | ファイルの有効化、ルールの順序、ポリシーの参照先、FINAL。 |
| プロキシ / Proxy | 通信全体をプロキシ経由で処理します。Configの通常の接続先ルールによる振り分けは行いません。 | ルールの影響を一時的に切り分け、選択中のサーバーが利用できるか確認します。 | 現在のサーバー、認証情報、実際のリクエスト結果。 |
| 直接接続 / Direct | 通信全体を直接接続で処理します。通常の接続では、選択中のプロキシサーバーを経由しません。 | 現在のネットワークで直接アクセスした場合の状態を一時的に比較します。 | ローカルネットワーク、接続先への到達性、接続状態。 |
Proxyは短時間の切り分けに使えます。同じ接続先がProxyでは利用でき、Configでは問題が起きる場合、次に確認するのは接続先に一致したルールとポリシーです。サーバー情報をすべて入力し直す必要はありません。Directとの比較で直接接続にも問題があるかを確認できますが、特定の接続先に直接アクセスできないことだけで、プロキシ設定の正誤は判断できません。
比較テストが終わったら、必要なモードに戻してください。Global RoutingのProxy / Directは画面上の選択肢で、ルール内のPROXY / DIRECTはポリシーを表すキーワードです。名称が似ていても、同じ設定項目ではありません。
02 / Config
ルールの種類とポリシー
ルールによる振り分けでは、Configに「どの接続先にどのポリシーを適用するか」を記述します。現在の設定ファイルを編集または表示する画面を開き、ファイルが有効になっていることを確認してから、[Rule]セクションを確認してください。通常のルールは上から順に評価され、最初に一致したルールが適用されます。同じ判定で後続のルールが代替候補として評価されることはありません。
DOMAINはドメイン名の完全一致、DOMAIN-SUFFIXはドメイン名とサブドメイン、DOMAIN-KEYWORDはドメイン名に含まれるキーワードで照合します。IP-CIDRとIP-CIDR6はそれぞれ異なる種類のIPアドレス範囲を指定し、GEOIPはIPアドレスの地理情報を参照します。ドメインルールとIPルールでは必要な情報が異なるため、ルールの順序やDNSの名前解決結果が判定に影響することがあります。
ポリシーは、ルールに一致した後の動作を指定します。PROXYはプロキシ経由、DIRECTは接続先へ直接接続、REJECTは接続を拒否します。カスタムポリシーグループを使う場合は、グループ名が存在するか、グループ内の選択が想定どおりかも確認してください。ルールの記述が正しくても、参照先のグループが利用できるとは限りません。
[Rule]
DOMAIN,example.com,PROXY
DOMAIN-SUFFIX,example.org,DIRECT
DOMAIN,ads.example.net,REJECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
上記はテキスト形式の設定を読むための例であり、既存の設定ファイルをそのまま置き換えるものではありません。通常、対象範囲の狭いルールを広いルールより前に置きます。FINALは最後に置き、それまでに一致しなかった接続を処理します。範囲の広いルールを先に置くと、後続の細かいルールが正しく記述されていても適用されないことがあります。
変更前に元に戻せるコピーを保存し、一度に1つのルールだけ変更して、同じ接続先で確認してください。問題が起きたら、接続先のドメイン、発生時のGlobal Routing、適用されたポリシーを記録してからログを確認します。ページが開くかどうかだけで、特定のルールが適用されたと判断しないでください。ルールキーワードの説明は用語集で確認できます。
03 / Home · Add Server
サブスクリプションとサーバーの管理
サーバー項目には、接続に必要なプロトコル、アドレス、ポート、認証情報を保存します。サブスクリプションは1つのアドレスを使って複数の項目を更新します。どちらも主にHomeで管理します。サブスクリプションをお持ちの場合は、Add Serverを開き、TypeでSubscribeを選択して、サービス提供元から入手したアドレスを画面の項目に入力し、保存して更新します。個別のサーバー情報をお持ちの場合は、該当するプロトコルを選んで各項目を入力してください。サーバーアドレスをサブスクリプションのアドレスとして読み込まないでください。
保存後、一覧に想定したグループと項目が表示されているか確認し、使用するサーバーを選択します。プロトコルはサーバー側の設定と一致させてください。ポート、パスワードや識別情報、TLS、通信方式に関する項目も元の情報と照合します。プロトコル名に見覚えがあるからといって、Typeだけを変更し、別のプロトコルのパラメーターを流用しないでください。
Subscribeは配信元が管理する項目を更新し、Configは設定ファイルを更新します。両者を混同しないでください。サブスクリプションを更新した後は、選択中の項目が残っているか、名前が変わっていないか、現在のポリシーグループが有効な内容を参照しているかを確認します。サブスクリプションから作成された項目を手動で変更すると、次回更新時に上書きされることがあります。継続して保持したい変更は、別途記録して管理方法を確認してください。
複数のサブスクリプションを管理する場合は、配信元が分かるメモを付け、更新後に重複した名前や無効な項目がないか確認してください。削除前に、対象が単一のサーバーかサブスクリプショングループ全体かを確認します。名前が同じでも設定が同じとは限らず、一時的なテスト失敗だけで配信元が無効になったとは判断できません。サブスクリプションのアドレスにはアクセス情報が含まれる場合があります。スクリーンショット、共有記録、バックアップファイルに含まれる機密情報を事前に確認してください。
Connectivity Testは初期確認に利用できますが、テストに成功してもすべての接続先にアクセスできるとは限りません。失敗した場合は、まず現在のネットワークとTest Methodを確認し、次にサーバー情報とサブスクリプションの更新結果を確認してください。具体的な読み込み手順は使い方ガイド、プロトコル項目の技術的な意味はプロトコルマニュアルをご覧ください。
04 / Settings
On Demandによるオンデマンド接続
On Demandは、設定したネットワーク条件に応じて接続を開始します。手動接続を確認したうえで、特定のネットワーク環境で接続を自動化したい場合に利用できます。設定項目はSettings内にあります。システムのVPN設定にも関連する状態が表示される場合があります。選択肢はアプリに現在表示されている内容を確認し、どのネットワークで接続するか、どの条件では接続しないかを決めてから設定してください。
まずOn Demandをオフのままにし、「サーバーを選択、Global Routingを設定、接続を開始、接続先にアクセス」という一連の操作を手動で確認してください。基本の接続が使えることを確かめてからOn Demandを開き、条件と動作を確認します。再現しやすい条件を1つ設定して保存し、条件を満たす場合、満たさない場合、ネットワークを切り替えた場合の状態をそれぞれ確認してください。重複する条件を一度に複数設定すると、どの条件で接続が開始されたか判断しにくくなります。
On Demandは、期限切れの認証情報を修復したり、Configのルールを代替したりする機能ではありません。接続を開始するタイミングを制御し、Global Routingは接続の処理方法を決めます。メインスイッチをオフにしても接続が始まる場合は、サーバー項目を繰り返し削除するのではなく、自動接続の条件を確認してください。
05 / Data
Dataで通信量を確認
Dataでは、クライアントが記録した通信量を確認できます。接続中にデータ通信が発生したか、テストの前後で大きな変化があったかを把握する際に役立ちます。Dataを開き、現在表示されている集計範囲とカウンターの意味を確認してください。期間や接続範囲を選べる場合は、同じ範囲を選んでから前後を比較します。異なる範囲の数値を引き算しないでください。
再現しやすい確認方法の一例です。テスト前の表示値を記録し、同じサーバーとモードのまま、既知の接続先を1つだけ開いてからDataに戻り、変化を確認します。システムの同期、メディアの先読み、ほかの接続が集計に影響するため、テスト中はほかのアプリのバックグラウンド通信をできるだけ停止してください。通信量の増加はデータが転送されたことを示すだけです。ページが完全に読み込まれたことや、どのルールが適用されたかを単独で証明するものではありません。
クライアントの統計とサービス提供元の請求では、計測位置、集計期間、通信オーバーヘッドの扱いが異なる場合があります。Dataだけを残りの通信量を確認する唯一の手段にしないでください。サブスクリプションに表示される容量情報と端末上の記録も別の情報源です。それぞれ個別に確認してください。統計を消去またはリセットする場合は、必要な情報を先に記録し、リセット対象を確認します。設定ファイルを復元しても、過去の統計がすべて復元されるとは限りません。
06 / Settings
Settingsの主な項目
Settingsではクライアントの動作をまとめて管理できますが、接続に関する設定がすべてここにあるわけではありません。サーバー固有の情報は該当する項目で、ルールや一部のDNS動作は現在のConfigで確認します。設定を開く前に、対象が全体、現在の設定、個別項目のどれに適用されるかを確認してください。Configに関連する指示がある場合は、その指示の適用範囲も踏まえて動作を判断します。
DNS:名前解決と転送を確認
DNSはドメイン名を接続に必要なアドレスへ変換します。IPアドレスへの接続はできるのにドメイン名では問題が起きる場合や、同じドメインでもネットワークによって動作が異なる場合は、名前解決の状態を確認してください。SettingsのDNS関連項目と、現在のConfigにあるDNSの指示を照合します。元の値を記録し、一度に1項目だけ変更して、同じドメインを再テストしてください。
DNSの変更をあらゆる問題に対する万能策と考えないでください。名前解決に成功しても、接続、TLS、サーバー認証の段階で失敗することがあります。変更後はキャッシュの影響に注意し、テストリクエストに変更後の設定が使われていることを確認してください。用途を理解でき、現在の設定と互換性のある項目を優先し、出所の分からない設定を重ねて追加しないでください。
Test Method:テスト結果の見方
Test Methodは、一覧のテスト方法を指定する項目です。Settingsで該当する設定を確認してください。テスト方法によって確認する通信経路の範囲が異なるため、結果をそのまま比較できるとは限りません。適切な方法を1つ選び、接続先とネットワーク環境をそろえてから、HomeでConnectivity Testを実行してください。
一覧のテストは明らかな失敗を見つけるためのもので、実際の通信を代替するものではありません。テストに成功しても接続先にアクセスできない場合は、DNSの名前解決、ルール、接続先のサービスを引き続き確認してください。テストに失敗しても実際の通信が成功する場合は、項目をすぐ削除せず、まずテスト方法を確認します。
Today Widget:操作後に状態を確認
Today Widgetはシステムのウィジェットから関連する操作を行うためのショートカットです。利用できる操作は、現在のシステムとアプリの表示を確認してください。Settingsで関連項目を確認し、システムのウィジェット編集画面から利用可能なウィジェットを追加します。初回はHomeに戻り、メインスイッチ、現在のサーバー、モードを確認してから、ウィジェットで操作を実行し、アプリに戻って結果を確認してください。
ウィジェットの表示には更新の遅れが生じることがあります。また、ショートカットだけで詳細な診断はできません。タップ後の動作が想定と異なる場合は、アプリに戻って実際の状態を確認し、On Demandが接続を開始していないかも確認してください。ウィジェットの表示を一度見ただけで、サーバーが利用可能か、ルールが適用されたかを判断しないでください。
iCloud:同期前に別途バックアップ
iCloudは、アプリが提供するクラウド同期や関連する保存機能に利用されます。使用前に、端末でサインインしているアカウント、システムのiCloud権限、アプリ内の関連スイッチを確認し、現在の画面の説明に沿って同期対象を確認してください。データの種類ごとに個別に確認します。Configが表示されたからといって、サブスクリプション、選択状態、統計履歴もすべて復元されたとは限りません。
端末を変更する前に、復元可能な独立したバックアップを保存してください。2台の端末で同時に大幅な編集を行わないようにします。新しい端末では、ファイルの内容とサーバー項目を確認してから、有効なConfigとGlobal Routingを確認してください。同期できても接続情報の確認は必要です。認証情報を含むファイルは機密情報として管理してください。
Diagnostics:問題発生時の情報を記録
Diagnosticsでは診断や関連操作の記録を確認できます。Settings内の該当項目を開いてください。まず発生時刻、ネットワークの種類、選択中のサーバー、接続先を記録し、失敗を1回再現してからアプリの診断情報を確認します。設定を次々と変更して大量の記録を出力するより、条件を明確にした1回の再現のほうが原因を特定しやすくなります。
記録を確認する際は、名前解決の失敗、接続確立の失敗、認証またはハンドシェイクの失敗を区別してください。すべての問題をルールのせいにしないでください。記録を共有する前に、サブスクリプションのアドレス、サーバー情報、アクセス先のドメイン、認証情報を確認し、機密情報を削除します。記録はその時点の条件を示すものです。ネットワーク切り替え後の問題は、改めて記録して確認してください。
確認手順
設定変更後の確認
接続先、ネットワーク、サーバーを同じ条件にして、項目ごとに確認してください。一度に変更する条件を1つに絞ることで、どの設定が結果に影響したか判断できます。
- 基本状態を確認します。Homeで接続スイッチと現在のサーバーを確認し、同じ名前の別項目を誤って選んでいないか確認してください。まず手動接続を再現できる状態にしてから、自動接続を設定します。
- モードと設定ファイルを確認します。Global Routingを確認してください。Configを使う場合は、実際に有効なファイル、最初に一致するルール、FINALを確認します。編集中のコピーだけを見て判断しないでください。
- 名前解決とリクエストを確認します。DNS、Connectivity Test、実際の接続先へのアクセス結果を組み合わせて判断してください。単独のテスト値だけで結論を出さないでください。
- 自動動作を確認します。On Demand、Today Widget、ネットワーク切り替えをテストし、自動再接続や表示更新の遅れがないか確認してください。
- 結果と復元方法を記録します。変更内容を記録し、問題が起きたら元の値に戻してください。さらに切り分ける必要がある場合はトラブルシューティングをご覧ください。未確認の設定を重ねて追加しないでください。
このページでは、Shadowrocket公式マニュアルとして機能と設定を説明しています。iPhone / iPadのシステム要件はApp Storeの掲載内容をご確認ください。画面の場所や選択肢は、アプリに現在表示されている内容と照らし合わせてください。