On DemandはVPNトンネルを確立するタイミングを管理する機能で、接続後の振り分けルールとは別のものです。利用中のサービスとサブスクリプションがあり、手動接続は正常に使えることを前提に、指定したWi-Fi、モバイル通信、ドメインの3つのケースで設定方法、確認手順、停止方法を解説します。手動切り替えを減らしつつ、接続条件を明確にしたいiPhone/iPadユーザー向けです。
接続と振り分けを区別する
ShadowrocketのHomeスイッチは接続の開始・停止に使います。Settings → On Demandでは条件に応じた接続動作を管理し、Home → Global Routingでは接続後の通信の処理方法を決めます。それぞれ異なる設定なので、「VPN接続中」と表示されても「すべてのリクエストがプロキシを経由する」とは限りません。
On DemandはAppleのシステムに備わるVPNオンデマンド機能を利用します。ネットワークが変化したときや、条件に合うネットワーク要求が発生したときに、システムが保存済みの条件を評価します。Webページの内容を継続的に監視するタイマーではなく、ページに特定の文字が現れたことをきっかけに接続する機能でもありません。Shadowrocketを終了しても、システムに登録したオンデマンド設定が解除されるわけではありません。
最小限の設定でテストする
初回は条件を1つだけ有効にし、動作を確認してから例外を追加します。アプリの表示言語やシステム環境によって、条件の編集画面や項目名、利用できるフィールドは異なる場合があります。以下ではSettings → On Demandを起点に、画面に表示されるネットワーク、SSID、ドメイン、接続動作の項目を設定します。例示した条件は、そのまま読み込める設定ファイルではありません。
-
手動接続を確認する
Homeを開いて既存のサーバーを選び、接続スイッチをオンにして、システムのVPN設定を許可します。Connectivity Testを実行し、正常に表示できることが分かっているページにもアクセスして、テスト結果と実際の表示結果をそれぞれ記録します。
-
通信の振り分け設定を確認する
Home → Global Routingで現在のモードを確認します。ルールに従って日常利用する場合はConfigを選び、Configで使用中の設定ファイルを確認してください。自動接続できていてもDirectのままでは、接続トリガーが失敗したと誤認することがあります。
-
条件を1つ設定する
Settings → On Demandを開き、まずネットワーク条件を1つだけ設定します。たとえば、現在接続中のWi-Fiの正確なSSIDを指定し、接続動作を選びます。条件を保存してOn Demandを有効にしてください。互いに上書きし合う複数の条件を同時に追加しないでください。
-
テスト環境を作り直す
対象ネットワークからいったん離れ、再接続してから新しいWebアクセスを行います。On Demandスイッチがオンかどうかだけでなく、システムのVPN状態とHomeの状態を確認してください。
-
例外を1つずつ追加する
単独の条件が動作したら、自宅のWi-Fi、モバイル通信、ドメインに関する条件を追加します。1項目追加するたびに、ネットワークの切り替えとアクセスのテストを繰り返してください。失敗したら最後に追加した項目を取り消し、動作を確認済みの条件を残します。
画面にドメインを個別に評価する項目がない場合、ドメインをSSID欄に入力してはいけません。また、Ruleにドメインルールを追加しただけで、オンデマンド接続の設定が完了したと判断しないでください。前者は対象の指定が誤っており、後者はトンネルに入った後の通信経路を変えるだけです。
Wi-Fiとモバイル通信の条件を設定する
Wi-Fi条件では通常、無線ネットワーク名であるSSIDを指定します。SSIDはルーターの管理アドレスでも、デバイス名でもありません。システムに表示される現在のネットワーク情報を確認して入力し、スペース、大文字・小文字、記号もそのまま保ちます。たとえばHome-WiFiとHome-WiFi-5Gは別々のネットワークとして扱います。同じルーターから提供されているからといって、必ず一致するとは限りません。
2種類のネットワーク条件を設定する際の注意点
指定したWi-Fi
- 正確なSSIDを確認してから、要件に合う接続または切断の動作を選びます。
- 自宅のWi-Fiでは切断状態を保ちたい場合は、明示的な例外として設定し、より広いWi-Fi条件に先に一致していないか確認します。
- Web認証が必要なゲストWi-Fiでは、先にネットワーク認証を済ませてからオンデマンド接続をテストします。
モバイル通信
- デバイスでモバイルデータ通信を利用できる状態にしておく必要があります。Wi-Fi専用のiPadではこの条件を使えません。
- 実際に使われているネットワークインターフェイスを基準にします。スマートフォンのテザリングに接続している場合、このデバイスは通常Wi-Fi環境として扱われます。
- テスト時はWi-Fiを切断し、モバイルデータ通信でWebにアクセスできることを確認してから、新しいアクセス要求を行います。
ネットワークごとに「接続」するか「切断」するかを先に明確にしてから条件を設定します。ネットワーク名だけでは、そのネットワークが信頼できるとは判断できません。
オンデマンド条件の照合順がある場合は、具体的な例外を広い条件より先に配置します。たとえば、自宅のSSIDで切断する条件を、その他のWi-Fiで接続する条件より先に設定します。実際の画面にある並べ替え方法で順序を確認してください。新しく追加した条件が必ず優先されるとは限りません。範囲の広すぎるフォールバック条件は、「自宅ネットワークを例外にしたのに接続される」場合に確認すべきポイントです。
- ネットワークの切り替え:Wi-Fiからモバイル通信に切り替えた後、以前の接続が一時的に維持されたり、再確立されたりすることがあります。切り替え後の新しいリクエストで確認してください。
- システム権限:SSIDを認識できない場合は、ネットワーク情報へのアクセスに関するシステムの制限と画面の案内を確認してください。ネットワーク名の代わりに空文字列を入力しないでください。
- 自動切断:接続条件を設定しただけでは、そのネットワークを離れたときに必ず切断されるとは限りません。他の条件やデフォルトの動作も確認してください。
ドメインによる接続とドメイン振り分けは別の機能
ドメインに関するオンデマンド機能は通常、ブラウザーのアドレスバーを1つずつ読み取るのではなく、システムがドメインの名前解決要求を評価します。この種の条件を画面で設定できる場合は、https://example.com/pathではなくexample.comのようにドメインを入力します。一致範囲やサブドメインの扱いは、項目の説明に従ってください。RuleのDOMAIN-SUFFIXと同じ意味だと決めつけないでください。
Appleのオンデマンド機能では、ドメイン評価によって名前解決の条件を満たした場合に接続を要求できますが、ドメインへのアクセスすべてで必ず無条件にトンネルが確立するわけではありません。そのため、「対象ドメインにアクセスしてもすぐに接続しない」場合は、評価時の動作、現在のDNS結果、キャッシュをあわせて確認してください。スペルだけを確認しても十分ではありません。ブラウザーに既存の接続がある場合、アプリ独自の暗号化DNSを使っている場合、IPアドレスを直接指定している場合は、想定したシステムのドメイン名前解決要求が発生しないことがあります。
| 設定箇所 | 制御する内容 | 確認方法 |
|---|---|---|
| Settings → On Demand | ネットワークやドメインの要求に応じてVPNを確立するか | 切断後に新しい要求を発生させ、接続するか確認 |
| Config内のRule | トンネル内のリクエストに適用するルールとポリシー | 接続後にリクエスト履歴と適用ポリシーを確認 |
| Home → Global Routing | 現在の通信処理モード | Config、Proxy、Direct、Sceneを確認 |
以下は「指定したドメインはプロキシ経由、それ以外は直接接続」というRuleの例であり、On Demandの条件ではありません。使用中の設定ファイルのRuleセクションに追加し、Configモードで確認してください。プロキシポリシーでは、利用可能な既存のサーバーを使える状態にしておく必要があります。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIXは指定ドメインとそのサブドメインに一致し、FINALは最後のフォールバックとして使われます。ルールは上から順に照合されます。GEOIPとIP-CIDRは宛先IPの所在地やアドレス範囲を対象とするもので、未確立のVPNを自動的に起動する機能ではありません。オンデマンド接続が成功してから、これらのルールが以降の通信を振り分けます。
接続後にGlobal Routingを確認する
自動接続は最初のステップにすぎません。テスト時はGlobal Routingのモードを固定してください。同じドメインでもモードによって経路が変わり、オンデマンド動作の問題を見誤ることがあります。以下ではサービスの違いには触れず、Shadowrocketの設定だけを比較します。
Config
おすすめ現在の設定ファイルに従って通信を処理します。ドメインルール、IPルール、FINALの順序が実際の接続先に影響するため、自動接続後も明確な振り分け条件を保ちたい場合に適しています。
適した用途:設定ファイルを用意済みで、日常のリクエストをルールに従って処理したい場合
Proxy
このモードで処理される通信をプロキシ経由にします。ルール設定の影響を切り分ける際に使えますが、On Demandの代わりにはならず、すべてのシステム通信が対象になることを保証するものでもありません。
適した用途:プロキシ経由の通信が使えるか短時間で切り分け、確認後に元のモードへ戻す場合
Direct
このモードで処理される通信を直接接続します。VPNが接続中でもリクエストが直接接続されることはあるため、ステータスアイコンだけでプロキシサーバーを経由したかどうかは判断できません。
適した用途:直接接続時の結果と比較し、対象サイト側の障害とプロキシ経路の障害を切り分ける場合
Scene
設定済みのシーンに応じて通信の処理方法を決めます。テスト前にシーンの内容を確認してください。シーンの選択と、システムがオンデマンドでトンネルを確立するかどうかは、別の設定レイヤーです。
適した用途:シーンの条件を設定済みで、シーンに応じて処理方法を切り替えたい場合
手動での切断とトラブルシューティングの手順
On Demandが有効なとき、Homeスイッチを手動でオフにしても、自動接続が完全に停止するとは限りません。その後のネットワーク変更や条件に合うアクセスをきっかけに、システムが再評価することがあります。実際のタイミングは、手動切断に対するシステムの処理にも左右されます。オンデマンド動作を確実に止めるには、まずSettings → On Demandを無効にしてから、Homeで接続を切断してください。
切断したのに、なぜまた接続する?
まずSettings → On Demandが有効なままになっていないか確認し、次に現在のネットワークに一致する広範な接続条件がないか調べます。一時的に停止する場合は、先にOn DemandをオフにしてからHomeスイッチをオフにしてください。ネットワークを切り替え、再接続が自動で始まらないことを確認します。
モバイル通信に切り替えても反応しない?
Wi-Fiが確実に切断されていて、モバイルデータ通信でWebにアクセスできることを確認してから、条件に指定したネットワークの種類を見直します。もう一度アクセスしてHomeの状態を確認してください。手動接続も失敗する場合は、基本的な接続の問題を先に解決し、オンデマンド条件を追加し続けないでください。
ドメインは正しいのに、なぜ接続しない?
その条件より前に別のネットワーク条件が適用されていないか確認し、ドメイン評価時の動作も見直します。開いているページを閉じてから再テストしてください。プライベートブラウズのウィンドウを使っても、システムのDNSキャッシュが必ず消去されるわけではありません。アプリ独自のDNS経路を使っている場合は、システムの名前解決要求が発生するアクセス方法でも確認します。
自動接続したのに、Webページが開かない?
HomeでConnectivity Testを実行し、Global Routingと現在のConfigを確認します。テストの遅延値が示すのは、指定されたテスト先への結果に限られます。対象ドメインの名前解決、TLS接続、ページ内のリソースがすべて正常だとは限りません。リクエスト履歴も確認し、名前解決の失敗と接続の失敗を切り分けてください。
サブスクリプション更新後にOn Demandを設定し直す必要はある?
サブスクリプションの更新とオンデマンド条件は別の設定なので、通常はリストの更新だけを理由に条件を作り直す必要はありません。ただし、以前選択したサーバーがまだ存在するか、認証が有効かを確認してから、手動接続を試してください。サーバーリストの更新だけでは、現在のConfigやオンデマンド条件の確認にはなりません。
切り替え記録で動作を確認する
最低限、対象Wi-Fiへの接続、対象Wi-Fiからの切断、モバイルデータ通信でのアクセス、On Demandを無効にした後の手動切断をそれぞれ1回ずつ確認します。毎回変更する条件は1つだけにし、「接続中のネットワーク、トリガーとなるリクエスト、接続状態、実際のアクセス結果」の4項目を記録してください。これにより、トリガーされない、トリガーされたが接続に失敗する、接続は成功したが振り分けが誤っている、という3つの問題を区別できます。
- 対象Wi-Fi:正確なSSIDのネットワークに再接続して新しいリクエストを行い、条件に設定した接続または切断の動作が実行されることを確認します。
- 例外ネットワーク:切断するよう設定したWi-Fiに切り替え、他の広範な条件に上書きされていないことを確認します。
- モバイル通信でのアクセス:Wi-Fiを切断してモバイルデータ通信が使えることを確認し、テスト対象のドメインに再アクセスして状態を確認します。
- 自動接続の停止:Settings → On Demandを無効にしてからHomeスイッチをオフにし、ネットワークを再度切り替えて停止できているか確認します。
オンデマンド接続ではトンネルの確立やネットワークの切り替えが発生するため、切り替えが常に待ち時間なしで完了するとは限りません。また、自動接続を有効にしただけで消費電力が下がるとも限りません。必要な条件だけを残して重複を削除し、変更後に上記の確認を行うほうが、フォールバックルールを追加し続けるより問題を特定しやすくなります。