ShadowrocketのGlobal Routingの選び方:Config・Proxy・Directの違い

ShadowrocketのGlobal RoutingにあるConfig・Proxy・Directの違いを解説。通信経路や用途、普段の設定の選び方を紹介します。

この記事の要点

利用中のサーバーやサブスクリプションがあり、ルールによる振り分けと全体的なプロキシ利用を使い分けたい場合は、まず次の点を押さえましょう。Configは現在の設定に従って通信先を決め、Proxyは対象となる通常の通信をプロキシ経由にし、Directはそれらを直接接続します。普段は内容を確認したConfigを使い、問題の切り分けではサーバーとテスト先を固定してGlobal Routingだけを変更し、新しい接続の処理結果を確認します。

Global Routing・サーバー・接続スイッチを区別する

Global Routingが決めるのは通信の処理方法であり、サーバーのアドレスや接続のオン/オフではありません。Proxyを選んでも、接続が確立して正常に使えるとは限りません。Configを選んでも、現在のネットワークに適したルールがアプリに読み込まれているとは限りません。設定、サーバー、システムの接続状態を分けて確認することで、異なる層の問題を混同せずに済みます。

Shadowrocketでは、Homeでサーバーや接続状態を確認し、Global Routingに移動できます。Configでは設定ファイルを管理します。Configという名前は2つの意味で使われています。1つは設定ファイルの管理場所、もう1つはGlobal Routingで設定に従って通信を処理するモードです。モードを切り替えても、ルールが自動で作成されたり、無効なサーバー情報が修復されたりすることはありません。

3項目
比較する項目:Config / Proxy / Direct
2か所
Homeでルーティングモードを確認し、Configで設定ファイルを管理
1回
各テストでは変更する項目を1つに絞り、新しい接続で確認

Global Routingの一覧にSceneがある場合は、シーンごとにルーティングを選ぶための項目として扱い、別のプロトコルとは考えないでください。シーン設定を使う場合は、実際に適用されているシーンとルーティングの選択内容を確認します。この記事では、Config・Proxy・Directを手動で選ぶ基本的な動作を比較し、Sceneの条件設定には踏み込みません。

Config・Proxy・Directの使い分け

Config:現在の設定に従って処理

おすすめ

通信先は、現在の設定にあるルールとポリシーに従って決まります。ルールではDIRECT、PROXY、または設定内で定義されたポリシーを指定できます。先行するルールに一致しない場合は、FINALで以降の処理が決まります。

適した用途:設定内容を確認したうえで、接続先ごとに通信を振り分ける普段の利用

Proxy:プロキシ経由で接続

Shadowrocketが処理する通常の通信は、通常の振り分けルールで出口を個別に選ぶのではなく、プロキシ経由になります。実際に使うサーバーは別途確認してください。システム通信や除外対象、特殊なネットワーク動作を、単純に「端末上のすべてのデータ」とひとまとめにはできません。

適した用途:一時的にプロキシ経由の通信を確認する、またはルールの影響を比較して問題を切り分ける

Direct:直接接続

対象となる通常の通信は直接接続され、これらの通信の出口としてプロキシサーバーは使われません。アプリの接続状態やDNSなどの設定は別途確認が必要です。Directはアプリの接続を停止するモードではありません。

適した用途:直接接続との比較を行い、現在のローカルネットワークから接続先にアクセスできるか確認する

Configを選ぶには、現在の設定内容を理解している必要があります。Configを「一部のサイトはプロキシ、ほかは必ず直接接続」と単純化してはいけません。設定の末尾がFINAL,PROXYなら、先行するルールに一致しない通信もプロキシ経由になります。一方、Proxyも速度を上げるためのモードではありません。速度はローカルネットワーク、サーバーまでの経路、接続先のサービス、通信負荷によって変わります。

Configのルールを読む:順序とFINAL

ルールは通常、上から順に照合されます。先にある明示的なルールから判定され、先行するルールに一致しなかった場合の処理をFINALが決めます。特定のドメインを調べるときは、設定の最終行だけでなく、実際に一致したルールを確認してください。範囲の広いルールが先にあると、その後の具体的なルールが適用されないことがあります。

