Shadowrocketの使い方|Global RoutingのConfig・Proxy・Directの違い

Global RoutingのConfig・Proxy・Directを解説。ルールに従って振り分けるConfigを日常利用におすすめする理由と、Proxy・Directで一時的に切り分ける方法を紹介します。

この記事の概要

接続情報とルール設定がそろっている場合、日常利用ではConfigを選びます。ルールによる振り分けに疑いがあるときはProxyと比較し、現在のネットワークから直接アクセスできるか確認するときはDirectを試します。ご自身で用意したサービスやサブスクリプションを使うことを前提に、選択手順、ルールの優先順位、変更項目を一つずつに絞る切り分け方法を説明し、ルーティング方式、接続スイッチ、On Demandの違いも整理します。

1. Config・Proxy・Directで変わること

Global Routingは、Shadowrocketが処理する通信のルーティング方法を決めます。接続サービスを提供する機能でも、プロトコルを選択する機能でもありません。日常利用でConfigを選ぶには、現在の設定が有効で、ルールが実際の用途に合っており、ルールで参照するポリシーやポリシーグループが利用可能である必要があります。これらの条件がそろっていなければ、Configに切り替えるだけで適切に振り分けられるわけではありません。

Config

おすすめ

現在の設定にあるルールに従って照合し、PROXY、DIRECT、REJECT、または設定内で定義されたポリシーグループを適用します。具体的なルールに一致しない通信は、FINALなどのフォールバック設定で処理されるため、自動的にDIRECTになるとは限りません。

適した用途:適切なルールがあり、接続先ごとに処理を分けて日常利用する場合。

Proxy

処理対象の通常の通信をまとめてプロキシ経由にします。Configの振り分けルールを一つずつ適用して出口を決める方式ではありません。選択中の接続が利用可能かどうかは、引き続きアクセス結果に影響します。

適した用途:プロキシ経由の経路を一時的に確認する場合や、Configと比較して振り分けの問題を切り分ける場合。

Direct

処理対象の通常の通信をDIRECTで処理し、プロキシサーバーを経由しません。接続先を開けるかどうかは、現在のネットワークから実際に到達できるかによります。

適した用途:直接接続が正常か確認する場合や、ローカルネットワークからのアクセスを一時的に検証する場合。

ここでいう「すべて」はルーティング方式を指し、端末上のすべてのネットワークパケットが必ず同じ経路を通るという意味ではありません。システム通信、設定内のバイパス指定、DNSの処理などは、それぞれ異なる動作をする場合があります。リクエストの実際の経路を判断するには接続ログも確認してください。画面上のVPN状態だけから推測することはできません。

2. Homeで方式を選び、テスト条件をそろえる

iPhoneとiPadでは、Home → Global RoutingからConfig、Proxy、Directを選択できます。Sceneも表示される場合、これはシーンごとに使う別の方式で、Configの別名ではありません。比較条件にシーン設定が影響しないよう、ここでは上記の3項目に絞ります。画面のレイアウトは、実際にインストールされているアプリをご確認ください。

  1. Homeを開き、SERVERリストにご自身の接続情報が登録されていることを確認します。プロキシをテストする場合は、使用する接続が選択されていることも確認してください。
  2. Configを開き、使用中の設定を確認します。ファイルが存在するだけでは、現在有効な設定とは限りません。選択状態になっていることを確認してください。
  3. Home → Global Routingに戻ってConfigを選び、再びHomeに戻って表示を確認します。
  4. 接続スイッチをオンにします。初回はシステムの案内に従ってVPN構成の追加を許可し、その後、許可が完了したかだけでなく、接続状態も確認してください。
  5. テストする完全なURLを一つ決め、現在のネットワーク、選択中の接続、ルーティング方式を記録します。以降の比較では条件をそろえ、設定を一度に一つだけ変更してください。
3項目
比較対象:Config / Proxy / Direct
2段階
選択場所:Home → Global Routing
1項目
各テストで変更するのは一つの条件だけ

HomeのConnectivity Testは、接続先への基本的な到達性を判断する参考になります。ただし、テストが成功しても、対象サイトのDNS、TLS、実際のリクエストがすべて正常とは限りません。実際のURLを開いて確認してください。テストの遅延を、そのままWebページの読み込み速度とみなさないようにしましょう。

3. Configではルールの順序とFINALを確認

Configの役割は「サイトの種類を自動判定する」ことではなく、現在の設定を実行することです。通常のルールは上から順に照合され、最初に一致したルールのポリシーが適用されます。そのため、個別の例外は対象範囲の広いルールより前に置き、FINALは最後に配置します。以下は説明用の例で、ドメインはサンプルです。利用可能な接続サービスを示すものではなく、設定全体にそのまま置き換えて使用しないでください。

[Rule]
DOMAIN,account.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

DOMAINとDOMAIN-SUFFIXはドメイン範囲を、IP-CIDRは指定したIPアドレス範囲を扱います。GEOIPはIPアドレスの地理情報に基づいて照合します。ドメイン系とIP系のルールを併用する場合は、実際のリクエストにドメイン情報が含まれるか、名前解決がいつ行われるか、ルールのオプションも考慮してください。誤った振り分けが見つかったら、重複ルールをむやみに追加せず、まず一致したルールを確認します。

4. ProxyとDirectで比較テストを行う

切り分けを始める前に、問題が「特定の接続先だけ開けない」のか、「すべての接続先で異常がある」のかを明確にします。ProxyとDirectを使うと、ルールによる振り分けという条件を取り除いて比較できますが、正しい設定を恒常的に置き換えるものではありません。2つのテストでは同じネットワークと接続先URLを使い、Proxyで比較するときは選択中の接続も変えないでください。

