ShadowrocketのGlobal Routingは、通信の出口を選択するための設定であり、接続サービスを提供するものではありません。サーバーとルールを設定済みの方は、まずConfig・Proxy・Directの違いを確認し、決まった手順でルールの動作を検証しましょう。日常的な振り分けには、内容を確認したConfigを使います。ProxyとDirectは、出口を明確に指定したいときや、問題の切り分けに一時的に使用します。この記事でいう「すべての通信」とは、クライアントの処理対象となる通信を指し、端末上のあらゆる通信が必ず同じ出口を通るという意味ではありません。
1. 接続スイッチ・サーバー・Global Routingの違い
Homeでは、接続スイッチで接続の開始・停止を操作し、選択したサーバーがプロキシの出口になります。Global Routingは、クライアントが処理するリクエストを直接接続するか、プロキシ経由にするかを決めます。3つは関連していますが、同じ設定ではありません。スイッチをオンにしただけでは接続処理が開始されたことしか分からず、アクセス先に接続できるか、リクエストがプロキシ経由になったかは判断できません。
たとえば、Homeでサーバーを選択していても、Global RoutingがDirectなら通常の通信は直接接続になります。反対にProxyを選んでも、サーバーのアドレスやポート、認証情報が自動的に修正されるわけではありません。サービスに接続できないときにConfigからProxyへ変更しても、経路の選択が変わるだけで、新たに利用可能な出口が作られるわけではありません。
この記事では、基本となる3つの設定を取り上げます。Global RoutingのSceneは状況に応じて選択する機能で、Configと同じ意味ではありません。問題を切り分けるときは、まずConfig・Proxy・Directのいずれかを明示的に選び、Sceneの設定による余計な要因を減らしましょう。
2. Config・Proxy・Directの選び方
3つの違いは、通常の通信の出口をルールに基づいて選ぶかどうかです。暗号化の強度や速度のランクを示すものではありません。Configは「すべてプロキシ経由」、Directは「クライアントの停止」を意味しません。実際の速度は接続先、利用中のネットワーク、プロキシサーバー、選択した経路によって異なるため、設定名だけでは判断できません。
Config:現在のルールに基づいて出口を選択
おすすめ現在有効な設定を読み込み、ルールの一致結果に基づいてDIRECT、PROXY、または定義済みのポリシーを選択します。先行ルールに一致しないリクエストはFINALなどのフォールバック設定で処理され、必ず直接接続になるわけではありません。
向いている用途:信頼できるルールがあり、直接接続先とプロキシ接続先の両方を使う日常利用。
Proxy:すべての通信をプロキシ経由にする
通常の通信はConfigの振り分けルールごとに出口を選ばず、プロキシ経由になります。プロキシ経路の確認には使えますが、接続先に必ず到達できるとは限らず、サーバー設定の確認に代わるものでもありません。
向いている用途:一時的にすべての通信をプロキシ経由にする場合や、Configのルールがアクセスに影響しているか確認する場合。
Direct:すべての通信を直接接続にする
通常の通信はプロキシサーバーを経由せず、現在のネットワークから直接アクセスします。クライアント自体は動作を続ける場合があり、DNSなどの設定も個別に確認が必要です。アプリを完全に終了した状態とは異なります。
向いている用途:ローカルネットワークや直接接続先の確認、プロキシ経路との比較による問題の切り分け。
「普段どの設定を使うか」は、ルールが用途に合っているかどうかで決まります。ルールを確認済みでアクセスにも問題がなければConfigを使いましょう。ルールの内容を確認できていない場合は、おすすめ設定という理由だけで有効にせず、まずConfigの中身を確認してください。
3. Homeから設定を切り替えて動作を確認
始める前に、自分が利用する接続サービスを用意してください。サブスクリプションはサービス提供元から入手します。クライアントの買い切り購入と回線プランは別です。サーバーリストの読み込みとルールファイルの有効化も別の操作です。サーバーがリストに表示されていても、Configに用途に合ったルールが設定されているとは限りません。
- サーバーを確認します。Homeを開き、使うサーバーに選択マークが付いていることを確認します。アドレス、ポート、プロトコル、認証パラメータがサービス提供元の情報と一致しているかも確認してください。Webサイトでよく使われる443番ポートが、すべてのサーバーで使われるとは限りません。
- ルールファイルを確認します。Configを開き、想定した設定が有効になっていることを確認します。ファイルの内容を閲覧しただけでは、そのファイルは振り分けに使用されません。
- 設定を選びます。Homeに戻り、Global RoutingでConfigを選択します。Homeに戻ったら、現在の設定表示をもう一度確認してください。選択画面を開いただけで、設定が確定していない場合があります。
- 接続を開始します。接続スイッチをオンにし、初回接続時はシステムの案内に従ってVPN構成の追加を許可します。その後、Connectivity Testを実行し、サーバーに到達できるかを最初に確認します。
- 接続先ごとにテストします。直接接続される想定の接続先と、プロキシ経由になる想定の接続先を1つずつ用意し、新しいリクエストを送信します。クライアントのリクエスト履歴で、接続先、一致したルール、実際に適用されたポリシーを確認してください。
4. Configのルール順序とFINALのフォールバック
Configではルールを上から順に照合します。具体的なルールは広範なルールより前に置き、FINALはフォールバックとして末尾に配置するのが基本です。以下は構文を説明するための設定例であり、個人用の設定ファイルとしてそのまま使えるものではありません。example.comは例示用ドメイン、192.0.2.0/24はドキュメント用のアドレス範囲です。使用時は実際の用途に合わせて調整してください。
[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,PROXY:example.comとそのサブドメインに一致し、接続をPROXYに渡します。example.comという文字列を含む任意のドメインに一致するわけではありません。IP-CIDR,192.0.2.0/24,DIRECT,no-resolve:接続先のIPv4アドレス範囲に一致した通信を直接接続にします。no-resolveは、このルールへの照合のために追加のドメイン解決を行わない指定です。接続先のIPアドレスがすでに判明している場合は、一致することがあります。GEOIP,CN,DIRECT:接続先IPアドレスの地理情報に基づいて直接接続するかを決めます。ドメインの末尾で判定するものではなく、利用者の所在地も示しません。データと実際のサーバー設置場所が異なる場合があります。FINAL,PROXY:前のルールに一致しない場合、PROXYを使用します。FINAL,DIRECTに変更すると、同じくルールに一致しない接続先は直接接続になります。
最後のルールでは、有効なポリシーを指定してください。カスタムポリシーグループを使う設定では、グループ名とグループ内で実際に選択されている項目を確認します。ルール末尾に名前が表示されているだけでは、正しい出口が使われているとは限りません。同じ接続先がProxyでは成功し、Configでは失敗する場合は、まず一致したルールを確認し、次に対応するポリシーを調べてください。すべてのルールをすぐに削除する必要はありません。
5. ProxyとDirectを使った切り分け
サーバー、ネットワーク、接続先を同じ条件に保ち、Global Routingだけを一度に1つ変更します。設定を切り替えるたびに新しい接続を開始し、成功、タイムアウト、名前解決の失敗など、実際の結果を記録してください。サーバーの変更、DNSの修正、サブスクリプションの更新を同時に行うと、どの変更が影響したのか判断しにくくなります。
同じ接続先で2つの経路を比較
Configでは失敗、Proxyでは成功
- Configで正しいファイルが有効になっているか確認します。
- 接続先が先行ルールのDIRECTまたは別のポリシーに一致していないか確認します。
- FINALとポリシーグループで現在選択されている項目を確認します。
- ルールを修正したらConfigに戻し、新しい接続で再テストします。
Proxyでは失敗、Directでは成功
- まずConnectivity Testを実行し、プロキシサーバーに到達できるか確認します。
- サーバーアドレス、ポート、認証情報、通信パラメータを確認します。
- 接続タイムアウト、DNSの名前解決失敗、接続先からのエラーを区別します。
- その接続先がルール上、直接接続される想定か確認します。
比較結果は問題の範囲を絞るための手掛かりであり、診断の決め手とは限りません。どちらの経路でも失敗する場合は、利用中のネットワーク、DNS、接続先サイトの状態も確認してください。
Connectivity Testに成功しても、すべてのWebサイトやプロトコルが正常とは限りません。たとえば、Webページへのリクエストが成功しても、UDP通信が利用できる証明にはなりません。接続先によっては特定の出口を制限している場合もあります。設定を何度も切り替えるより、実際に失敗した接続先とリクエストの種類を記録するほうが、問題の特定に役立ちます。
6. 日常利用でよくある4つの質問
Configに切り替えたのに、なぜプロキシ経由の通信が残るのですか?
Configでは、プロキシ接続と直接接続を併用できます。Configを開いて現在有効なファイルを確認し、接続先に一致したDOMAIN-SUFFIXなどのルールと、末尾のFINALを調べてください。FINALがPROXYなら、前のルールに一致しない接続はプロキシ経由になります。Configを標準で直接接続する設定と考えず、実際に一致したルールを確認しましょう。
Directを選んでも、なぜ接続スイッチがオンのままなのですか?
Directは経路の選択であり、停止ボタンではありません。クライアントの接続を停止するには、Homeに戻って接続スイッチをオフにします。オフにした後で自動的に再接続する場合は、Settings → On Demandでオンデマンド接続の条件が有効になっていないか確認してください。On Demandは接続を開始する条件を制御し、Global Routingは通信の行き先を決めます。それぞれ別に設定してください。
サブスクリプションを更新しても、なぜ振り分けが変わらないのですか?
まず、更新した対象がサーバーのサブスクリプションか、ルール設定かを確認してください。サーバーのサブスクリプションを更新しても、通常はサーバーリストやパラメータが更新されるだけで、現在有効なルールファイルは書き換わりません。Homeで選択中のサーバーを確認し、次にConfigで有効なファイルを確認します。両方を確認したら、同じ接続先に新しい接続を行い、適用されたルールを調べてください。
Proxyを使い続ければ、ルールを気にしなくてよいですか?
Proxyでは通常の通信の出口を選ぶ際、Configの振り分けルールは使われません。ただし、サーバーの利用可否、DNS、接続先による制限への対応は必要です。ローカルのリソースや直接接続が適した接続先も日常的に利用する場合は、Configに必要なルールを整えてから戻し、動作を確認してください。ルールの問題を確かめないまま、すべてをプロキシ経由にして長期間使うのは避けましょう。
7. 普段使いの設定に戻す前のチェックリスト
問題の切り分けが終わったら、一時的な変更を元に戻し、次回クライアントを起動したときにテスト用の設定が残らないようにします。変更を残す必要がある場合は、先に元の設定を複製して保存し、どのルールを変更したか記録してください。リクエスト履歴や設定を共有する際は、サーバーの認証情報、サブスクリプションURLに含まれる個人情報、その他の機密情報を削除します。
- Homeで想定したサーバーが選択され、Global Routingが動作確認済みのConfigに戻っている。
- Configで正しいファイルが有効になり、FINALが用途に合った有効なポリシーを指定している。
- 直接接続先とプロキシ接続先の両方で新しい接続をテストし、結果がルールの想定と一致している。
- Settings → On DemandやDNSを一時的に変更した場合は、最終的に残す設定を一つずつ確認する。
ShadowrocketはAppleプラットフォーム向けのクローズドソースの有料アプリです。主にiPhoneとiPadで利用でき、入手先はApp Storeのみです。買い切りで購入できます。Mac、Apple TV、Apple Visionとの互換性、システム要件、ユニバーサル購入の可否は、App Storeの製品ページをご確認ください。アプリの購入と接続サービスの利用は別々に管理されます。購入しただけで利用可能な接続回線が用意されるわけではありません。
App Storeの正規配信ページを確認
入手前に、デベロッパ名がShadow Launch Technology Limited、アプリIDが932747118であることを確認してください。購入済みの方は、サーバー、接続権限、ルール設定を順番に確認しながら、ガイドを進めてください。
App Storeの正規配信ページを見る 使い方を見る