Shadowrocketで日常的にサイトごとの通信を振り分けるなら、まずConfigを選び、現在の設定とルールが参照するポリシーを確認します。Proxyは一時的にすべての通信をプロキシ経由にする場合や比較検証に、Directは直接接続との比較に使います。利用者自身が用意したサービスとサブスクリプションがあることを前提に、選択画面、ルールの書き方、検証手順を解説し、ルーティングモード、接続スイッチ、On Demandの役割を整理します。
結論:ルールに従って振り分けるならConfig
Global Routingは、Shadowrocketが処理する接続の経路を決めます。Configは現在の設定にあるルールに従ってポリシーを選択します。Proxyは通常の振り分けルールを個別に適用せず、一律でプロキシを使用します。Directは一律で接続先に直接接続します。ここでいう「すべて」はアプリが処理する接続の範囲を指し、端末上のあらゆるシステム通信が必ず同じ経路を通るという意味ではありません。
Config
おすすめ現在有効な設定のルールに従って判定します。ルールではDIRECT、REJECT、または設定内に存在するプロキシポリシーを指定できます。「どのルールにも一致しない通信は必ず直接接続する」とは限りません。
向いている用途:振り分け設定があり、一部のサイトはプロキシ経由、ほかは直接接続にしたい場合。
Proxy
処理対象の接続をすべてプロキシ経由にします。切り替える前に、選択中のプロキシが使えることを確認してください。アドレス、ポート、認証情報の不備を直すためのモードではありません。
向いている用途:一時的にすべてをプロキシ経由にする場合や、Configと比較してルールの問題を調べる場合。
Direct
処理対象の接続をプロキシ経由にせず、接続先へ直接接続します。これは経路の選択であり、Shadowrocketの接続スイッチをオフにすることとは異なります。
向いている用途:現在のネットワークから接続先へ直接つながるか確認する場合や、一時的に直接接続する場合。
Configをおすすめできるのは、設定が実際の要件に合っている場合です。設定内でFINALがプロキシを参照していれば、先行ルールに一致しない接続もプロキシ経由になります。FINALがDIRECTを参照している場合に限り、直接接続になります。モード名だけでは、特定のサイトが最終的にどの経路を使うか判断できません。
手順:Homeで設定を選び、現在の内容を確認する
Home、Config、Settingsの役割を区別しましょう。Homeでは日常的な接続先の選択とGlobal Routingの確認、Configではルール設定の管理、SettingsではOn Demandを含むアプリ設定を行います。サブスクリプションに含まれる接続項目と、振り分けルールを含む設定ファイルは、別々に確認する必要があります。
- Homeを開き、利用可能な接続項目があることを確認します。自分のサブスクリプションを使う場合は、先にインポートしてください。アドレス、ポート、認証情報は、利用中のサービス提供元から案内された内容を確認します。
- Configを開き、振り分けに使う設定が選択されていることを確認します。ファイルをインポートしただけでは不十分です。現在有効な設定がそのファイルであることを確かめてください。
- Homeに戻り、Global RoutingでConfigを選択します。経路の違いを調べるだけなら、一時的にProxyまたはDirectを選んでも構いません。
- Homeに戻り、選択中のプロキシを確認してから接続スイッチをオンにします。初回接続時は、Appleのシステム表示に従ってVPN構成を許可してください。
- プロキシ経由になる想定の接続先と、直接接続になる想定の接続先をそれぞれ開き、新しい接続で適用されたルールを確認します。接続スイッチがオンかどうかだけで判断しないでください。
一覧にSceneが表示されても、Configの別名だと考えないでください。Sceneは場面に応じて選択する機能です。シーンの条件と関連設定を別途確認する必要があります。この記事の比較手順ではConfig、Proxy、Directを使い、シーン切り替えという変数を加えないようにします。
Configの仕組み:ルールの順序とFINALで結果が決まる
Configは「プロキシが必要なサイト」を自動判定するスイッチではありません。現在の設定にある照合ロジックを実行し、まずルールの対象を確認してから、一致したルールが指定するポリシーを適用します。DOMAIN-SUFFIXはドメインの末尾、IP-CIDRはアドレス範囲、GEOIPはIPの地理データベース上の分類を照合します。FINALは、それまでのルールに一致しなかった場合のフォールバックです。
以下はルール構文の例であり、完全な設定や接続情報の代わりにはなりません。現在の設定にPROXYという有効なプロキシポリシーが定義されていて、例にあるドメインとそのサブドメインだけをそのポリシー経由にし、ほかは直接接続する場合、次のように記述できます。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
この例では、example.comとwww.example.comはどちらも最初のルールに一致します。一方、notexample.comは似た文字列を含むだけでは一致しません。PROXYは現在の設定内で有効なポリシーとして解決できる必要があります。ルールに名前を書くだけで、対応する出口が設定されていない状態では使えません。ルールの詳しい構成は設定ファイルの説明をご覧ください。
FINAL,DIRECTを具体的なドメインルールより先に置くと、意図した順序で照合されません。よくある誤解として、FINALをPROXYに変更した後も「Configなら残りは直接接続」と考えてしまうケースがあります。モードが同じでもフォールバックのポリシーは変わり、一致しなかった通信の経路も変わります。
- DOMAIN-SUFFIXはドメイン末尾を基準にするルールです。ページが読み込む別のドメインまで対象になるとは限りません。
- IP-CIDRはアドレス範囲を扱うため、ドメイン末尾のルールの代わりにはなりません。DNS解決が必要かどうかは、リクエスト形式とルールのオプションによって異なります。
- GEOIPは接続先IPとデータベース上の分類に依存します。ページの内容やドメインの見た目から、一致するかどうかを推測しないでください。
- REJECTは通信を拒否するポリシーです。接続先が拒否された場合は、プロキシを変えるだけでなく、該当ルールに一致していないか確認してください。
比較して原因を調べる:Proxyでは開けるのにConfigでは開けない
この現象が起きたら、ネットワーク、プロキシ、接続先を同じに保ち、Global Routingだけを切り替えます。そうすることで、複数の条件を同時に変えず、経路選択の違いを切り分けられます。以下は再現確認に使える比較手順であり、すべてのサイトへの接続を保証するものではありません。
同じ接続先で2回比較する
1回目:Proxy
- Homeで同じプロキシを選んだままにします。
- Home → Global Routingを開き、Proxyを選択します。
- 接続先に再度リクエストし、接続できるか記録します。
- 失敗した場合は、まずプロキシへの接続状態とプロトコルのパラメータを確認します。
2回目:Config
- プロキシとネットワークは変えず、Configに切り替えます。
- 同じ接続先に再度リクエストします。
- その接続に適用されたルールとポリシーを確認します。
- FINALと、ルールが参照するポリシーが想定どおりか確認します。
Proxyでは成功しConfigで失敗する場合は、まずルールとポリシーを確認します。両方で失敗する場合、振り分けルールだけが原因とは限りません。
切り替え後は新しい接続を確認してください。ブラウザやほかのアプリが既存の接続を再利用することがあり、開いているページにキャッシュ済みの内容が表示される場合もあります。一度の再読み込みでは新しいモードが反映されたか判断できないことがあります。接続先のページを閉じて開き直し、アプリ内の接続履歴もあわせて確認してください。複数のドメインから素材を読み込むページでは、メインのページ表示と画像やログインAPIなどのリクエスト失敗を分けて考えます。
- まず選択中のプロキシを確認します。モードを切り替える際に別の接続項目へ変更すると、比較の意味がなくなります。
- 次に照合対象を確認します。実際のリクエスト先が別のサブドメインや独立したドメインの場合、既存のDOMAIN-SUFFIXでは対象にならないことがあります。
- 最後に出口を確認します。正しいルールに一致しても失敗する場合は、そのルールが参照するポリシーで想定したプロキシが選ばれているか確認してください。
Proxyでも接続できない場合は、利用中の接続情報にあるアドレス、ポート、認証情報と、プロトコルに必要なパラメータを確認してください。たとえば設定でポートを443に指定しているなら、接続先の待ち受けポートと一致している必要があります。ポート番号だけではTLSが正しく有効かどうかも、サービスに到達できるかどうかも判断できません。元のパラメータの問題を隠すために、ポートを適当に変更しないでください。
よくある質問:Direct、サブスクリプションの更新、On Demand
Directを選んだのに、システムにVPN接続が表示されるのはなぜですか?
Directで変わるのは出口のポリシーであり、接続スイッチではありません。接続を停止するにはHomeで接続スイッチをオフにします。その後、自動的に再接続する場合はSettings → On Demandで接続条件を確認してください。VPNの表示があるかどうかだけで、個々のリクエストがプロキシ経由か判断しないでください。
サブスクリプションを更新すると、Configのサイトルールも更新されますか?
まず更新された対象を確認してください。接続用サブスクリプションの更新とルール設定の更新は別のものです。利用中のサブスクリプションを更新した後、Homeで接続項目を、Configで現在の設定内容と使用中のポリシーを確認します。サブスクリプションの更新に成功しただけで、ルールも変更されたと判断しないでください。
Proxyを使い続ければ、ルールを気にしなくてよいですか?
Proxyではすべての接続をプロキシ経由にできますが、Configで設定したドメインルールに従って直接接続とプロキシ経由を振り分けることはありません。特定のサイトを振り分けるには、Home → Global RoutingでConfigを選び、現在の設定とFINALを確認してください。一時的な検証モードを使っただけで、ルールの問題が解決したとは限りません。
On Demandを有効にすると、自動でConfigが選ばれますか?
自動接続とルーティングの選択は別の機能です。Settings → On Demandでは条件に応じて接続を開始する設定を行い、Global Routingでは接続後の経路を決めます。設定後はそれぞれを個別に確認し、条件によって接続が開始された後、実際のモードと接続先に適用されたポリシーを再確認してください。
プロトコルとルーティングも分けて考える必要があります。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは接続設定に関するプロトコルの選択肢です。Config、Proxy、Directはルーティングモードです。Proxyを選んでもプロトコルは変わりません。ルールを変更しても、認証情報の誤りは修正できません。具体的なパラメータは、利用中のサービスの設定に照らして確認してください。
日常利用のチェックリスト
再現可能な方法で検証したら、実際の要件に合うモードを選んでください。設定に従って振り分ける場合はConfigに戻します。処理対象の接続をすべてプロキシ経由にしたいことが明確な場合に限り、Proxyを使い続けてください。Directではプロキシを経由しません。また、アプリの接続自体が停止したことを意味しません。
- Home:選択中のプロキシが想定どおりで、接続状態も確認済み。
- Home → Global Routing:現在のモードが要件に合い、検証用の一時設定も残っていない。
- Config:現在有効な設定が正しく、具体的なルールがFINALより前にあり、ポリシー名も定義されている。
- Settings → On Demand:自動接続の条件が実際の要件に合い、手動テストと混同していない。
- 検証結果:プロキシ経由になる想定のリクエストと直接接続になる想定のリクエストを1件以上ずつ確認し、新しい接続の照合経路も確認した。
ShadowrocketはAppleプラットフォーム向けの有料クライアントで、主にiPhoneとiPadで利用できます。入手先はApp Storeのみです。システム要件はApp Storeの掲載内容をご確認ください。クライアントの買い切りと接続サービスのプランは別です。この記事のルーティング解説は、利用者自身が用意したサービスとサブスクリプションを前提としています。初期設定についてはGlobal Routingの使い方を、接続に問題がある場合は接続トラブルの対処方法をご覧ください。