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

ShadowrocketのOn Demandの仕組みを解説。Wi-Fi名、モバイル通信、ドメインを条件に自動接続・切断する方法と、ルールの優先順位を紹介します。

この記事の概要

ShadowrocketのOn Demand(オンデマンド接続)は、VPN接続をいつ開始・切断するかを決める機能で、接続後の通信ルールを置き換えるものではありません。利用可能な接続と設定がある方を対象に、指定したWi-Fiとモバイル通信での動作を設定し、ドメイン条件が「特定のWebページを開けば必ず接続する」という意味ではない理由を解説します。最後に、ルールの優先順位や自動再接続の問題を一つずつ確認する方法を紹介します。

1. On Demandと接続後のルーティングルールを区別する

設定前に、まず確認する場所を整理しましょう。ネットワーク環境に応じて自動接続する場合は Settings → On Demand を確認します。接続済みなのに特定のWebサイトへの経路が想定と違う場合は、Home → Global Routing と Config で現在有効な設定を確認します。両者は適用される段階が異なります。設定ファイルにドメインのルーティングルールを記述しても、システムのオンデマンド接続条件が作成されるわけではありません。

ネットワーク条件の変化 システムが条件を評価 接続動作を実行 トンネルを確立 通信ルールを照合

On Demandは、Appleのシステムが備えるVPNオンデマンド機能を利用します。システムは現在のネットワークと保存済みの条件をもとに接続の要否を評価し、接続に成功すると、Shadowrocketが選択したルーティング方式で通信を処理します。ネットワークの切り替えや名前解決の要求などが評価のきっかけになることはありますが、前面に表示されたWebページの内容を常時スキャンする機能でも、アプリの起動・終了に合わせて時間を計るスイッチでもありません。

たとえば、設定内の DOMAIN-SUFFIX,example.com,DIRECT は、ドメインのサフィックスが一致した場合に直接接続することを示します。FINAL,DIRECT は、それ以前のルールに一致しなかった場合の最終的な接続先です。これらのルールがシステムのVPNを自動で開始することはありません。GEOIP(IPアドレスの地理的な割り当てによる照合)や IP-CIDR(IPアドレス範囲による照合)も通信処理のルールであり、Wi-Fiやモバイル通信の条件に代わるものではありません。

2. 設定前に入口・接続・復元方法を確認する

自動化を設定する前に、まず手動で接続できることを確認してください。ここでは主にiPhoneとiPadでの設定を説明します。システム要件はApp Storeのページで確認してください。システムやアプリの画面によって選択できる項目が異なる場合があります。実際に保存できる条件は、現在の Settings → On Demand 画面で確認してください。システム上の動作名が、すべての画面に必ずボタンとして表示されるとは限りません。

2段階
設定場所:Settings → On Demand
2種類
この例のネットワーク条件:Wi-FiとCellular
3項目
確認内容:現在のネットワーク、接続状態、通信結果
  1. Homeで、すでに利用可能な接続を選び、接続スイッチを手動でオンにします。初回にVPN構成の追加を求めるシステム通知が表示されたら、アプリ名を確認し、システムの案内に従って許可してください。
  2. 普段アクセスできるWebページを開き、ネットワーク自体が正常に使えることを確認します。手動接続も失敗する場合は、接続パラメータ、ネットワークへの到達性、設定の問題を先に解決してください。
  3. 現在の Global Routing の状態と、Config で有効になっている設定を記録します。テスト中に切り替えて、元の状態を忘れないようにしてください。
  4. Settings → On Demand を開き、既存の条件と並び順を記録します。今回確認する項目だけを変更し、サブスクリプションの更新や接続先の変更は同時に行わないでください。
  5. システムの 設定 → 一般 → VPNとデバイス管理 → VPN で、該当するVPN構成の場所を確認しておきます。システムに「オンデマンド接続」に関する項目が表示される場合は、その状態も確認してください。

要点:まず手動接続できる状態を基準にする

同じネットワークで手動接続できることを確認してから、On Demandの条件だけを変更します。これなら問題が起きたときに、条件が発動していないのか、発動後の接続に失敗しているのかを切り分けられます。

3. Wi-Fi名で接続・切断を設定する

