ShadowrocketのOn Demand設定|Wi-Fi・モバイル通信・ドメインで自動接続

On Demandの動作条件を解説します。SSIDで自宅と公共Wi-Fiを区別する方法、モバイル通信時の接続動作、ドメイン条件の設定方法、手動操作との関係を紹介します。

この記事の概要

On Demandは、ネットワークの状態に応じてシステムがVPN接続を開始・制御する機能です。リクエストごとの接続先を決めるものではありません。Shadowrocketで利用するサービスを設定済みで、手動接続が正常に動作する方向けに、Wi-Fi・モバイル通信・ドメインの条件を順に設定して確認する方法を説明します。自動接続、ルールによる振り分け、手動切断の違いを把握できます。

On Demandとルールによる振り分けの違い

On Demandはシステムのオンデマンド接続を設定する項目で、Settings → On Demandにあります。設定するのは「いつVPN接続が必要か」であり、「特定のWebサイトをどの経路に通すか」ではありません。スイッチや条件リスト、既定の動作はアプリに現在表示されている内容を確認してください。初回はネットワーク条件を一つだけ有効にし、動作を確認してから例外を追加しましょう。

ルールによる振り分けはトンネル接続後に行われ、HomeのGlobal Routingと現在のConfigで決まります。Configを選ぶと、リクエストは選択した設定に従って処理されます。Proxy、Direct、Sceneは別のルーティング方法であり、On Demandの接続条件ではありません。自動接続しても、すべてのリクエストがプロキシ経由になるわけではありません。また、Directを選んでもシステムVPNが切断されるわけではありません。

ネットワーク条件の変化 システムによる条件の評価 VPN接続の確立 ルーティングポリシーの適用 リクエストの送信

ネットワークの切り替えやドメインの名前解決、その後のネットワークアクセスをきっかけに、システムが条件を再評価する場合があります。動作は保存したルールとシステムの状態によって異なります。On Demandは一定間隔で接続を確認する機能ではありません。トンネルの確立、接続先サービスへの到達、Webページの表示は、それぞれ別に確認してください。

2段階
設定場所:Settings → On Demand
4項目
Global Routing:Proxy / Direct / Config / Scene
3つの条件
この記事で確認する条件:Wi-Fi、モバイル通信、ドメイン

結論:まずトンネルを確認し、次にルーティングを確認

自動接続後もWebページに問題がある場合は、まずシステムVPNの接続状態を確認し、次にHome → Global Routingと現在のConfigを確認してください。On Demandと振り分けルールを同時に変更すると、どの変更が結果に影響したのか判断できません。

設定前に手動接続の基準を確認

手動接続の基準とは、自動接続を無効にした状態で、繰り返し同じ結果を得られる接続状態です。既存のプロトコル設定は変更せず、Homeで設定済みのサービスに一度接続してください。ここでは、利用者が自身のサービスを用意していることを前提とし、サービスの入手先は扱いません。

  1. Settings → On Demandを開き、現在の設定を記録します。トラブルの切り分け中にシステムが再接続しないよう、一時的にオンデマンド接続を無効にしてください。
  2. Homeに戻り、使用するサービスを選択します。Subscribeから読み込んだ場合は、更新結果と実際に選択されている項目を確認してください。リストが更新されても、利用可能な項目が自動的に選択されるとは限りません。
  3. Home → Global Routingを確認します。Configに基づいて振り分ける場合はConfigを選択し、Configで現在使用しているファイルを確認してください。
  4. Homeの接続スイッチをオンにします。初回にシステムからVPN構成の許可を求められた場合は、画面の案内に従ってください。許可が完了しても、接続先サービスへの接続が確立したとは限りません。
  5. 通常どおり直接アクセスできるページと、現在のプロキシ設定が必要な宛先にそれぞれアクセスします。接続状態、エラー内容、使用中のネットワーク種別を記録してください。
  6. 一度切断してから、もう一度接続します。手動接続が不安定な場合は、自動接続を設定する前にアドレス、ポート、認証情報、DNSを確認してください。

Wi-Fi:SSIDでネットワーク条件を指定

SSIDはWi-Fiネットワーク名です。ルーターの管理アドレスやアクセスポイントのハードウェアアドレスではありません。SSIDを指定するときは、端末のWi-Fi情報で名前を確認し、空白、大文字・小文字、記号も含めて正確に入力してください。こうした違いが無視されると決めつけないようにしましょう。

