ShadowrocketのGlobal Routing設定方法|Config・Proxy・Directの使い分け

ShadowrocketのGlobal RoutingにあるConfig・Proxy・Directの違いを解説。Directで接続する場面や、普段Configでルールに沿って振り分ける理由も紹介します。

この記事の概要

Shadowrocketでは、適切なConfigを選び内容を確認したうえで、普段はConfigを使うのがおすすめです。Proxyは一時的にすべての通信をプロキシ経由にする場合や、設定の切り分けに、Directは直接接続との比較に使います。ご自身でサービスやサブスクリプションを用意していることを前提に、切り替え手順、ルールの順序、接続ログの見方、Global RoutingとOn Demandの違いを解説します。

モードを選んだら、実際に適用されるポリシーを確認

Global Routingは、Shadowrocketの処理対象となる接続をどのルーティング方式で処理するかを決めます。ノードのプロトコルを選ぶ機能でも、サブスクリプションを更新する機能でもありません。Homeでノードを選ぶ、Configで設定を選ぶ、Global Routingでモードを選ぶのは、それぞれ関連しつつも別の操作です。どれか一つだけ変更しても、期待した結果にならないことがあります。

Config

おすすめ

現在有効なConfigのルールに従ってポリシーを選択します。適用先はDIRECT、PROXY、REJECTのほか、Configで定義されたポリシーグループの場合もあります。先行するルールに一致しない場合の処理は、FINALの設定によって決まります。

適した用途:Configの内容を確認済みで、宛先ごとに処理を分けたい日常利用。

Proxy

処理対象の接続を一律にプロキシ経由にします。Configの通常の振り分けルールによる直結・プロキシの選択は行いません。接続できるかどうかは、現在のプロキシ、接続先サービス、ネットワーク環境によって異なります。

適した用途:一時的にすべての通信をプロキシ経由にする場合や、Configと比較してルールを調べる場合。

Direct

処理対象の接続を直接接続します。選択中のプロキシノードを経由しません。Shadowrocketの接続スイッチをオフにすることとは異なり、関連するネットワーク設定がすべて元に戻るわけでもありません。

適した用途:現在のネットワークから接続先にアクセスできるか確認する場合や、短時間の直結比較。

ここではよく使われる3つのモードを比較しています。Global Routingの選択肢が3つだけという意味ではありません。Sceneではシーンの条件に応じてルーティングを適用できます。最初の切り分けではConfig、Proxy、Directのいずれかに固定し、シーン条件の変化による混乱を避けましょう。

切り替え手順:Homeから確認し、接続を再テスト

切り替える前に、現在のモード、選択中のノード、有効なConfigを記録します。サブスクリプションやノード情報はご利用のサービス提供元から入手してください。アプリを購入しても、接続先が自動で用意されるわけではありません。Homeに利用可能なノードがない場合は、Global Routingを何度も切り替えるのではなく、手元のサブスクリプションを読み込んで更新してください。

  1. ノードを確認

    Homeを開き、現在選択しているノードがご自身のサブスクリプションに含まれていることを確認します。ノードのアドレス、ポート、認証情報がそろっているかも確認してください。接続テストの結果は、そのテスト条件での状態を示すもので、目的のWebサイトに実際にアクセスできることを保証するものではありません。

  2. Configを確認

    Configを開き、現在有効な設定を確認します。特に、対象ドメインのルールとFINALを確認してください。サブスクリプションを読み込んだだけでは、日常利用に適した振り分け設定が選ばれているとは限りません。

  3. モードを選択

    Home → Global Routing → Configの順に開き、ルールに沿った処理に切り替えます。一時的に比較する場合も同じ画面でProxyまたはDirectを選択し、ノードとConfigを同時に変更しないでください。

  4. 再テスト

    接続先のアプリに戻り、リクエストを新たに実行します。既存の接続状態が引き継がれる場合は、必要に応じて接続先アプリを終了して再起動してください。それでも原因が分からない場合は、Shadowrocketを一度切断して再接続し、もう一度テストします。

  5. 通常の設定に戻す

    各モードでのアクセス結果と接続ログを記録します。切り分けが終わったらHome → Global Routing → Configに戻し、Configとポリシーグループが意図した選択になっていることを確認してください。