Wi-Fi名の条件は、通常 SSID(無線ネットワーク名)を指定します。判定対象はネットワーク名であり、ルーターのメーカー名やWebサイトのドメインではありません。以下では架空のネットワーク名 Home-WiFi を使い、「指定したWi-Fiでは切断し、モバイル通信では接続する」設定を例に説明します。特定のネットワークで切断するかどうかは実際の利用目的に応じて判断してください。「自宅」という名前だけで安全と決めつけることはできません。

  1. システムのWi-Fi設定で、現在接続しているネットワークの正式名称を確認します。空白、記号、大文字・小文字をそのまま保ち、「自宅のネットワーク」のようなメモで実際のSSIDを置き換えないでください。
  2. Settings → On Demand を開き、Wi-Fi条件を編集して、一致させるネットワーク名に実際のSSIDを入力します。この例の Home-WiFi は説明用です。
  3. そのネットワークでVPN接続を維持しない場合は、一致時の動作に Disconnect(切断)を設定します。そのネットワークで接続する場合は Connect(接続)を選びます。現在の画面に表示される方法で保存してください。
  4. すべてのWi-Fiを対象とする広範な条件がないか確認します。特定のSSIDに対する例外は、それを上書きする可能性のある汎用条件より先に設定してください。
  5. 対象のWi-Fiからいったん切断して再接続し、VPNの状態を確認します。設定を保存した直後に元のネットワークでWebページを一度開くだけで、成功と判断しないでください。

指定したWi-Fiの設定例

設定場所
Settings → On Demand
ネットワークの種類
Wi-Fi
SSID
Home-WiFi(架空の例)
動作
Disconnect:このネットワークでは切断

これは入力内容の説明であり、そのまま読み込める設定テキストではありません。実際のネットワークのSSIDに置き換えてください。

モバイル通信の設定例

設定場所
Settings → On Demand
ネットワークの種類
Cellular:モバイル通信
SSID
対象外。SSIDはWi-Fiの条件です
動作
Connect:このネットワークでは接続

モバイルデータ通信に対応し、有効になっているデバイスでのみテストしてください。接続できるかどうかは、すでに設定済みの接続が正常に使えるかにも左右されます。

Disconnectは、このVPNを切断するという意味です。デバイスのWi-Fiをオフにしたり、すべてのネットワーク通信を遮断したりするものではありません。自宅で特定のドメインだけを直接接続したい場合は、通常、VPN接続を維持したまま Config でルールを設定します。自宅のWi-Fi全体を切断する方法とは影響範囲が異なります。

4. モバイル通信での自動接続とルールの優先順位

モバイルデータ通信に対応するデバイスでは、Cellular(モバイル通信)条件に Connect を設定できます。指定したWi-Fiから離れると、システムはモバイルデータ通信に切り替わり、該当する条件を評価します。切り替え中には、ネットワークの利用可否やVPNトンネルの確立、その後の通信などの段階があります。オンデマンド接続によって、すべての既存接続が途切れずに維持されるわけではありません。

評価順条件動作確認ポイント
優先する例外Wi-Fi、SSIDがHome-WiFiDisconnect設定名と実際に接続中のネットワークが一致している
ネットワークの種類CellularConnectデバイスが実際にモバイルデータ通信を使用中である
最後に置く汎用条件その他、接続が必要なネットワークConnect画面で対応していて、必要な場合にのみ追加

システムはオンデマンドルールを順番に評価し、最初に一致した適用可能なルールの動作を実行します。先頭の汎用接続条件がすべてのWi-Fiを対象としていると、その後に設定した特定SSIDの切断条件が適用されないことがあります。Shadowrocketの画面では条件がネットワークの種類ごとに整理される場合があります。確認時は表示順だけでなく、各条件がどの範囲を対象とするかも確認してください。スイッチがオンかどうかだけでは判断できません。

モバイル通信機能のないiPadでは、モバイル通信への切り替えテストはできません。Wi-Fiで別のデバイスのインターネット共有に接続している場合も、このデバイスが使うのはWi-Fiインターフェイスです。共有元の接続方式ではなく、このデバイスで認識されるネットワークの種類に基づいて判定してください。

5. ドメインによるオンデマンド接続とDOMAIN-SUFFIXのルーティングは別機能

「ドメインにアクセスしたら接続する」という設定は、仕組みを分けて考える必要があります。Appleのオンデマンド機能にある EvaluateConnection(接続の評価)は、ドメインや名前解決に関する条件を使ってVPN接続の要否を判定できます。接続後に DOMAIN-SUFFIX で通信を振り分ける仕組みとは異なり、ブラウザーのアドレスバーを常時監視する機能でもありません。

システムのドメイン評価における ConnectIfNeeded(必要に応じて接続)は、通常、DNSの名前解決失敗や必要なDNSサーバーが利用できない場合などに関係します。NeverConnect(一致するドメインでは接続を開始しない)も、Webサイトをブロックするルールではありません。これらはシステム機能の名称です。現在のShadowrocketの画面で該当する条件が選べる場合に限り、画面上で提供される選択肢を設定してください。設定ファイルのキーワードとして、そのまま貼り付けることはできません。

  1. まず目的を確認します。「トンネル未接続時に、内部ドメインへのアクセスをきっかけに接続したい」のか、「トンネル接続中に、特定のWebサイトの接続先を指定したい」のかを区別してください。後者は Config で設定します。
  2. Settings → On Demand で、ドメインに関する条件と選択できる動作が用意されているか確認します。現在の画面にネットワークの種類しか表示されない場合は、実際に選択できる範囲で設定し、存在しない項目を作り出さないでください。
  3. 画面がドメイン条件に対応している場合は、自分にアクセス権があり、実際にそのネットワーク環境での名前解決が必要なドメインを使ってテストします。internal.example.com は記述例であり、実際の接続確認には使用できません。
  4. 項目の用途に応じてホスト名またはドメイン名を入力し、完全なURLは入力しないでください。https://internal.example.com:443/path のプロトコル、ポート、パスはドメイン名には含まれません。
  5. まず未接続時のDNS応答を記録してから、条件を有効にしてテストします。通常のネットワークですでにドメインを解決できる場合、「必要に応じて接続」が必ず発動するとは限りません。