比較方法:ネットワークと接続先を固定し、ルーティング方式だけを切り替える

ConfigとProxyを比較
  • まずConfigで問題を再現し、対象のドメインを記録します。
  • Proxyに切り替え、同じリクエストをもう一度実行します。
  • Proxyでは正常でConfigでは失敗する場合、ルールの照合結果、ポリシーグループの選択、FINALを重点的に確認します。
  • どちらも失敗する場合は、接続設定、DNS、接続先の状態、現在のネットワークを続けて確認します。
ConfigとDirectを比較
  • DIRECTで接続できると想定される接続先を選び、まずConfigでの結果を記録します。
  • Directに切り替え、同じリクエストをもう一度実行します。
  • Directでは正常でConfigでは失敗する場合、接続先が誤ってプロキシまたはREJECTに振り分けられていないか確認します。
  • Directでも失敗する場合は、現在のネットワークからその接続先に直接アクセスできるか確認します。

比較結果から原因の範囲を絞ることはできますが、それだけで障害の原因を特定することはできません。テスト後はConfigに戻し、対象のリクエストが想定したルールで処理されることを確認してください。

たとえば、Configでは失敗しProxyでは成功する場合、ドメインルールが不足している可能性も、Configが参照するポリシーグループで別の接続が選ばれている可能性もあります。ルールの照合結果と実際の出口を対応させて、原因を切り分けてください。同じテスト中にネットワーク、接続、DNSを同時に変更すると、どの変更が結果に影響したか判断できません。

5. 接続スイッチ、On Demand、サブスクリプション更新を混同しない

Global Routingは「接続確立後に通信をどう処理するか」を決め、Homeのスイッチは「現在接続が有効か」を示します。Directもルーティング方式の一つであり、VPNをオフにすることとは異なります。同様に、Proxyを選んでも接続スイッチがオンになるわけではありません。それぞれの状態を個別に確認してください。

サブスクリプションの更新後に問題が起きた場合は、まず選択中の接続が残っているか、接続情報が更新されているかを確認し、次にルールが参照するポリシーグループを確認します。設定の参照先に問題があるのに、Global RoutingをProxyのまま使って対処しないでください。本来DIRECTにすべきリクエストまでプロキシ経由になる可能性があります。

6. よくある質問:方式を正しく選んでも開けないとき

Configを選んだのに、すべてのサイトがプロキシ経由のように見えるのはなぜ?

Configを開いて現在のファイルを確認し、まず末尾がFINAL,PROXYになっているかを見ます。続いて、前方に広い範囲を対象とするルールがないか、関連するポリシーグループで何が選択されているかを確認してください。Configは設定に従って処理する方式であり、プロキシ経由の通信量が一定になることを保証するものではありません。

Proxyでは開けるのにConfigでは開けません。接続に問題はないと考えてよいですか?

そのリクエストがProxyで使われる経路では完了できたことを示しますが、ほかの接続に問題がないとは限りません。Configに戻って、対象に適用されたポリシーを確認してください。ポリシーグループが別の接続を使用している場合は、出口をそろえてから比較します。そうしないと、ポリシーグループの違いをルール構文の誤りと取り違えるおそれがあります。

Directに切り替えてもVPNの表示が残ります。接続をオフにするには?

Directで変わるのは通信の処理方法です。接続を停止するにはHomeに戻って接続スイッチをオフにし、Settings → On Demandの条件によって再接続されないか確認します。VPNの表示は接続状態を確認する参考にはなりますが、特定のリクエストがプロキシサーバーを経由したことを示すものではありません。

方式を切り替えてもWebページの結果が変わりません。何度も再接続する必要がありますか?

まずリクエストをもう一度実行し、必要に応じてテスト対象のアプリを終了してから開き直します。既存の接続やキャッシュ済みのページが再利用されるのを避けるためです。それでも変化がなければ、Home → Global Routingで選択内容が保持されていることを確認し、実際のリクエスト記録を調べます。スイッチを次々に切り替えるより、各テストの結果を記録するほうが原因を特定しやすくなります。

7. 日常利用に戻す前の確認

切り分けが終わったら、一時的に選んだ方式を通常使うConfigに戻し、ルールとポリシーグループの状態を確認します。そのうえで、DIRECTにする想定の接続先とプロキシ経由にする想定の接続先を一つずつテストしてください。Webページが開くことに加え、ルールの意図どおりの出口になっているかも確認が必要です。問題が続く場合は、トラブルシューティングガイドを参照し、接続、DNS、ルールの問題を切り分けてください。

  1. Home → Global Routing:ProxyやDirectのままになっていないことを確認し、Configを選択します。
  2. Config:現在の設定とFINALのフォールバック先を確認し、一時的に追加したルールを残す必要があるか検討します。
  3. Home:選択中の接続とポリシーグループが想定どおりか確認してから、接続状態を確認します。
  4. Settings → On Demand:自動接続の条件が日常のネットワーク環境に合っていることを確認し、実際のリクエストをもう一度テストします。

ShadowrocketはAppleプラットフォーム向けのクローズドソースの有料アプリで、主にiPhoneとiPadで利用できます。入手先はApp Storeのみです。開発者はShadow Launch Technology Limited、アプリIDは932747118です。システム要件、互換性、ユニバーサル購入の対象範囲はApp Storeのページをご確認ください。アプリの買い切り購入と接続プランは別のものです。接続情報とルール設定は、それぞれの用途に応じて管理してください。

App Storeの正規アプリページ購入前に開発者名とアプリIDを確認