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

On Demandの条件設定を解説。指定したWi-Fiへの接続、モバイル通信への切り替え、ドメイン評価に応じた接続・切断を、家庭用と通勤用の例で紹介します。

この記事の概要

自分で接続サービスを用意し、Shadowrocketで手動接続できる方を対象にしています。まずOn Demandと通信ルールの違いを確認し、Wi-Fi SSIDとモバイル通信の条件を設定してから、ドメイン評価の制限を確認します。家庭用・通勤用の例は条件設定の記録であり、そのまま読み込める設定ファイルではありません。設定後は、ネットワーク切り替え、ドメインへのアクセス、手動停止の3つの場面でそれぞれ動作を確認してください。

始める前に:アプリの入手元と手動接続を確認

ShadowrocketはAppleプラットフォーム向けの有料アプリです。入手先はApp Storeのみで、購入は買い切りです。正規アプリか確認する際は、公式アイコン、デベロッパのShadow Launch Technology Limited、アプリID 932747118をあわせて確認してください。iPhone、iPadのシステム要件およびその他のAppleデバイスとの互換性は、App Storeの掲載内容をご確認ください。アプリの購入と、利用者が別途用意する接続サービスは別のものです。

On Demandは接続を自動化する機能で、サーバーアドレスや認証情報、サブスクリプションの不足分を補うものではありません。開始前にHomeで既存の接続を選び、手動で接続して利用対象にアクセスしてください。ここで正常に動作して初めて、以降のテストに意味があります。自分で用意したサブスクリプションを使う場合は、先に読み込みと更新を済ませ、選択中の項目が有効であることを確認してください。

  1. Configで現在の設定を複製して保管し、使用中の設定名を控えてください。自動接続の問題とルール変更を混同せずに確認できます。
  2. HomeでGlobal Routingを確認します。設定に応じて通信を振り分ける場合はConfigを選び、必要な接続が選択されていることを確認してください。
  3. 接続を手動で開始し、システムの案内に従ってVPN設定を許可します。プロキシ経由にしたい宛先と、直接接続する想定の宛先をそれぞれ確認してください。
  4. 現在のWi-FiのSSIDを正確に控え、モバイルデータ通信が利用できることを確認してから、Settings → On Demandを開きます。

On DemandとGlobal Routingの役割

On DemandはシステムのVPNオンデマンドルールに従い、トンネルをいつ確立・停止するかを決めます。Global Routingは、トンネルが動作している間の通信処理を決めます。両者は別の設定です。特にDisconnectとDirectを混同しないでください。前者はオンデマンドルールの接続動作、後者は通信のルーティング方法です。Directに切り替えても、自動接続を停止したことにはなりません。

ネットワーク条件を確認 オンデマンド動作を判定 トンネル状態が変化 通信ルールを照合 宛先への接続を確立
設定項目制御する範囲確認ポイント
On Demandネットワーク条件に応じてトンネルの接続動作を決定条件に一致しているか、動作が正しいか
Global Routing → Proxyプロキシ経由で通信を処理Configの振り分け結果の確認には使わない
Global Routing → Direct直接接続として通信を処理トンネルがあっても通信がプロキシ経由とは限らない
Global Routing → Config現在の設定にあるルールに基づいてポリシーを選択ルールの順序と最終的に適用されたポリシーを確認
Global Routing → Scene設定済みのシナリオに応じてルーティングシナリオ条件を確認し、オンデマンド条件と混同しない

初回の切り分けではGlobal Routing → Configに固定し、Sceneの条件を同時に加えないでください。システムVPNの状態を確認した後も、実際のリクエストに適用されたポリシーを確認する必要があります。ステータスアイコンが示すのはトンネルの状態であり、特定のドメインが必ずプロキシ経由になることの証明にはなりません。

Wi-Fi SSIDの設定:特定のネットワークとその他を分けて指定

SSIDはWi-Fiネットワーク名であり、ルーターの管理アドレスやゲートウェイIPではありません。システムのSettings → Wi-Fiで接続中のネットワーク名を確認し、大文字・小文字、空白、記号も含めてそのまま入力します。名前が似ていても同一とは限りません。ルーターのネットワーク名を変更しても、以前の条件は新しい名前に自動更新されません。