Wi-Fi条件の設定は利用目的によって異なります。たとえば自宅のネットワークではトンネルを自動接続せず、外出先では条件に応じて接続したい場合、自宅のSSIDを例外にできます。すべてのネットワークで接続したい場合は、このような例外を追加する必要はありません。「自宅」は利用者が付けた用途であり、システムが判定する安全性の区分ではありません。

  1. 端末のWi-Fi設定で、現在のネットワーク名を確認します(例:Home-5G)。これは例です。実際のSSIDを入力してください。
  2. Settings → On Demandを開き、現在の画面に表示されるWi-FiおよびSSIDの条件を確認します。まずリストの説明を読み、SSIDが一致する項目を含める設定なのか、除外する設定なのかを確かめてください。
  3. 目的に合わせて対応する動作を選択します。特定のSSIDで自動接続させない場合は、画面が対応している除外または切断の動作を選んでください。「無視」しか選べない場合は、「無視」を「すぐに切断」と解釈しないでください。
  4. 設定を保存してOn Demandを有効にします。そのSSIDに接続した状態で新しいリクエストを一度実行し、別の既知のネットワークに切り替えて同じテストを行います。
  5. アプリが現在のSSIDを取得できない場合は、システムから関連する権限の確認が表示されていないか、また現在のシステムにアクセス制限がないか確認してください。SSIDを識別できない状態では、条件に一致した証拠にはなりません。
テストするネットワーク設定目標の例確認する結果
Home-5G新しいトンネルを自動で確立しない切断後にリクエストを実行し、再接続するか確認
別の既知のSSID条件に合致したときに自動接続システムVPNの状態と宛先へのアクセス結果を確認
Web認証が必要なWi-Fiまずネットワークに接続する認証ページが開くことを確認してから、オンデマンド接続をテスト

公共Wi-Fiでは、接続後にWeb認証が必要な場合があります。その場合、Wi-Fiにつながっていてもインターネットにアクセスできるとは限りません。接続動作が認証ページの表示に影響する場合は、一時的にOn Demandを無効にしてVPNを切断し、ネットワーク認証を済ませてから元の設定に戻してください。同じSSIDが別の場所でも使われている場合があるため、SSIDだけでネットワークの実体を判断したり、安全性を保証したりすることはできません。

モバイル通信:切り替え後の接続を個別に確認

モバイル通信の条件は、端末がモバイルデータ通信を使用しているときのオンデマンド動作を設定するものです。Wi-Fiの条件とは分けて記録してください。既定の設定は現在のアプリ画面で確認します。Wi-Fiから離れた後も条件に応じて接続したい場合は、まずモバイル通信自体が利用できることを確認し、次に対応する条件を有効にしてください。Wi-Fiで成功した結果をモバイル通信のテスト結果とみなさないでください。

  1. Settings → On Demandを開き、現在の画面に表示されるモバイル通信の条件を確認して、目的の動作を保存します。
  2. Wi-Fiをオフにし、端末がモバイル通信を使用していることと、システムでShadowrocketのモバイルデータ通信が許可されていることを確認します。
  3. 新しいリクエストを実行し、ネットワークの切り替えからVPNの状態変化までを記録します。一度のページ読み込み時間だけでサービス品質を判断しないでください。
  4. Wi-Fiに再接続してSSID条件が意図どおりに動作するか確認し、次にモバイル通信へ戻してもう一度テストします。
  5. モバイル通信でのみ失敗する場合はOn Demandの設定を変えず、同じサービスへの手動接続を試してください。これにより、条件の評価に失敗しているのか、接続先への接続に失敗しているのかを切り分けられます。

ネットワークを切り替えると、端末のアドレス、ルート、到達性が変わり、既存のTCP接続が中断されることがあります。その場合、アプリは接続を再確立する必要があります。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは通信方式やパラメーターが異なります。On Demandはこれらのプロトコルのアドレス、ポート、認証情報の誤りを修正する機能ではなく、ネットワーク切り替え後も既存のセッションが継続することを保証するものでもありません。

ドメイン条件:接続トリガーと振り分けルールを区別

ドメイン条件はシステムのオンデマンドルールにおける接続評価条件であり、Configのドメイン振り分けとは別のものです。Appleのオンデマンドドメイン機能は、ドメインの名前解決条件を使って接続を試みるかどうかを判断します。任意のWebアドレスを開けば必ずトンネルが開始するわけではありません。Shadowrocketの現在の画面に該当する編集項目があるか、どの照合方法や動作に対応しているかは、実際の表示で確認してください。表示されていない機能を推測し、設定キーを追加しないでください。

ドメイン欄にはURL全体ではなく、ホスト名を入力します。たとえば、対象ページがhttps://portal.example.com/accountの場合、ドメイン条件に指定するホスト名はportal.example.comです。https://、パスの/account、ポートの:443は含めないでください。ワイルドカードやサブドメインの対象範囲は、必ずその項目の説明で確認してください。