ページの更新回数だけでドメイン条件を判断しない

DNSキャッシュ、ブラウザーの既存接続、アプリが独自に利用する暗号化DNSなどにより、新たな名前解決要求をシステムが検知するかどうかは変わります。開いているページを更新するだけでは、想定した評価イベントが発生しないことがあります。VPNの状態と実際の名前解決結果を併せて確認し、ページが表示されたことだけをOn Demandの動作と結びつけないでください。

目的が「example.com は直接接続し、その他の通信は現在の設定に従う」であれば、有効な設定にドメインルールを追加し、Global Routing → Config を選択します。ドメインルールは接続先を決めるものです。VPN全体を切断すると他のアプリの通信にも影響するため、両者を置き換えて使うことはできません。

6. 3つのケースで設定を確認する

一度に変更する項目は一つにします。同じ既存の接続、有効な設定、テスト用Webページを使ってください。以下は確認時に記録する内容であり、所要時間や実測性能を保証するものではありません。システムの評価やトンネルの確立には時間がかかるため、状態が安定してから判断してください。

テストケース操作確認する現象問題がある場合にまず確認する項目
指定したWi-Fiに接続例外に設定したSSIDへ再接続Disconnectの設定どおりVPNが切断されるかSSIDと汎用条件の適用範囲
モバイルデータ通信に切り替えるWi-Fiをオフにし、モバイルデータ通信が使えることを確認VPNの接続が始まり、最終的に接続済みになるかCellular条件、既存の接続が利用可能か
内部DNSが必要なドメインにアクセス該当するドメイン条件で新しい名前解決を行う評価・接続が発生するか、接続後に名前解決できるかDNSキャッシュ、名前解決の経路、ドメイン条件

VPNが接続済みなのにページが表示されない場合は、問題は接続後の処理段階にあります。Global Routing、有効な Config、DNS、接続先への到達性を確認してください。Wi-Fi名の条件を何度も変更する必要はありません。接続動作自体が起きない場合は、オンデマンドのスイッチ、現在のインターフェイスの種類、ルールの優先順位を先に確認します。

7. 自動再接続・ネットワーク名の照合・バッテリーに関するよくある質問

手動で接続を切ったのに、また自動で接続するのはなぜですか?

まず Settings → On Demand を開き、現在のネットワークに一致する Connect 条件が残っていないか確認します。続いて、システムの VPN 設定でオンデマンドの状態を確認してください。自動接続を一時停止する場合は、オンデマンド機能をオフにしてから接続を切ります。Home の接続スイッチを何度も切り替えるだけでは不十分です。

自宅のWi-Fiで切断する設定にしたのに、帰宅すると接続されたままなのはなぜですか?

システムの Wi-Fi 画面で完全な SSID を読み直し、実際には別の周波数帯のネットワークに接続していないか確認します。次に、すべての Wi-Fi を対象とする汎用 Connect 条件が先に適用されていないか確認してください。ルーターが同じというだけで、SSID 条件も同じだと判断しないでください。

指定したドメインを開いても接続が始まりません。ドメインルールの記述ミスですか?

まず、設定したのが Config 内の DOMAIN-SUFFIX ではなく、On Demand のドメイン条件であることを確認します。次に、そのドメインがキャッシュ済みでないか、通常のネットワークでも名前解決できるか、リクエストがシステムの評価対象となる名前解決経路を通っているかを確認してください。ページが開いたというだけでは、新たな接続トリガーが発生した証拠にはなりません。

オンデマンド接続は、常時接続より必ず省電力になりますか?

スイッチの状態だけでは判断できません。システムの 設定 → バッテリー で、同じ利用時間帯のアクティビティを比較してください。ネットワークの切り替えが頻繁で、トンネルを何度も確立し直す場合は、不要な条件切り替えを減らします。実際の接続ニーズに合わせて設定し、テストのために何度も切断・再接続しないでください。

確認する順序を統一します。まずネットワークが利用可能か、次にシステムが接続を開始したか、最後に接続後のルーティングとDNSを確認します。この3段階で状況を記録すれば、On Demand、サブスクリプション、設定を同時に変更するより原因を見つけやすくなります。基本操作については、当サイトのほかのガイドもご覧ください。

App Storeで正規版を入手アプリ情報を確認 →