ShadowrocketのSettings → On Demandを開き、Wi-Fiの条件を編集します。「自宅の指定ネットワークに戻ったらトンネルを停止する」場合は、そのSSIDに対応する動作をDisconnectに設定します。その他のWi-Fi接続時の動作は、別途明確に指定してください。編集画面で利用できる項目は、インストール済みのアプリの表示に従ってください。以下の条件例をConfigファイルの構文として貼り付けないでください。

  1. テスト用SSID(例:Home-Study)を控え、デバイスが実際にそのネットワークへ接続していることを確認します。
  2. そのSSIDにDisconnectを設定します。条件が複数ある場合は、指定SSIDの条件を先に確認し、その後で他のWi-Fiを対象とする共通条件を確認してください。共通条件が先に一致しないようにします。
  3. その他のWi-Fiには必要な動作を明示的に設定してください。未設定の項目がモバイル通信時の動作を自動的に引き継ぐとは限りません。
  4. On Demandを保存して有効にし、システムの案内に従ってVPN設定を確認します。その後、別のWi-Fiに切り替えてからテスト用SSIDに戻し、動作を確認してください。

モバイル通信と2つの条件設定例

モバイル通信の条件にはCellularを指定します。通信事業者名を入力したり、Wi-Fi SSIDを使ったりする項目ではありません。Wi-Fiから離れたときに接続を自動確立したい場合は、Cellularに対応する動作をConnectに設定します。デュアルSIM端末や電波の弱い場所、Wi-Fiとモバイル通信が頻繁に切り替わる環境では、実際のネットワーク状態を確認してください。再接続が発生するたびに、既存の接続が無効になったと判断することはできません。

家庭用:指定Wi-Fiでは接続を停止

接続先
Settings → On Demand
指定SSID
Home-Study:Disconnect
その他のWi-Fi
Connect
Cellular
Connect
通信ルーティング
Global Routing → Config

自宅で必要な宛先に直接アクセスできる場合に適しています。Home-Studyは説明用のネットワーク名です。実際に使う正確なSSIDに置き換えてください。

通勤用:ネットワーク切り替え後も接続を維持

接続先
Settings → On Demand
Wi-Fi
Connect
Cellular
Connect
SSIDの例外
初回テストでは追加しない
通信ルーティング
Global Routing → Config

まず両方のネットワークでトンネルを確立できることを確認し、必要性が確認できた例外だけを追加します。ネットワーク切り替え時に既存のセッションが中断することはあります。

2つ目の設定例でも、ネットワーク切り替え中に進行中のビデオ通話、ファイル転送、長時間接続が途切れないことを保証するものではありません。IPアドレスやルート、トンネルが再確立される場合があります。確認時は、まず新しく開いたWebページが表示されるかをテストし、既存アプリの通信を再開する必要があるかは個別に判断してください。

判断のポイント:まず条件を1つずつ切り替え、その後で例外を追加

まずCellularのConnectだけを有効にして、Wi-Fiから離れた後の接続動作を一度確認します。正常に動作したら、指定SSIDのDisconnectを追加してください。異常があれば最後に追加した条件だけを戻せるため、すべての条件を一度に確認し直す必要がありません。

ドメイン評価:DOMAIN-SUFFIXと混同しない

ドメイン条件とSSID条件では判定方法が異なります。システムのオンデマンド接続におけるドメイン評価では、通常EvaluateConnectionと、ConnectIfNeededやNeverConnectなどのサブアクションが関係します。これらは名前解決の要件に関する設定であり、各WebページのURLを監視してトンネルを即時に開閉するものではありません。現在のSettings → On Demandに該当するドメイン評価項目がない場合、Configのドメインルールで代用することはできません。

ConnectIfNeededは「このドメインにアクセスすれば必ず接続する」という意味ではありません。システムはドメインとの一致状況や名前解決の条件に基づき、VPN接続が必要かを判断します。現在のネットワークで対象ドメインを正常に名前解決できる場合、接続が開始されないことがあります。NeverConnectも「このドメインにアクセスすると既存のトンネルを切断する」という意味ではなく、一致した名前解決の要件に対して接続を開始しない設定です。トンネルを停止するには、適切なネットワークのDisconnect条件または手動操作を使います。

