On Demandは、システムVPN接続をいつ開始・切断するかを制御します。一方、Configのルールは接続確立後の通信を振り分けます。接続に使えるパラメータを用意済みのiPhone・iPadユーザー向けに、Settings → On Demand、SSID条件、モバイル通信、ドメイン評価、検証の順序を解説します。まず手動接続を確認し、その後に自動接続条件を追加すると、接続障害と条件設定の誤りを切り分けやすくなります。
On DemandとConfigの役割の違い
ShadowrocketのOn Demandは、システムのオンデマンド接続機能を利用します。Homeの接続スイッチを一定間隔で操作する機能でも、リクエストごとに接続先を選び直す機能でもありません。ネットワーク環境が変わったときや条件に合うリクエストが発生したときに、保存済みのオンデマンドルールに基づいてシステムが接続動作を評価します。トンネル確立後の通信は、現在のGlobal Routingと設定ルールに従って処理されます。
「自動接続した」と「対象のリクエストがプロキシ経由になった」は別の結果です。Global RoutingがConfigの場合は、Configで選択中の設定と適用ルールを確認してください。Directの場合、システムにVPN接続中と表示されていても、リクエストがプロキシ経由で送信されたとは限りません。反対に、Proxyは全通信をプロキシにするモードです。そのテスト結果をConfigでの振り分け確認の代わりにしないでください。
- Home:利用可能な接続先を選び、手動で接続して対象のリクエストを確認します。
- Settings → On Demand:自動接続条件を設定し、全体スイッチ、動作、条件の範囲を確認します。
- Config:接続確立後の振り分けルールを確認します。例:DOMAIN-SUFFIX、IP-CIDR、FINAL。
有効化する前に、手動で接続を確認する
On Demandを設定する前に、同じネットワークで手動接続できることを確認してください。この記事では、利用者がすでにサービス事業者との契約とサブスクリプションを用意していることを前提とします。サブスクリプションの更新に成功しても、設定内容を取得できたことを示すだけで、すべての接続先が利用できるとは限りません。接続先のアドレス、ポート、プロトコルの各パラメータが既存の設定と一致しているか確認し、設定ミスを自動再接続で覆い隠さないようにしてください。
- Homeで利用可能と確認済みの接続先を選び、On Demandを一時的にオフにして、現在のGlobal Routingを記録します。
- 接続を手動でオンにし、現在の設定で処理する必要があることが分かっている宛先にアクセスして、接続ログで実際に適用されたルールを確認します。
- 接続を切り、Settings → On Demandを開きます。まず範囲が明確なネットワークルールを1つだけ追加し、保存してから有効にします。
- システムからVPN構成の追加または更新を求められた場合は、画面の指示に従って許可します。その後、システム設定のVPN構成詳細で、該当するConnect On Demandの状態を確認してください。
システム設定の項目名や場所は、システムの表示によって異なる場合があります。システム設定でVPNを検索し、Shadowrocketの該当構成の詳細を開いてください。アプリ内のスイッチだけでなく、システムに保存されたVPN構成もオンデマンド動作に関わります。システム要件とデバイスの対応状況はApp Storeの記載をご確認ください。Wi-Fiのみ対応のiPadでは、モバイル通信への切り替えを検証できません。
Wi-Fi SSID:例外を先に、広い条件を後に
SSIDはWi-Fiネットワーク名であり、ルーターの管理アドレスや接続先の名前ではありません。「特定のWi-Fiでは切断し、それ以外のWi-Fiでは自動接続する」場合は、まず指定SSIDにDisconnect条件を設定し、その後に範囲の広いWi-Fi Connect条件を追加します。システムはオンデマンドルールを順番に評価するため、広い条件を先に置くと、後続の特定SSID条件が評価されないことがあります。
指定Wi-Fiの例外
- 設定画面
- Settings → On Demand
- インターフェース条件
- Wi-Fi
- SSIDの例
- HomeNet-5G
- 動作
- Disconnect
- 順序
- 範囲の広いWi-Fi条件より前に配置
HomeNet-5Gはネットワーク名の例です。実際にデバイスが接続するSSIDに置き換えてください。
その他のネットワーク条件
- 設定画面
- Settings → On Demand
- 後続の条件
- その他のWi-Fi
- 動作
- Connect
- 個別の条件
- Cellular
- 確認方法
- ネットワーク切り替え後に新しいリクエストを送信
これは条件の組み立て方の例であり、そのまま貼り付けられる設定構文ではありません。アプリ内で実際に選べる項目を使って保存してください。
ネットワーク名を入力する際は、大文字・小文字、空白、記号をそのまま保持してください。ワイルドカードに対応していると決めつけないようにしましょう。たとえばHomeNetとHomeNet-5Gは別の名前です。同じSSIDを使う複数のアクセスポイントには、同じ条件が適用される場合があります。SSIDで指定できるのはネットワーク名だけであり、そのネットワークが安全であることを単独で証明するものではありません。特定のWi-Fiで切断するかどうかは、そのネットワークでの実際の利用要件に基づいて判断してください。
要点:まず単一のSSID条件を検証する
最初は指定SSIDのルールだけを残し、そのネットワークへの接続時と切断時にそれぞれ1回ずつテストします。結果が想定どおりなら、他のWi-FiやCellularの条件を追加します。こうすれば、SSIDの照合ミスか、後続ルールによる上書きかを特定しやすくなります。
モバイル通信:切り替えと接続復帰を個別に確認
Cellular条件はモバイル通信インターフェースを対象とし、「指定したWi-Fiに接続していない状態」と同じではありません。特定SSIDのDisconnect条件だけを設定し、モバイル通信を対象とする条件を追加していない場合、そのWi-Fiから離れた後の動作を例外ルールだけから判断することはできません。自動接続するには、対応するCellular Connect条件を追加し、その前にある範囲の広いDisconnect条件が接続を妨げないことを確認してください。
- 対象のWi-Fiに接続した状態でDisconnect条件が適用されることを確認し、システムのVPN状態を記録します。
- システム設定でWi-Fiをオフにします。一時的にアクセスポイントから切断されただけではなく、デバイスが実際にモバイル通信を利用していることを確認してください。
- 新しいWebページを開くか、アプリから新しいリクエストを送信します。システムVPNが確立されたか確認し、続けてShadowrocketで接続状況とリクエストのログを確認します。
- Wi-Fiを再びオンにして指定SSIDに接続し、新しいネットワーク評価の結果がDisconnect条件と一致することを確認します。
ネットワークの切り替え時に既存の接続が切れることがあり、ページにはキャッシュされた内容が表示され続ける場合もあります。自動接続の成否は、新しいリクエストとシステムVPNの状態で判断してください。ページがすぐに再読み込みされるかどうかだけでは判断できません。VPNが確立しているのにアクセスできない場合は、Cellular接続時に接続先へ到達できるか、DNSが正常か、現在のConfigで対象に適用されるルールは何かを確認します。Connect条件を重複して追加するのは避けてください。
ドメイン条件:接続評価とDOMAIN-SUFFIXを区別する
ドメインを使った自動接続では、システムによる接続評価が重要です。Configにドメインを記述するだけでトンネルが起動するわけではありません。システムのOn DemandにあるEvaluate Connection機能は、ドメインや名前解決の条件に基づいて接続を試みるか判断できます。Connect If Neededも「アクセスのたびに必ず接続する」という意味ではありません。現在のOn Demand編集画面で実際に選択できるドメイン評価項目を確認し、ConfigのDOMAIN-SUFFIX行をネットワーク条件に貼り付けないでください。
| 項目 | 処理段階 | 確認内容 |
|---|---|---|
| On Demandのドメイン評価 | 接続を確立する必要があるかを判断 | ドメイン条件、名前解決の結果、対応する接続動作 |
| DOMAIN-SUFFIX | 接続確立後の通信ルール照合 | ドメインのサフィックスとポリシー名 |
| IP-CIDR | 接続確立後のIPアドレス照合 | 宛先IPが指定したアドレス範囲に含まれるか |
| FINAL | 前のルールに一致しなかった場合 | 最終的なポリシーが想定どおりか |
たとえばConfigのDOMAIN-SUFFIX,example.com,PROXYは、ドメインサフィックスに基づく振り分け条件であり、On Demandを自動起動する指示ではありません。example.comはルールの構成例です。また、PROXYが現在の設定で有効になっている必要があります。ドメインによる自動接続をテストする際に入力するのはドメイン名であり、パスやクエリパラメータを含むWebページの完全なURLではありません。
- 先行条件の一致を確認:前のネットワーク条件がすでにConnectの場合、トンネルが先に確立されている可能性があり、後続のドメイン評価が実際に接続を引き起こしたか検証できません。
- 名前解決の経路を確認:DNSキャッシュや、アプリが独自に暗号化DNSを使うことにより、想定したシステムの名前解決評価を通らず、テスト結果に影響する場合があります。
- 接続のライフサイクルを確認:対象のWebページを閉じても、VPNがすぐに切断されるとは限りません。ドメイン評価をブラウザーのタブのオン・オフと同じように考えないでください。
現在の編集画面に必要なドメイン評価項目がない場合は、まず確認可能なWi-FiやCellularの条件を使ってください。同じ名前のConfigルールで代用しないでください。検証では、ドメイン条件またはネットワーク条件のうち、一度に変更する項目を1つにし、元の設定を記録しておきます。異なる2つの仕組みを同時に変更すると、どのルールが結果に影響したのか分からなくなります。
優先順位とよくある設定ミス:現象ごとに確認
On Demandのルール順とConfigのルール順は、それぞれ独立した階層です。前者は接続動作を制御し、後者は通信ポリシーを制御します。FINALを末尾に移動してもSSID条件は直りません。また、SSID条件の順序を変えても、対象ドメインに誤ったポリシーが適用される問題は解決しません。まずシステムがトンネルを確立したか確認し、次にリクエストがどのルールに一致したかを調べてください。
Homeで接続を切ったのに、しばらくすると再接続するのはなぜですか?
Settings → On Demandを開き、自動接続が有効のままになっていないか確認してください。自動動作を一時停止する場合は、On Demandをオフにし、システムのVPN構成でConnect On Demandも確認してから手動で切断します。Homeのスイッチを操作するだけでは、オンデマンド条件を無効にしたことにはなりません。
指定したWi-FiにDisconnectを設定したのに、接続が続くのはなぜですか?
まずシステムのWi-Fi詳細で実際のSSIDを確認し、次にルールの順序を調べます。特定SSIDの条件を範囲の広いWi-Fi Connect条件より前に置き、保存後に該当ネットワークへ再接続します。新しいリクエストを送信し、状態を確認してください。
モバイル通信では自動接続するのに、Webページが開かないのはなぜですか?
まずOn Demandを一時的にオフにし、同じモバイル通信環境で手動接続をテストしてください。手動でも失敗する場合は、Homeで選択中の接続先を確認し、プロトコルパラメータ、DNS、Global Routingを点検します。基本的な接続を直してから、自動接続条件を再び有効にしてください。
Configにドメインルールを設定したのに、アクセス時に自動接続しないのはなぜですか?
DOMAIN-SUFFIXが行うのは通信の振り分けだけです。Settings → On Demandを開き、適用される接続条件があるか確認してください。ドメイン評価を使う場合は、先行するネットワークルール、システムの名前解決経路、キャッシュも確認します。Configの一致条件でシステムの接続評価を代用することはできません。
設定後は、同じ手順で繰り返し確認できる記録を少なくとも1組残してください。記録するのは、現在のネットワーク、SSIDまたはCellular、適用されたオンデマンド条件、システムVPNの状態、新しいリクエストに実際に適用されたポリシーです。必要な情報だけを記録し、サブスクリプションURL、認証情報、接続パラメータ全体を公開しないでください。変更は一度に1か所にとどめ、同じ検証手順を繰り返すほうが、例外条件を複数追加するより原因を特定しやすくなります。
- 指定Wi-Fi:接続時にDisconnectを確認し、切断後は次に適用される条件を確認します。
- その他のWi-Fi:現在のネットワークがConnect条件の対象か確認し、必要に応じて先にWeb認証を完了します。
- Cellular:インターフェースが切り替わったことを確認し、新しいリクエストで接続と通信経路を検証します。
- ドメイン評価:範囲の広いConnect条件の影響を切り分けてから、名前解決と接続動作を確認します。