Configのルールは、トンネル内の通信をどのように送信するかを決めます。以下は設定ルールの構文例であり、Settings → On Demandに入力する内容ではありません。PROXYが現在のConfigで有効なポリシーとして解決できる必要があります。このルールだけでは、システムレベルのドメイン接続条件は登録されません。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

DOMAIN-SUFFIXはドメインのサフィックス照合に使い、FINALはそれ以前のルールに一致しなかった場合の最終ポリシーを指定します。この例では、それ以外のリクエストをDIRECTに送ります。「特定のドメインだけをプロキシ経由にする」場合は、通常、Configで振り分けを設定し、必要に応じてトンネルが接続される状態にする方法を先に検討してください。その目的だけのためにドメイン接続条件を追加する必要はありません。変更前に既存のルールをバックアップし、例をConfig全体に上書きしないようにしてください。

手動スイッチ:切断しても自動接続が無効になるとは限らない

Homeの接続スイッチは現在の接続を制御し、On Demandは条件を満たしたときのシステムの動作を制御します。オンデマンド接続が有効な場合、手動で切断しても現在の状態だけが変わることがあります。次のネットワーク変更や条件に合致したリクエストをきっかけに、再接続する可能性があります。具体的なタイミングはシステムと保存済みの条件によって異なるため、再接続しただけでスイッチの故障と判断しないでください。

Homeで切断したのに、なぜ再接続するの?

まずSettings → On Demandでオンデマンド接続を無効にし、その後Homeに戻って切断してください。新しいリクエストを実行して確認します。それでも自動接続する場合は、システムのVPN設定で、オンデマンド接続が有効な別の構成がないか確認してください。

Shadowrocketを終了しても、自動接続しますか?

アプリの画面を閉じただけで、システムのVPN構成が無効になったと考えないでください。自動接続を一時停止するには、Settings → On Demandを明示的に無効にし、システムVPNの状態を確認します。ホーム画面に戻るだけでは停止しません。

自宅のWi-Fiに切り替えても、なぜ接続が切れないの?

まずSSIDの項目が正しく照合されているか確認し、次に対応する動作が「無視」なのか「切断」なのかを確かめてください。無視の条件では、既存の接続が解除されないことがあります。一度手動で切断してから、そのネットワークで新たに接続されるかテストしてください。

VPNは接続済みなのに、なぜWebサイトを開けないの?

Homeに戻り、Global Routingと選択中のサービスを確認してください。Configを使用している場合は、現在のファイルにあるルールとDNSも確認します。同じネットワークで手動接続を試し、自動接続とは無関係な問題かどうかを切り分けてください。

動作確認と設定の復元:順番に原因を切り分ける

動作確認の記録を使って、「接続条件が評価されていない」場合と「接続後に通信できない」場合を区別します。次の表に沿って一項目ずつ確認し、一行の確認が終わってから次の項目を変更してください。Subscribeの更新、プロトコルの変更、DNSの変更、SSID条件の変更を同時に行うと、比較の基準が失われます。

症状まず確認する項目次の操作
ネットワークを切り替えても自動接続しないOn Demandのスイッチ、ネットワーク条件、SSIDの認識設定を保存し、ネットワークを切り替えて新しいリクエストを実行
システムが接続を試みた後に失敗する同じサービスに手動で接続できるかオンデマンド接続を無効にし、サービスの設定値とネットワーク到達性を確認
ドメイン条件だけ反応しない照合仕様、名前解決条件、キャッシュ、アプリの名前解決方法まずネットワーク条件を確認し、ドメイン条件だけを個別に再テスト
VPNは接続済みだがリクエストに失敗するGlobal Routing、Config、DNS、接続先サービス利用可能な接続記録を確認し、名前解決の失敗と送信の失敗を区別
すべての自動接続を一時的に停止したいアプリとシステムのオンデマンド設定まずOn Demandを無効にし、次に現在のVPN接続を切断

設定を戻すときは、必要最小限の状態にします。Settings → On Demandを無効にし、既存のサービスとConfigを残したまま、Homeで手動接続してください。復旧を確認したら、まずWi-Fi条件を一つ追加してテストし、次にモバイル通信の条件を確認します。必要な場合に限り、最後にドメイン条件を設定してください。トラブルの記録を共有する際は、サブスクリプションの認証情報、サービスのパスワード、個人のネットワーク名を伏せ、必要な状態とエラー内容だけを残してください。

結論:3つのテストを個別に実施

既知のWi-Fi、モバイル通信、手動による一時停止をそれぞれテストし、「条件に合致したか」「接続できたか」「ルールどおりに通信したか」を記録してください。3項目すべてが目的どおりになったことを確認してから、On Demandを有効のまま使用してください。

App Storeで正規アプリを確認 →