切り替え後に新しいリクエストが見当たらない場合は、まず接続先アプリが実際にネットワークリクエストを送信したか確認します。キャッシュされたページ、バッファリング済みの動画、再利用中の長時間接続などにより、画面上で変化が見えないことがあります。それだけでGlobal Routingが適用されていないとは判断できません。

Configの基本:ルールは順番に照合され、すべてを自動判定するわけではない

Configの動作はルールの内容で決まります。通常はルールの順番に照合され、最初に一致したルールのポリシーが適用されます。そのため、個別の例外は範囲の広いルールより前に置き、FINALは末尾に配置します。Configだからといって、特定の地域は直結し、それ以外はプロキシ経由になるとは限りません。分類されていない宛先がすべてプロキシ経由になる保証もありません。

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

以下は説明用のルール例であり、完全なConfigでもサブスクリプションのURLでもありません。最初の行には例示用ドメインを使っています。PROXYの実際の出口は、現在選択されているプロキシとConfig内のポリシーをあわせて確認してください。この例を、使用中のConfig全体にそのまま置き換えないでください。

キーワード照合対象この例での意味
DOMAIN-SUFFIXドメインのサフィックスexample.comとそのサブドメインにPROXYを適用します。URL全体のパスを照合するルールではありません。
IP-CIDRIPv4アドレス範囲宛先が192.168.0.0/16に含まれる場合はDIRECTを適用します。no-resolveは、このルールの照合のためにドメイン名を追加で解決しないことを示します。
GEOIPIPアドレスの地理的分類CNに分類された宛先IPにDIRECTを適用します。分類結果は使用するデータに依存します。
FINAL先行ルールに一致しなかった接続この例では最後にPROXYを適用します。DIRECTと記述すると、一致しなかった通信は直接接続されます。

そのため、「Configを選んだのに宛先が直接接続される」場合は、ノードの不具合と決めつける前に、まず一致したルールとFINALを確認します。接続ログで先にある範囲の広いルールへの一致が分かった場合は、ルールの順序を変更するか、照合範囲を見直します。ポリシーグループが選ばれている場合は、そのグループで現在どの出口が選択されているかも確認してください。

日常利用とトラブルシューティング:条件を固定して比較

使い分けの基本:普段はルールに従い、問題発生時は条件を一つずつ比較

普段はConfigを使用
  • 内容を確認したConfigを使い続け、FINALの処理方法を確認します。
  • プロキシが必要な宛先にはプロキシのポリシーを、ローカルアクセスが必要な宛先にはDIRECTを適用します。
  • サブスクリプションの更新後、ノード名の変更がポリシーグループの参照に影響していないか確認します。
問題が起きたらモードを切り替えて比較
  • 同じネットワーク、同じノード、同じ接続先を保ち、モードだけを切り替えます。
  • まずConfigとProxyを比較し、必要に応じてDirectも確認します。
  • 切り替えるたびに新しい接続を試し、エラーと実際に適用されたポリシーを記録します。

Proxyではアクセスでき、Configではできない場合、ルール、ポリシーグループ、関連するConfigの違いに調査範囲を絞れます。ただし、この結果だけで原因を一つに特定することはできません。

たとえば同じ宛先への新しい接続がProxyでは成功し、Configでは失敗し、ログにDIRECTが選択されたと表示される場合は、まず対象ドメインのルールが不足していないか、先行ルールに一致していないかを確認します。どちらのモードでも同じプロキシ出口を使って失敗する場合は、サーバーの設定値、ネットワークからの到達性、接続先サービスの状態をさらに確認してください。

Directは直接接続の比較基準として使えますが、Shadowrocketの処理環境内での接続です。接続を有効にしていない状態のネットワーク動作を調べるには、接続スイッチをオフにして別途テストし、On Demandによって接続が再開されていないか確認します。この2種類のテスト結果を一緒に記録しないでください。

On DemandとScene:接続条件と振り分けルールは別の設定

Settings → On Demandでは、条件に応じて接続を確立する設定を確認します。Global Routingは、接続中の通信をどのように処理するかを決めます。前者は「いつ接続するか」、後者は「接続後にどの経路を使うか」を決める設定です。On Demandを有効にしても、DOMAIN-SUFFIXルールが追加されたり、サブスクリプション内のノード設定が自動修正されたりするわけではありません。