通信振り分けの例:トンネル確立後にポリシーを選択

以下はConfigの[Rule]の構文例であり、On Demandの設定ではありません。編集時は現在の設定の該当セクションに統合し、ほかに必要な内容を残してください。PROXYで使う接続も、あらかじめ利用可能にしておく必要があります。ルールは上から順に照合され、最初に一致した項目でポリシーが決まります。

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

DOMAIN-SUFFIXはドメインのサフィックスを処理し、IP-CIDRの例は該当するプライベートアドレス範囲を対象にします。GEOIPはIPアドレスの地域判定に依存し、FINALは最後の受け皿となります。いずれもトンネルを確立する機能ではありません。また、ポート番号の443をドメインによる接続開始条件として扱わないでください。HTTPSで一般的なポートとオンデマンド接続条件は、異なるレイヤーの設定です。

順番に動作確認:ネットワーク切り替え、宛先へのアクセス、停止動作

一度に変更する条件は1つにして、「現在のネットワーク、期待する動作、実際のトンネル状態、宛先にアクセスできるか」の4項目を記録します。固定の遅延時間や待ち秒数をすべてのネットワークに当てはめず、自分のデバイスでテストしてください。システムのスケジュール、ネットワークへのログイン、名前解決のキャッシュが確認結果に影響することがあります。

テスト操作期待される結果異常時の確認項目
Home-Studyに接続家庭用の設定例でDisconnectが適用されるSSIDの入力、条件の順序、保存状態
Wi-FiをオフにしてCellularを使用Connectが適用され、トンネルが確立されるモバイルデータ通信、システムのオンデマンド設定、既存の接続情報
別のWi-Fiに接続その他のWi-Fiに設定した条件が適用されるWeb認証、ネットワークの利用可否、共通条件
ドメイン評価の対象にアクセス評価条件を満たした場合にのみ接続が開始される名前解決の条件、キャッシュ、トンネルがすでに存在するか
On Demandをオフにしてから手動で停止このオンデマンドルール群によって再接続されないシステムVPN設定のオンデマンド接続状態

自動接続を一時的に完全停止するには、まずSettings → On Demandでオンデマンド機能をオフにしてから、現在の接続を停止します。続いてシステムのSettings → General → VPN & Device Managementで、該当するVPN設定のConnect On Demandの状態を確認してください。システムメニューの名称は、画面表示によって異なる場合があります。Homeで一度接続をオフにしただけでは、一致する自動接続条件が残っていると、後からトンネルが再び確立されることがあります。

よくある質問:自動再接続、ドメインで発動しない、ルールが反映されない

接続を切ったのに、すぐ再接続するのはなぜですか?

Settings → On Demandで、現在のWi-FiまたはCellularがConnect条件に一致していないか確認してください。接続を停止したままにするには、先にOn Demandを無効にしてからHomeで接続を停止し、システムVPN設定のConnect On Demandも確認します。

自宅のWi-Fi名を設定したのに、帰宅しても切断されないのはなぜですか?

システムのSettings → Wi-FiでSSID全体を照合し、空白や記号も確認してから、指定SSIDの動作がDisconnectになっていることを確認してください。先に一致する共通Wi-Fi条件がないかも確認します。変更を保存した後、ネットワークを切り替えて動作を再確認してください。

DOMAIN-SUFFIXを追加したのに、ドメインへアクセスしても自動接続されないのはなぜですか?

このキーワードはConfigで通信を振り分けるためのもので、システムにトンネルを確立させることはできません。まず手動接続して振り分けを確認し、Settings → On Demandに必要なドメイン評価条件があり、有効になっているかを確認してください。キャッシュやほかのConnect条件の影響も切り分けます。

接続済みと表示されるのに宛先が開けない場合、On Demandを変更すべきですか?

トンネルが確立されている場合は、Homeで選択中の接続、Global Routing → Config、実際に適用されたポリシーを確認してください。手動接続でも同様に失敗するなら、接続情報またはローカルネットワークの問題を先に解決します。基本的な問題を覆い隠すために、オンデマンド条件をむやみに増やさないでください。

App Storeで正規アプリを確認