[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

以下はルールの一例であり、現在の設定ファイルをそのまま置き換えるための完成版ではありません。example.comはドメイン照合の説明用です。例のPROXYはプロキシポリシーを表します。実際の設定で独自のポリシー名を使っている場合は、その定義と現在の選択を確認してください。例のテキストを使用中の設定にそのまま上書きしないよう注意してください。

ドメインルールとIPルールでは、照合に使う情報が異なります。接続先がすでにIPアドレスの場合、ドメインサフィックスルールでドメイン名が自動的に得られるわけではありません。IPアドレスで照合する場合は、名前解決の結果も判定に影響します。同じWebサイトへの通信経路が変わる場合は、そのリクエストの記録、接続先アドレス、一致したルールをあわせて確認してください。ルールの記述だけから結果を推測することはできません。

iPhoneでルーティングモードを切り替えて確認する

以下の手順は、ご自身で用意したサーバーまたはサブスクリプションをすでに読み込んでいることを前提とします。どのサーバーを選んでいるか分かる状態を保ち、サブスクリプションの更新、サーバーの切り替え、ルーティングの変更を同時に行わないでください。読み込み手順ははじめに、サーバーとサブスクリプションの管理方法はサーバー管理をご覧ください。

  1. Homeを開き、現在選択されているサーバーを確認します。Configを開いて有効な設定ファイルを確認し、ファイル名とFINALのポリシーを記録します。
  2. Homeに戻り、Global RoutingでConfigを選びます。その後Homeに戻って接続状態を確認します。初回接続時は、システムの案内に従って許可を完了してください。
  3. ドメインルールに一致すると分かっている接続先にアクセスし、次にFINALが適用されると予想される接続先にアクセスします。Dataの接続記録で通信先の処理を確認してください。記録の表示場所は現在の画面に応じて確認します。
  4. サーバーは変えずに、Home → Global RoutingでProxyを選び、同じ接続先に新しく接続します。既存の長時間接続のページを再読み込みしただけで結論を出さないでください。
  5. 次にDirectに切り替えて再度テストし、ドメインを解決できるか、接続を確立できるか、ページのリソースがすべて読み込まれるかを記録します。完了したら、通常使う予定のConfigに戻します。

たとえば、Proxyでは新しいリクエストが成功し、Configでは同じリクエストが失敗し、記録上ConfigがDIRECTに一致している場合は、まず該当ルールと直接接続経路を確認します。これは結果の読み取り方の例であり、特定のWebサイトでの実測結果ではありません。反対に、3つのモードすべてで失敗する場合は、ルールファイルを何度も変更するのではなく、まずローカルネットワーク、DNS、接続先サービスを確認してください。

2つの利用場面:普段の振り分けと一時的な診断

設定の選び方:普段の設定と切り分け用の比較を分ける

普段はConfigを使用
  • Configで有効なファイルを確認し、FINALの処理先を確認します。
  • 直接接続する接続先とプロキシを使う接続先で、それぞれ1回ずつ確認します。
  • サブスクリプションを更新した後は、サーバーの選択とポリシーの参照先を再確認します。
一時的にProxy / Directを使用
  • サーバー、テスト先、ローカルネットワークを固定します。
  • Global Routingだけを変更し、その都度新しい接続で確認します。
  • 結果を記録したら元のモードに戻し、診断用の設定をそのままにしないようにします。

まとめ:普段の通信振り分けには、確認可能なConfigを使用します。ProxyとDirectは、問題を切り分けるための明確な比較経路として使います。

端末で自動接続が設定されている場合は、Settings → On Demandも確認してください。On Demandは条件に応じて接続を確立する動作を制御するもので、DOMAIN-SUFFIXやFINALなどのルールに代わるものではありません。切り分け中に接続状態が自動で変わる場合は、Global Routingの動作を判断する前に、この設定を確認してください。

サブスクリプションと設定も分けて考えましょう。サブスクリプションの更新は、利用中のサービスに登録されているサーバー情報を取得するためのもので、現在のルールが修正されることを意味しません。プロトコル名もルーティングモードとは別のものです。サーバーがShadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardのいずれを使用していても、Config・Proxy・Directの基本的な役割は変わりません。

よくある質問:切り替えると結果が変わる理由

Configを選んだのに、すべてプロキシ経由に見えるのはなぜですか?

まずConfigで現在のファイルのFINALを確認し、その前に範囲の広いプロキシルールがないか調べます。ポリシーグループを使っている場合は、グループ内の選択内容も確認してください。異なる接続先に新しいリクエストを送り、Dataで実際の記録を確認します。1つのWebページの結果だけから、すべての通信の状態を判断しないでください。

Proxyなら開けるのにConfigでは開けません。サブスクリプションに問題がありますか?

サーバーは同じまま、Configでその接続先に一致するルールとポリシーを確認します。実際の処理がDIRECTなら、直接接続できるかを確認してください。別のサーバーが選ばれている場合は、該当するポリシーを確認します。プロキシサーバー自体への接続に失敗している場合に限り、サーバーの設定値や、利用中のサブスクリプションが更新された結果を確認してください。

Directなら開けるのにProxyでは開けません。どこを変更すればよいですか?

この結果から分かるのは、現在の直接接続経路で接続先にアクセスできることだけで、プロキシ経由の通信が使えるとは限りません。Homeに戻ってサーバーの選択と接続状態を確認し、サーバーアドレス、ポート、認証情報がご自身の情報と一致しているかを確認してください。サーバー接続の問題を隠すためにFINALを変更しないでください。

遅延の数値は表示されるのに、3つのモードすべてでWebページを開けないのはなぜですか?

遅延の測定結果が示すのは、そのテスト中の状態だけです。ドメイン解決、Webページへの接続、リソースの読み込みがすべて成功したことを意味するわけではありません。まずローカルネットワークを確認し、DNSで有効な結果が得られるかを調べて、「名前解決の失敗」と「接続のタイムアウト」を区別してください。Proxyに切り替えても、誤ったDNSアドレスや接続先サービスの障害が自動で修復されることはありません。

Directを選んだのに、システムに接続中と表示されるのはなぜですか?

Directは通信の処理モードであり、接続を停止するボタンではありません。接続を停止するにはHomeに戻って接続スイッチを操作してください。接続が再び確立される場合は、Settings → On Demandの条件設定を確認します。システムの接続表示だけを、プロキシ経由の通信が有効になっている証拠と考えないでください。

問題の切り分け後に確認する項目

最後に残すべきなのは、説明できる設定の組み合わせであり、「開けたからもう確認しない」という一時的な状態ではありません。普段の利用では、特定のモードに長期間固定して通信経路が分からなくなるより、現在の設定、プロキシポリシー、FINALの処理先を把握しておくことが大切です。Wi-Fiとモバイル通信を切り替えた後も、同じ方法で簡単に再確認できます。

ShadowrocketはAppleプラットフォーム向けの有料クライアントで、主にiPhoneとiPadで使用します。入手先はApp Storeのみです。システム要件、互換性、購入対象の詳細はApp Storeの掲載内容をご確認ください。クライアントの買い切り購入に回線プランは含まれません。サーバーやサブスクリプション機能を使う場合は、ご自身で用意したサービス情報が必要です。

App Storeでダウンロード