利用するサービスのサブスクリプションを登録した後は、通常Configを選び、現在の設定にあるルールに通信先を振り分けさせます。Proxyはプロキシ経由の通信を一時的に確認するとき、Directは現在のネットワークから直接接続した場合と比較するときに使います。この記事では、3つのモードの違い、切り替え手順、確認の順序を解説し、「接続がオン」と「個々の通信が実際にプロキシを経由する」の違いを整理します。
3つのモードの違い:通信経路の選び方
ShadowrocketのGlobal Routingは、取り込まれた通信の出口を選択する機能です。サブスクリプションの管理やサーバーのプロトコル設定とは異なります。普段Configを使う場合は、用途に合った設定ファイルを選択し、ルールの内容を確認してください。Configにすれば「日本のサイトはすべて直接接続、その他はすべてプロキシ経由」になるわけではありません。
Config
おすすめ現在の設定にあるルールを上から順に照合し、一致したルールのポリシーを適用します。前のルールに一致しなければ、後続のルールと最終フォールバックを確認します。
おすすめの用途:適切な設定があり、普段からルールで通信を振り分けたい場合。
Proxy
取り込まれた通信をプロキシ経由で処理します。通常の振り分けルールに従って、直接接続かプロキシ経由かを個別に決める動作ではありません。すべてのアプリの通信が必ず取り込まれるわけではなく、サーバー接続の問題が自動で解決することもありません。
おすすめの用途:プロキシ経由の通信を一時的に確認し、ルールの問題を切り分けたい場合。
Direct
取り込まれた通信をプロキシサーバーを経由せず、直接接続で処理します。Shadowrocketの接続スイッチをオフにする機能ではなく、システム上のVPN状態がすぐに消えることを意味するものでもありません。
おすすめの用途:現在のWi-Fiまたはモバイル通信で直接接続した場合と比較したいとき。
画面によっては、別のモード選択項目としてSceneも表示されます。この記事で扱う「3つのモード」が、メニューに常に3項目しかないという意味ではありません。最初の切り分けではConfig・Proxy・Directを明確に選び、Sceneの追加設定が比較に影響しないようにしてください。
切り替え前の確認:接続・設定・サーバーを個別に確認
Homeで選ぶサーバーは、プロキシ接続に使うサーバーを決めます。Configで選ぶ設定ファイルは、ルールの照合方法を決めます。Global Routingは、そのルールに従って通信経路を選ぶかどうかを決めます。それぞれ役割が異なります。サーバーだけを変更してもDirectが自動でProxyに切り替わることはなく、サブスクリプションを更新しても現在のルールファイルが置き換わるとは限りません。
- サブスクリプションを確認します。サブスクリプションURLは利用中のサービス提供元から取得し、手順に沿って追加してサーバー一覧を更新します。更新に失敗した場合は、まずサブスクリプションの取得状況を確認してください。ルーティングモードを切り替えても更新の代わりにはなりません。
- プロキシ接続先を確認します。Homeで現在選択されているサーバーを確認します。ポリシーグループを使う設定では、グループ内で実際に選ばれている項目も確認してください。サーバー一覧の選択状態だけでは、すべての通信の出口を判断できません。
- 設定ファイルを確認します。Configを開き、使う設定が選択されていることを確認します。ファイルが一覧に保存されているだけでは、現在の設定として選ばれているとは限りません。
- モードを選んで接続します。Home → Global Routingに戻り、Config・Proxy・Directを選択してから、接続スイッチの状態を確認します。初回接続時は、システムの案内に従ってVPN構成を許可してください。
- 新しい通信で確認します。切り替え後、対象ページを開き直すか、接続を新たに開始します。長時間の接続では、切り替え前の経路が維持されることがあります。必要に応じて接続を一度切ってから再接続し、同じ条件でテストしてください。
Configの動作:ルールの順序とFINALのフォールバック
Configでは「ルールを有効にすれば自動で正しく動く」とは限りません。重要なのは、現在の設定に何が書かれているか、ルールの順序、ポリシーの指定先です。通常のルールは上から順に照合され、一致すると対応するポリシーが適用されます。そのため、範囲の広いルールより具体的な例外を先に置き、FINALはルール一覧の末尾に置くのが基本です。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
以下は構文を説明するためのルール例であり、完全な設定でも、既存ファイルの置き換えを推奨するものでもありません。example.comは例示用で、実在のサービスを示すものではありません。前のルールに一致しなかった通信は、この例では最終的にPROXYへ送られます。「残りはすべて直接接続」と説明することはできません。
DOMAIN-SUFFIX,example.com,PROXY:このドメインとサブドメインに一致した通信を、PROXYポリシーで処理します。ドメインルールが一致するかどうかは、通信に利用可能なドメイン情報が含まれているかにも左右されます。IP-CIDR,192.168.0.0/16,DIRECT,no-resolve:このIPv4ネットワークに一致した通信を直接接続します。no-resolveは、このIPルールのためにドメインを積極的に名前解決しない指定です。アプリ全体のDNSを無効にするものではありません。GEOIP,CN,DIRECT:IPの位置情報データベースに基づいて照合し、直接接続します。照合結果は宛先IPの位置情報に基づくため、Webページの内容だけではルールに一致するか判断できません。FINAL,PROXY:前のルールに一致しなかった通信に、フォールバックとしてプロキシを適用します。FINAL,DIRECTに変更すると、どのルールにも一致しない通信の接続先も変わります。
普段の利用と一時的な切り分け:一度に変更する条件は1つ
まず、現在のネットワーク、選択中のサーバー、設定ファイル、対象ドメインを記録し、同じ対象への新しい接続で比較します。1回のテストでサーバー変更、ネットワーク切り替え、サブスクリプション更新、ルール変更を同時に行うと、結果が変わっても原因を特定しにくくなります。
手順:普段の設定を保ち、短時間だけ通信経路を比較
普段の利用
- Configを使い、現在の設定とポリシーグループの選択を確認します。
- 問題が起きたら、まず対象ドメインとエラーの内容を記録します。
- 対象に関係するルールだけを変更し、変更前の内容も残します。
一時的な切り分け
- 同じネットワークと同じプロキシ接続先を維持したまま、Proxyに切り替えて再試行します。
- 次にDirectへ切り替え、現在のネットワークから直接接続した場合と比較します。
- 切り替えるたびに新しい接続を確立し、確認後はConfigに戻します。
結論は同じ条件で行った新しい通信に基づいて判断します。ページのキャッシュ、1回の遅延時間、VPNアイコンだけでは、実際の接続先を確認できません。
Configでは失敗しProxyでは成功する場合、対象に一致したルール、対応するポリシーグループ、FINAL、関連するDNS設定を優先して確認します。ConfigとProxyの両方で失敗しDirectでは成功する場合は、まず現在のサーバーに接続できるか、認証情報が正しいかを確認し、その後プロキシ経路の問題を検討します。3つすべてで失敗する場合は、FINALを繰り返し変更するのではなく、ローカルネットワーク、接続先サービスの状態、ドメインの名前解決を確認してください。
直接接続に成功しても、すべての通信をDIRECTに変更すべきとは限りません。特定のネットワーク経路が必要なサービスでは、実際の用途に合わせて該当ルールを維持してください。テストで確認できるのは「このネットワークで、この接続先がどう動作するか」です。1つのサイトでの結果を全通信に当てはめないでください。
Global RoutingとOn Demand・プロトコル・サブスクリプションの違い
Settings → On Demandでは、条件に応じて接続を開始する動作を管理します。Global Routingでは、接続中の通信経路を管理します。前者は「いつ接続するか」、後者は「通信を取り込んだ後にどう処理するか」を決めます。Directに切り替えても接続が残る場合は、通信経路のモードと自動接続条件のどちらが影響しているかを切り分けてください。
- 自動接続を確認する:Settings → On Demandを開き、有効になっている条件を確認します。手動で切断して比較する場合は、関連条件によってすぐ再接続されないことを先に確認し、テスト後に元の設定へ戻してください。
- プロトコル設定を確認する:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは、プロトコルの選択肢です。Proxyに切り替えても、サーバーアドレス、ポート、認証情報、TLSパラメーターが自動で設定されるわけではありません。
- サブスクリプションの更新を確認する:サブスクリプションは、主にサービス提供元のサーバー情報を取得・管理するためのものです。サーバー一覧の更新に成功しても、Configのルールが現在の用途に合っているとは限りません。同様に、ルールが正しくてもサブスクリプションURLにアクセスできるとは限りません。
- DNSを確認する:ドメインの名前解決は、通信経路を選ぶ前提となる重要な処理です。名前解決の失敗とプロキシ接続のハンドシェイク失敗は別の問題です。エラー内容や通信記録を確認し、「Webページが開かない」という理由だけでモードを切り替えないでください。
サブスクリプションを利用している場合は、サービス提供元が案内する正確な設定値を優先してください。ポートを推測したり、別のプロトコル用の認証項目を流用したりしないでください。サブスクリプションURLにアクセス情報が含まれる場合、トラブルの画面を共有する前にURL全体、トークン、認証情報を隠してください。
よくある質問:接続後も期待どおりに動作しない場合
VPNアイコンが表示されているのに、対象への通信が直接接続されるのはなぜですか?
Home → Global Routingを開き、Directが選択されていないか確認します。Configを使っている場合は、対象に一致するポリシーがDIRECTになっていないか確認してください。システムの接続状態が示すのはトンネルの状態であり、個々の通信がプロキシサーバーを経由していることではありません。
Proxyに切り替えるとアクセスできるようになりました。このまま使い続けてもよいですか?
用途に応じて選べますが、Proxyではルールによる振り分けが同じようには行われず、本来直接接続する通信もプロキシ経由になることがあります。普段から通信を振り分ける場合はConfigに戻し、該当するルールとポリシーグループを確認してください。一時的なテスト結果をそのまま恒常的な設定にしないようにしましょう。
ルールを変更したのに、現在表示中のWebページに変化がないのはなぜですか?
まずConfigで、変更したファイルが現在選択されていることを確認し、Global RoutingがConfigになっているか確認します。対象ページの既存の接続を終了してから再アクセスしてください。必要に応じてShadowrocketを再接続します。キャッシュされたページを再読み込みするだけで、ルールの適用を判断しないでください。
Directと接続スイッチをオフにするのは同じですか?
違います。Directは接続中に通信を直接接続させるモードで、接続スイッチをオフにすると現在の接続が終了します。トンネルを使わない状態と明確に比較する場合は、Settings → On Demandの起動条件を確認してから手動で切断し、システム設定で実際の接続状態を確認してください。