利用中のサービスやサブスクリプションがあり、Global Routingの選び方に迷っている場合は、まず「ルールに従う」「すべてProxy経由」「すべてDirect」の違いを確認しましょう。この記事では、選択の目安、ルール例、設定を一つずつ確認する手順を解説します。普段は確認済みのConfigを使い、ProxyとDirectは一時的な切り替えや比較テストに利用します。
Global Routingと接続スイッチの違い
ShadowrocketはAppleプラットフォーム向けのクローズドソースの商用アプリです。主にiPhone/iPadで利用でき、App Storeで買い切り購入できます。アプリの買い切りと回線サービスの契約は別です。この記事では、利用者が自身でサービスやサブスクリプションを用意していることを前提とします。当サイトではノード、サブスクリプション、サービスを提供・販売・推奨していません。価格、システム要件、購入に関する最新情報はApp Storeの掲載内容をご確認ください。
Homeでは、接続スイッチとGlobal Routingがそれぞれ異なる役割を担います。スイッチは接続を有効にするかどうかを決め、Global RoutingはShadowrocketの処理対象となる通信のルーティング方法を決めます。Proxyを選んでも接続が確立したとは限らず、Configを選んでも現在のルールが想定どおりとは限りません。
紛らわしい名称として、画面下部のConfigは設定ファイルを管理する画面への入口であり、Global RoutingのConfigは現在の設定ルールに従って通信を処理するモードです。関連はありますが、同じボタンではありません。Homeにノードが表示されていても、ルーティングルールを含む設定が選ばれているとは限りません。
画面によってはSceneが表示される場合があります。Sceneはシーンに応じたルーティング選択に関係するもので、4つ目の固定的なプロキシ出口ではありません。この記事ではConfig、Proxy、Directを比較します。Sceneを使用中の場合は、実際に適用される設定を確認してから、以降の比較テストを行ってください。
Config・Proxy・Directの通信処理
以下でいう「すべて」は、Shadowrocketの処理対象となる通常の接続を指します。端末上のすべてのシステム通信が必ず同じ経路を通るという意味ではありません。DNS、設定内の除外項目、システムのネットワーク動作は別途確認が必要です。ルーティングモードを切り替えても、ノードのプロトコル、アドレス、認証情報は変わりません。
Config:現在の設定ルールに従って処理
推奨ルールの順序に従って接続先を照合し、一致したルールでDIRECT、PROXY、または設定内のポリシーを指定します。先行するルールに一致しない場合は、FINALで最終的な経路が決まります。そのため、Configが「一部はProxy、残りは必ずDirect」という意味とは限りません。
適した用途:明確なルールがあり、日常的に接続先ごとにルーティングを分けたい環境。
Proxy:すべてProxy経由で処理
通常のルーティングルールに従って接続ごとにDirectかProxyかを決めるのではなく、処理対象の接続を現在選択中のProxy経由にします。ノードへの接続失敗を自動で解消したり、誤った認証情報を置き換えたりする機能ではありません。
適した用途:一時的にすべての通信をProxy経由にしたい場合や、問題がルーティングルールに関係するか比較確認する場合。
Direct:すべてDirectで処理
処理対象の接続をDirect経由にし、選択中のProxyノードを介さずに通信します。Directは現在のネットワークで到達できる範囲で通信するため、すべての接続先にアクセスできるとは限りません。また、Directを選んでも接続スイッチがオフになるわけではありません。
適した用途:ローカルネットワークや接続先への直接到達性の確認、一時的にProxy経由を停止したい場合。
Configを推奨できるのは、設定の入手元とルールの意図を確認済みの場合です。FINALがPROXYを指定していれば、一致しなかった多くの接続先もProxy経由になります。特定の接続先にDIRECTが設定されていれば、その接続先はDirectで通信します。推奨するのは、内容を理解して確認できるルーティング方法です。モード名だけで安全性や速度を判断しないでください。
Configの結果はルールの順序とFINALで決まる
画面下部のConfigで現在選択している設定を確認し、ルール部分を読みます。通常、ルールは記載順に照合され、先に一致した結果によって後続ルールが適用されるかどうかが変わります。「ドメインルールを設定したのに想定どおりにならない」場合は、そのルールが現在の設定に含まれているか、より広い範囲のルールより後ろにないか、接続先が照合可能なドメイン名を提供しているかを確認してください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
これはルールの仕組みを説明するための参考例であり、完全な設定ファイルでも、既存ファイルへの上書きを求めるものでもありません。example.comは例示用ドメインです。PROXYの実際の出口は、現在のProxy選択と設定内のポリシーによって決まります。変更前に元の設定を保存し、ポリシー名が利用可能であることを確認してから、該当ルールを追加するか判断してください。
- DOMAIN-SUFFIX:
DOMAIN-SUFFIX,example.com,PROXYはexample.comとそのサブドメインに一致します。実際のリクエストが別のドメインを使用している場合や、IPアドレスへ直接接続している場合は、ウェブページのアドレスだけでこのルールに一致すると判断できません。 - IP-CIDR:
IP-CIDR,192.168.0.0/16,DIRECTは指定したIPv4ネットワークに一致します。ここではプライベートネットワークの一例を示していますが、すべてのローカルネットワークアドレスを網羅するものではありません。実際のネットワーク範囲を確認してください。 - GEOIP:
GEOIP,CN,DIRECTはIPアドレスの地理情報データベースに基づいて照合します。ウェブサイトの表示言語で分類するものではありません。判定結果は、名前解決の結果やデータベースの内容に左右される場合があります。 - FINAL:
FINAL,PROXYは、それ以前のルールに一致しなかった接続の最終ポリシーを指定します。これをDIRECTに変更すると、一致しなかった通信の経路が変わります。影響のない整理変更として扱わないでください。
日常利用と一時的な確認:目的に応じてモードを選ぶ
ローカルリソースと外部の接続先の両方を利用する日常環境では、内容を確認済みのConfigを優先できます。Proxyに切り替える目的を明確にし、たとえば特定の接続先をProxy経由にすると到達できるか確認します。Directへの切り替えでは、同じ接続先に現在のネットワークから直接接続した場合の状態を確認できます。すべての接続先を同じ経路にすることを、実際の要件の確認に代えないでください。
2つの利用場面:安定したルーティングと問題の切り分け
日常利用:Config
- Configで現在の設定とFINALの指定先を確認します。
- Homeで使用するProxyノードまたはポリシーを確認します。
- Home → Global RoutingでConfigを選択します。
- Directを想定する接続先とProxyを想定する接続先を、それぞれ一つずつ確認します。
一時的な確認:Proxy / Direct
- 同じネットワーク、同じ接続先、同じProxy選択を維持します。
- まずConfigでの状況を記録し、次にProxyへ切り替えて再試行します。
- Directとの比較が必要な場合は、Directを選んで新しい接続を確立します。
- 違いを記録し、確認後は元のモードに戻します。
結論:モードの切り替えで原因の範囲を絞り、次に該当ルールを修正します。一時的にアクセスできても、根本原因を特定できたとは限りません。
利用中のWi-Fiでネットワークログインが必要な場合は、まず基本的なネットワーク接続を確認してから3つのモードを比較します。ルーティングの選択でネットワークへのログイン認証を代用することはできません。ローカルネットワーク上の機器にアクセスする場合は、機器のアドレス、ネットワーク分離、アプリのローカルネットワーク権限も確認してください。Directに切り替えるだけですべての問題を判断することはできません。
ウェブページが開かない場合は、条件をそろえて比較テスト
キャッシュ、ノードの変更、ルールの変更を混同しないよう、各テストではGlobal Routingだけを変更します。接続先を一つ決め、Wi-Fiかモバイル通信か、エラーが名前解決エラー、接続タイムアウト、ページの応答エラーのどれかを記録します。異なる種類の問題をまとめて「接続できない」と記録しないでください。
- 基準となる状態を記録。Homeで接続状態と現在のProxy選択を確認し、Configで現在のファイルを確認します。DNS設定はそのままにして、まずConfigで接続先にアクセスし、結果を記録します。
- Proxyに切り替え。Home → Global Routing → Proxyでモードを切り替え、再度アクセスします。ブラウザーやアプリが既存の接続を再利用する場合があります。必要に応じて対象ページを閉じるかアプリを再起動し、新しいリクエストで接続し直してください。
- Directと比較。同じネットワークでDirectを選択し、新しい接続を確立します。Directだけで接続できる場合は、まずProxy経由の経路を確認します。Proxyだけで接続できる場合は、すぐに設定全体を変更せず、Configのルールが指定する経路を確認してください。
- 記録を確認。Dataで確認可能な接続記録を参照し、接続先のドメインまたはIP、ポリシー、エラー情報を照らし合わせて判断します。画面によって表示される詳細は異なります。記録が見つからない場合、特定のルールが適用されたと断定できません。
- 設定を戻して再確認。Configに戻り、接続先に関係するルールを一つだけ変更して、同じ接続先に再度アクセスします。ノード、DNS、ルールを一度に変更すると、接続が回復しても、どの変更が影響したのか特定できません。
Configでは失敗しProxyでは成功した場合、2つの処理経路に確認すべき違いがあることは分かりますが、それだけで「ルールファイルが破損している」とは断定できません。たとえばConfigが接続先をDIRECTにしている場合や、現在選択中のノードとは異なるポリシーを使用している場合があります。接続記録とルールの順序を照合して確認してください。
Proxyでも失敗する場合は、利用中のノードのアドレス、ポート、認証情報、現在のネットワークからの到達性を確認してください。Global Routingで、対応していない通信方式を利用可能にすることはできません。Directでも失敗する場合は、接続先サービスの状態とDNSも個別に確認します。モードの切り替えはDNS設定の代わりにはなりません。
よくある質問:On Demand、プロトコル、モードの切り替え
Global Routingは通信の経路を決め、On Demandは条件に応じて接続を開始します。両者は互いに代替する設定ではありません。プロトコルはノードとのProxy接続方法を示します。この3つを分けて確認すると、「モードを切り替えたのに状況が変わらない」という誤判断を減らせます。
Proxyを選んでも接続に失敗するのはなぜですか?
まずHomeで接続が有効になっていることと、想定したノードが選択されていることを確認し、ノードのアドレス、ポート、認証情報を確認してください。Proxyはルーティング方法を変更するだけで、ノードが稼働中であることを保証したり、サブスクリプション内の無効な情報を自動修正したりするものではありません。この段階でDNSとルールを同時に変更しないでください。
Directに切り替えると、接続はオフになりますか?
いいえ。Directは通信を直接処理する設定であり、接続スイッチとは別の状態です。接続を停止するにはHomeに戻って接続スイッチを操作します。その後、自動的に再接続する場合は、Global Routingを何度も切り替えるのではなく、Settings → On Demandで有効な条件を確認してください。
Configを選ぶと、すべてのローカルサイトが自動的にDirectになりますか?
「ローカルサイト」というだけで自動的に経路が決まるわけではありません。Configで実際のDOMAIN-SUFFIX、GEOIP、IP-CIDRルールとFINALを確認してください。サイトのドメイン、名前解決で得られるIP、ルールの順序によって結果は変わります。Directにしたい接続先には、明示的なルールを適用してください。
ShadowsocksやTrojanに変更しても、Configを使えますか?
現在の設定のままConfigを使用できます。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは接続プロトコルに関するもので、Global Routingは通信経路に関するものです。プロトコルを変更した後は、ノードのパラメーターと接続状態を確認し、ルールが実際に指定する出口を検証してください。プロトコルが変わっただけでProxyに切り替える必要はありません。
確認後は、現在の設定、Global Routingの選択、テスト結果を記録してから、日常の設定に戻します。ルールに基づくルーティングを明確に設定している環境ではConfigに戻してください。すべてProxy経由またはDirectにする必要がある場合に限り、該当するモードを維持します。判断基準は、選択肢が「包括的」に見えるかどうかではなく、接続先が実際にどの経路を通るかです。