On DemandはシステムがVPNトンネルを確立・切断するタイミングを決め、Global RoutingとConfigはトンネル確立後のリクエストの処理方法を決めます。手動接続ができ、利用するサービス情報やサブスクリプションをすでに用意している方向けに、まずWi-Fiとモバイル通信の条件を設定し、次にドメイン評価の範囲を確認します。最後に決まった順序で検証し、自動接続、ルールによる振り分け、サービスの利用可否を混同しないようにしましょう。
1. On Demandとルールによる振り分けの違い
ShadowrocketのOn Demandは、Appleのシステムに委ねて接続を自動化する機能です。Webページを開くたびに接続のオン・オフを選び直すものではありません。ネットワークインターフェースやWi-FiのSSIDなどの条件からトンネルが必要かどうかを判断し、リクエストがトンネルに入った後は、Global Routing、現在のConfig、選択中の接続設定によって接続先が決まります。自動接続に成功しても、すべてのリクエストがプロキシ経由になるわけではありません。
たとえば、On DemandによってVPNが接続状態でも、Global RoutingがDirectなら、リクエストは直接接続として処理されます。カスタムルールを使う場合は、Global RoutingがConfigになっているか確認してください。Proxyはすべての通信をプロキシ経由にする設定、Sceneはシーンの選択に関する機能です。いずれもWi-Fiやモバイル通信の接続条件の代わりにはなりません。
要点:手動接続を確認してから自動条件を追加
まずHomeで既存の接続設定を選び、手動で接続して目的のサービスにアクセスできることを確認します。ここで失敗する場合は、サービスのパラメータ、DNS、Configを確認してください。接続障害を隠すためにOn Demandのルールを増やさないようにしましょう。
2. Settings → On Demand:現状を記録してから条件を有効にする
作業前に、Homeで選択中の接続設定、Global Routingのモード、Configを記録しておきます。サブスクリプションを利用している場合は、インポートと更新が完了し、接続設定が有効であることを確認してください。On Demandはサブスクリプションを更新したり、期限切れの認証情報を修正したりする機能ではありません。更新によって設定名や選択内容が変わった場合は、接続テストをやり直してください。
- Homeで手動接続をテストします。初回利用時は、システムの案内に従ってVPN構成の追加を許可してください。
- Settings → On Demandを開き、設定済みの条件を確認します。まず現在の順序を記録し、意味が反対のルールをむやみに追加しないでください。
- 指定したWi-FiのSSIDなど、確認しやすいネットワーク条件を1つ追加します。変更はこの項目だけにし、保存してからOn Demandを有効にしてください。
- iPhoneまたはiPadのシステム設定でVPNを検索し、Shadowrocketの構成詳細を開いてConnect On Demandの状態を確認します。設定画面の表示場所はシステムのバージョンによって異なる場合があるため、実際の画面で確認してください。
- ネットワークを切り替えた後、VPNの状態を確認して、新しいリクエストを送信します。システムによる条件評価とトンネルの確立には時間がかかるため、スイッチを短時間に何度も切り替えないでください。
以下の設定例は条件の組み立て方を示すもので、画面のスクリーンショットでも、そのまま読み込める設定でもありません。ConnectとDisconnectは接続動作を表します。実際に編集できる条件は、Settings → On Demandに表示される項目で確認してください。
3. SSIDでWi-Fiを区別し、モバイル通信は別に設定する
SSIDはWi-Fiのネットワーク名です。ルーターの管理アドレスでも、LAN内でのデバイスのIPアドレスでもありません。入力時は実際の名前と照合し、大文字・小文字、空白、記号を確認してください。自宅の2つの周波数帯にそれぞれHomeNetとHomeNet-5Gという名前を付けている場合は、必要なSSIDを個別に条件へ追加します。名前の一部を、すべてのネットワークに一致するワイルドカードとして扱わないでください。
特定のWi-Fiでは切断する例外
- 設定画面
- Settings → On Demand
- インターフェース条件
- Wi-Fi
- SSIDの例
- HomeNet
- 動作
- Disconnect
- 配置場所
- 通常のWi-Fi接続条件より前
そのネットワークでトンネルを確立しない場合に限って設定します。SSIDだけではネットワークの信頼性を判断できません。
モバイル通信の接続条件
- 設定画面
- Settings → On Demand
- インターフェース条件
- Cellular
- SSIDの指定
- 設定しない
- 動作
- Connect
- 確認方法
- Wi-Fiをオフにして新しいリクエストを送信
モバイル通信にはWi-FiのSSIDがありません。この条件に自宅のネットワーク名を追加しないでください。
「指定した自宅Wi-Fiでは切断し、それ以外のWi-Fiとモバイル通信では接続する」場合は、特定SSIDの例外と通常のWi-Fi条件を分けて設定します。自宅の例外だけを指定しても、ほかのネットワークに自動で反対の動作が適用されるとは限りません。それ以外の状況での動作は、後続の条件や既存の設定によって決まります。
- 同じ名前のネットワーク:場所が異なっても同じSSIDが使われている場合があります。名前の一致だけではルーターの識別や認証はできません。
- 2つの周波数帯で同じSSIDを使用:SSIDが共通の場合、名前の条件だけで周波数帯を区別することは通常できません。
- 認証が必要なネットワーク:WebページでログインするWi-Fiでは、まずネットワーク認証を完了してから、トンネル接続とアクセス状況を確認してください。
- インターフェースの変化:Wi-Fiの電波が弱いと、接続インターフェースが切り替わる場合があります。Wi-Fiがオンかどうかだけでなく、デバイスが実際にどのネットワークを使っているか確認してください。
4. ドメイン評価はDOMAIN-SUFFIXとは異なり、ページを閉じても切断されない
ドメインに関するOn Demandの接続条件では、システムの接続評価とアプリ内の振り分けを区別する必要があります。AppleのOn DemandはEvaluateConnectionによるドメインの照合に対応しており、条件に応じて接続を確立できます。ドメイン条件や選択可能な動作、DNSの判定項目が現在のShadowrocketに用意されているかは、On Demandの編集画面で確認してください。システムがサポートするすべての項目が、アプリ内に必ず表示されるとは限りません。
ドメイン評価の条件が画面にある場合は、完全なURLではなくドメインを入力します。たとえばテスト用のドメインはexample.comとし、https://example.com/pathとは入力しません。評価方法によっては、名前解決の失敗や到達性の判定に依存するため、対象ドメインにアクセスするたびに即座に接続するとは限りません。既存のトンネル、DNSキャッシュ、再利用される接続も結果に影響します。ドメイン条件を検証する際は、先に一致する「すべてのネットワークで接続」条件が同時に設定されていないか確認してください。
| 設定対象 | 解決する問題 | この動作から推測できないこと |
|---|---|---|
| On Demandのドメイン評価 | 一致するリクエストに対して、システムが接続を確立する必要があるか | Webページを閉じるとVPN全体がすぐ切断される |
DOMAIN-SUFFIX | Configでドメインサフィックスごとにリクエストの処理方法を選択 | ルールを追加するだけで未接続の状態からトンネルを起動する |
DIRECT | 一致するリクエストを接続先へ直接接続する | 動作中のVPNトンネル全体を切断する |
FINAL | それまでのルールに一致しなかったリクエストを処理する | On Demandのネットワーク条件に一致しない場合の動作になる |
「特定のドメインはプロキシ経由、それ以外は直接接続」にする場合は、システムにドメインごとの接続・切断を繰り返させるのではなく、主にConfigで設定します。以下はルールの記述例です。現在の設定のルール部分に追加してください。PROXYが有効なポリシーを参照している必要があります。例示したドメインは、利用可能なサービスを示すものではありません。
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
ドメイン条件で接続を開始しないことは、すでに確立している接続を強制的に切断することと同じではありません。1つのトンネルで複数のアプリからのリクエストを処理する場合があります。単一のWebページを開いたり閉じたりする動作を、トンネル全体の接続期間の基準にはできません。
5. 複数条件の順序:個別の例外を先に、一般条件を後に
システムはOn Demandのルールを順番に確認し、最初に一致したルールを適用します。1つのルールにインターフェースやSSIDなどの条件が複数ある場合は、すべてを満たす必要があります。同じルールのSSIDリストには、一致対象とするネットワーク名を列挙します。問題を調べる際は、ルールが存在するかだけでなく、先行する範囲の広い条件に遮られていないかも確認してください。
- 第1段階:個別の例外。たとえば、インターフェースがWi-FiでSSIDがHomeNetの場合にDisconnectを実行します。
- 第2段階:通常のWi-Fi。接続したい残りのWi-FiではConnectを実行します。これを最初に置くと、自宅の例外が適用されない場合があります。
- 第3段階:モバイル通信。Cellularには独立した動作を設定し、Wi-Fi専用のSSID条件は追加しません。
- 最後に確認:上記以外の条件。既存の一般条件を確認し、目的と矛盾する範囲の広いDisconnectまたはConnectが残っていないか調べます。
この順序はネットワーク条件のルール設計について説明しています。EvaluateConnectionを追加する場合は、その前に現在のネットワークに一致するルールがないかも確認してください。On Demandの「最初に一致」とConfigルールの「最初に一致」は、異なる段階で適用されます。FINALの位置を変えてもSSID条件の順序は修正されず、SSID条件を移動してもDOMAIN-SUFFIXのリクエスト処理は変わりません。
6. 4つの状態で確認し、アイコンの変化だけで判断しない
テスト中は、利用中のサービス、Global Routing、Configを変更せず、ネットワーク条件だけを切り替えます。切り替え後は状態が安定するまで待ってから、新しいリクエストを送信してください。すでに開いているページにはキャッシュが表示されることがあり、既存の長時間接続にも新しい経路がすぐ反映されるとは限りません。次の表は前述の設定例で想定される動作であり、特定のネットワークでの実測結果ではありません。
| テスト時の状態 | 想定される動作 | 想定と異なる場合に確認する項目 |
|---|---|---|
| HomeNetに接続 | 特定SSIDのDisconnect条件に一致 | SSIDの入力、例外ルールの順序、設定が保存されているか |
| 別のWi-Fiに接続 | 通常のWi-FiのConnect条件に一致 | 通常条件があるか、ネットワーク認証が完了しているか |
| Wi-Fiをオフにしてモバイル通信を使用 | CellularのConnect条件に一致 | 実際のインターフェース、モバイル通信のアクセス許可、接続設定の有効性 |
| On Demandを一時的にオフ | 設定した条件による自動接続を停止 | システム構成のConnect On Demandの状態 |
自動接続を一時停止する場合は、まずOn Demandをオフにします。必要に応じて既存のトンネルを手動で切断し、システム構成も確認してください。Homeで接続をオフにするだけでは、次に条件が一致した際にシステムが再接続する場合があります。自動条件を長期間使わない場合は、設定内容を記録したうえで該当ルールを無効化または削除すると、手動切断を繰り返すより状態を管理しやすくなります。
7. よくある問題:自動再接続、Webページにアクセスできない、ドメイン条件が動作しない
手動で切断したのに、しばらくすると再接続するのはなぜですか?
まずSettings → On Demandを開き、現在のネットワークがConnect条件に一致していないか確認します。一時的に停止する場合はOn Demandをオフにし、次にシステムのVPN構成でConnect On Demandの状態を確認してから、既存の接続を切断してください。Homeの接続スイッチを何度も押すだけでは解決しません。
自宅のWi-FiにDisconnectを設定したのに、自動接続するのはなぜですか?
システムのWi-Fi設定で実際のSSIDを確認し、空白、大文字・小文字、もう一方の周波数帯のネットワーク名も調べてください。次に、特定SSIDの例外を通常のWi-Fi条件より前に配置します。条件を保存してからWi-Fiに再接続し、変更前から残っているトンネルの状態を新しいルールの結果と取り違えないようにしてください。
VPNは接続済みなのにWebページが開けません。On Demandを変更すべきですか?
まず自動条件を一時停止して手動接続し、Homeで選択中の既存サービスが有効か確認します。次にGlobal Routingと現在のConfigを確認してください。遅延が生じているからといって、DNSの名前解決やWebリクエストが成功しているとは限りません。手動接続でもアクセスできない場合は、サービスのパラメータ、DNS、リクエスト処理ルールを確認してください。
DOMAIN-SUFFIXを追加したのに、ドメインへのアクセス時に自動接続しないのはなぜですか?
DOMAIN-SUFFIXはConfig内で通信を振り分けるルールであり、未接続のトンネルを起動する機能ではありません。まずSettings → On Demandを開き、該当する接続評価条件が用意され、有効になっているか確認します。次に、先に一致するルールがその条件を遮っていないか調べてください。対象ドメインをPROXY経由にしたいだけなら、トンネルを接続した状態で振り分けを確認できます。
設定後の確認では、次の2点を分けて判断します。ネットワークの変化に応じてトンネルが想定どおり確立・切断されるか、そしてトンネル確立後にリクエストが想定どおり振り分けられるかです。それぞれの結果を記録すれば、次に変更すべき項目がOn Demandなのか、Global Routing、Config、既存サービスのパラメータなのか判断できます。