On Demandを使っても、利用できないネットワークが使えるようになるわけではありません。Wi-Fiとモバイル通信を切り替えると、出口IPアドレス、DNSの結果、ネットワークによる通信プロトコルの制限が変わる場合があります。ルーティングモードの影響を調べる際は、まず同じネットワーク内で比較し、その後、ネットワークを変えて再テストしてください。

切り分け記録:ルーティング、ポート、プロトコルを分けて確認

Global Routingを変更しても、ノード自体のプロトコルは変わりません。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは、認証や通信に必要な条件が異なります。ノードの設定値はサービス提供元の案内に従ってください。ConfigからProxyに切り替えても、不足している認証情報が補われたり、プロトコルが別のものに変換されたりすることはありません。

4種類
この記事のルール例:DOMAIN-SUFFIX / IP-CIDR / GEOIP / FINAL
443
HTTPSで一般的に使われる宛先ポート。すべてのプロキシサーバーのポートを示すものではありません。
53
従来のDNSでよく使われるポート。暗号化DNSでは別のポートを使うことがあります。

接続先のポートとプロキシサーバーのポートは別のものです。HTTPSサイトへのアクセスでは宛先ポートに443が使われるのが一般的ですが、ノード接続に使うサーバーポートはサービス提供元の設定値に従ってください。サイトが443を使うからといって、ノードのポートも同じ値に変更する必要はありません。DNSも別に確認しましょう。ドメイン名の解決に失敗している場合、接続先への通信はまだ確立されていないため、ルーティングモードを切り替えても解決しないことがあります。

確認された現象まず確認する項目次に行うこと
Proxyは成功、Configは失敗一致したルール、ポリシーグループの選択、FINAL失敗した接続が別の出口またはDIRECTを実際に使っていないか確認します。
Directは成功、Proxyは失敗現在のプロキシ設定、到達性、接続先による出口の制限ルールを変更せずに現在のノードを確認し、設定値をサービス提供元に問い合わせます。
3つのモードすべてで失敗ローカルネットワーク、DNS、接続先サービスの状態まず同じネットワークからほかの接続先にアクセスできるか確認し、次に接続ログの具体的なエラーを調べます。
以前に開いたページだけ表示されるキャッシュと確立済みの接続新しいリクエストを実行してから結果を記録します。キャッシュされた内容を接続成功の証拠として扱わないでください。

これらは切り分けの手がかりであり、速度や接続性を保証するものではありません。記録には少なくともネットワークの種類、接続先ドメイン、Global Routingのモード、一致したルール、選択された出口を含めてください。サブスクリプションのURL、認証情報、個人のアクセス履歴を含むログを公開しないでください。

よくある疑問:Configをおすすめする前提条件

Configを確認していなくても、Configを選べばよいですか?

まず現在のConfigを確認してください。Configはルールに沿って処理するモードです。ルールが不完全だったり、順序が適切でなかったり、FINALが想定と異なったりすると、結果に影響します。普段の利用にConfigをおすすめできるのは、どのConfigが有効かを把握し、プロキシ経由と直接接続の振り分け方を理解していることが前提です。

ProxyはConfigより必ず速いですか?

そうとは限りません。最終的に同じプロキシ出口を選ぶ場合、通信経路の大部分は同じ可能性があります。一方、Configで宛先にDIRECTが適用される場合は経路が異なります。速度はネットワーク、サーバーの負荷、接続先サービスにも左右されるため、モード名だけで比べず、実際に使われた出口を確認してください。

サブスクリプションを更新すれば、すべての振り分けルールが自動で修正されますか?

いいえ。ノードのサブスクリプション更新とConfigのルール管理は別の作業です。更新後はノードが引き続き使えるか、ポリシーグループの参照先が合っているかを確認し、有効なConfigも別途確認してください。新しいサブスクリプションやノード情報が必要な場合は、ご利用のサービス提供元から入手してください。

Directなら、接続スイッチを確認しなくてもよいですか?

いいえ。Directはルーティングの選択で、接続スイッチとは別の状態です。有効時と無効時のネットワーク動作を比較する場合は、Directの状態と接続をオフにした状態を分けて記録します。自動接続によってテスト条件が変わらないよう、Settings → On Demandも確認してください。

Shadowrocket 正規版ガイドまずApp Storeの情報を確認 →