手動接続ができ、ネットワーク環境に応じて接続を自動化したいiPhone・iPadユーザー向けの記事です。まずOn DemandとGlobal Routingの違いを確認し、Wi-Fi・モバイル通信・ドメインの条件を設定します。最後にネットワークを切り替え、リクエストの記録を確認します。利用者自身が契約するサービスやサブスクリプションがあることを前提としています。
1. On Demandは接続するタイミングを決める機能。各リクエストの経路は決めません
ShadowrocketのOn Demandは、システムのVPNオンデマンド機能を利用し、条件に合うと接続または切断します。制御するのは接続のタイミングです。接続後に通信で使われる経路は、Global Routingと現在の設定によって決まります。システムにVPN接続中と表示されても、すべてのリクエストがプロキシサーバーを経由するとは限りません。
設定場所はSettings → On Demandです。サーバーの選択はHome、ルールの設定はConfigで行います。それぞれの役割を切り分けておけば、自動接続に問題が起きたときに、分流ルールを何度も変更せずに原因を調べられます。表示される項目は、アプリの画面やシステムの対応状況によって異なります。
確認の順序:まず接続、次に通信経路
VPN接続が確立しない場合は、まずOn Demandの条件を確認します。接続済みなのに通信経路が想定と異なる場合は、Global Routingと適用されたポリシーを確認してください。2つの問題を混同しないことが大切です。
2. 設定前に手動接続を確認する
自動化は、接続が正常に動作することを確認してから設定します。On Demandでは、サーバーアドレスや認証情報の誤り、サブスクリプションの無効化は解決できません。まずオンデマンド接続を一時的にオフにし、同じネットワークで手動接続できることを確認してから条件を追加します。
- Homeを開き、利用者自身のサブスクリプションが読み込まれていることを確認します。更新が必要な場合は先に更新し、使用するサーバーが一覧に残っているか確認してください。
- 使うサーバーの左側にある丸印をタップし、選択状態にします。サーバーの詳細画面を開くだけで、選択したつもりにならないよう注意してください。
- Home上部の接続スイッチをオンにします。初回接続時は、システムの案内に従ってVPN構成の追加を許可してください。
- Connectivity Testを実行し、接続できることが分かっているHTTPSページを開きます。テストに失敗した場合は、先に手動接続の問題を解決してください。
- Configを開き、現在使用中の設定を確認します。続いてGlobal Routingを確認し、後でルールに基づいて通信を振り分ける場合はConfigを選択してください。
- 現在使える設定と、既存のOn Demand条件を記録しておきます。そのうえでSettings → On Demandを開き、項目を1つずつ変更してください。
3. Wi-Fi:SSIDごとに接続・切断を設定する
Wi-Fi名は通常SSIDを指し、ルーターの管理アドレスや端末名ではありません。まずシステムのWi-Fi設定で現在のSSIDを確認し、On Demandの対応するWi-Fi条件に入力します。空白、大文字・小文字、文字の違いもそのまま正確に入力し、ワイルドカードを追加しないでください。
自宅のWi-Fiでは自動切断し、それ以外のWi-Fiでは自動接続する例では、まず自宅のSSIDを個別に指定し、その後で他のWi-Fiを設定します。以下は設定の考え方と確認方法であり、Configに貼り付ける設定構文ではありません。操作名や編集できる項目は、現在の画面に従ってください。
| 対象 | 動作 | 確認方法 |
|---|---|---|
| 特定のSSID(例:Home-WiFi) | 切断 | そのWi-Fiに接続し、VPNの状態が想定どおりか確認する |
| その他のWi-Fi | 接続を確立 | 別の利用可能なWi-Fiに切り替え、自動接続するか確認する |
| ログインが完了していない公衆Wi-Fi | 先にネットワーク認証を完了 | システムのログインページが開くことを確認してから、オンデマンド接続をテストする |
- Settings → On Demandを開き、Wi-Fi条件を探します。まずは明確なSSIDを1つだけ設定してください。
- そのSSIDで必要な接続または切断の動作を選択します。条件の順序を変更できる場合は、個別のSSID条件を、対象が広いWi-Fi条件より前に置いてください。
- 設定を保存し、On Demandを有効にします。いったんそのWi-Fiから離れて再接続し、画面を開き直すだけでなく、実際のネットワーク切り替えで動作を確認してください。
- この条件が想定どおりに動作することを確認してから、ほかのWi-Fi条件を追加します。
SSIDで識別できるのはネットワーク名だけであり、そのネットワークが信頼できるとは限りません。場所が異なっても同じ名前のWi-Fiが使われていることがあります。ネットワーク環境を把握している場合に限って自動切断を設定し、見覚えのある名前だからという理由だけで接続条件を緩めないでください。
4. モバイル通信:Wi-Fi条件とは分けて確認する
モバイル通信の条件を使えるのは、モバイル通信に対応した端末に限られます。Wi-Fi専用のiPadにこの条件を追加しても、モバイル通信は使えるようになりません。テスト時は、端末が実際にモバイルデータ通信を使っていることを確認し、Wi-Fi接続中のまま誤判定しないようにしてください。
- Settings → On Demandで、モバイル通信に対する接続動作を設定します。確認済みのWi-Fi条件はそのまま残し、ほかの設定は同時に変更しないでください。
- システムのWi-Fiをオフにし、モバイルデータ通信が使えることを確認します。ネットワークの切り替えが完了するまで待ち、VPNの状態を確認してください。
- 新しいHTTPSページを開き、必要に応じてConnectivity Testを実行します。すでに開いているページはキャッシュを使うことがあるため、確認材料をそれだけにしないでください。
- Wi-Fiを再び有効にし、設定済みのネットワークに接続して、そのWi-Fiに対応する動作が実行されるか確認します。
- 自動再接続など別の自動化設定がある場合は、それぞれの動作を確認し、複数の機能が同時に接続状態を制御しないようにしてください。
5. ドメイン条件:接続のトリガーとDOMAIN-SUFFIXは別物
ドメインによるオンデマンド接続では、システムがドメインの名前解決要求を評価します。各ページの完全なURLを確認する機能ではありません。利用できるドメイン条件や評価方法、追加の確認項目は、Settings → On Demandに現在表示される項目に従ってください。Configのルール行をドメイン入力欄に貼り付けないでください。
システムは、DNSで名前解決できるか、指定されたDNSサーバーや接続確認の結果などをもとに、ドメインを評価して接続の要否を判断する場合があります。そのため、ドメインを設定しても、アクセスのたびにVPNが新規接続されるとは限りません。既存の接続やDNSキャッシュ、アプリ独自の名前解決方法も、確認結果に影響します。
| 設定場所 | 入力内容 | 用途 |
|---|---|---|
| Settings → On Demandのドメイン条件 | ドメイン(例:example.com) | システムに接続が必要かを評価させる |
| ConfigのDOMAIN | DOMAIN,example.com,DIRECT | 完全一致するドメインへのリクエストに適用するポリシーを選ぶ |
| ConfigのDOMAIN-SUFFIX | DOMAIN-SUFFIX,example.com,DIRECT | そのドメインとサブドメインへのリクエストに適用するポリシーを選ぶ |
- アクセス権があり、用途が明確な実在のドメインを選びます。表中のexample.comは入力例です。
- ドメイン欄にはドメイン名のみを入力します。
https://、パス、ポート、クエリパラメーターは付けません。 - 画面で選択できる評価オプションに従って条件を設定してください。対応するドメイン欄がない場合は、通信ルールで接続トリガーを代用しないでください。
- テスト前に、ほかのWi-Fi条件やモバイル通信条件によってVPNが先に接続していないことを確認し、新たにドメインへアクセスしてください。
- VPNが接続したか、ドメインを名前解決できたか、リクエストが成功したかを別々に記録します。失敗した場合は、この3段階に分けて原因を特定してください。
IPアドレスへ直接アクセスしても、通常はドメインのトリガー条件を確認できません。ブラウザーがキャッシュしたアドレスを使う場合や、アプリ独自の暗号化DNSを使う場合も、想定したシステムのドメイン評価が行われないことがあります。ネットワークに応じた安定した自動接続が必要な場合は、先にWi-Fiまたはモバイル通信の条件を確認し、その後でドメイン条件を追加してください。
6. 条件が競合する場合:適用範囲を確認してからGlobal Routingを確認
よくある競合は、具体的な条件が広範囲の条件に上書きされるケースです。たとえば、自宅のWi-Fiでは切断したいのに、すべてのWi-Fiで接続する条件も設定している場合です。条件を順に評価する一覧では、個別の例外を一般的な条件より前に置いてください。ネットワークの種類ごとに個別設定する画面では、各種類の動作を確認し、すべての条件が共通のルール一覧を使うと決めつけないでください。
- Proxy:通信を一律にプロキシ経由にする場合に使います。Configのルールですべてのリクエストが決まるという意味ではありません。
- Direct:直接接続する設定です。VPNの接続状態と通信の出口は同じものではありません。
- Config:現在の設定に従って通信を処理します。DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALを確認する場合は、まずこの項目が選ばれていることを確認してください。
- Scene:設定済みのシーンに従って通信を処理します。実際に選択されているシーンの設定を確認し、Configと同じものとして扱わないでください。
以下はConfigの[Rule]セクションの構文例です。ルールの順序を説明するためのものであり、完全な設定でもOn Demandの設定でもありません。ドメインとネットワーク範囲は説明用の値です。現在正常に使えている設定を残し、そのまま上書きしないでください。
[Rule]
DOMAIN,example.com,DIRECT
DOMAIN-SUFFIX,example.org,REJECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
リクエストはルールの順に照合され、前のルールに一致しなかったリクエストにはFINALが適用されます。IP-CIDRの例にあるno-resolveは、このルールのためにドメインを積極的に名前解決しないことを示します。自動接続後にページがREJECTで拒否される場合は、On Demandを何度も切り替えるのではなく、該当するルールを調整してください。
7. よくある質問と最小限の確認記録
手動でオフにしたのに、なぜ再接続するのですか?
まずSettings → On Demandを開いてオンデマンド接続を一時停止し、その後Home上部のスイッチをオフにします。接続だけを切って条件を残しておくと、次のネットワーク切り替えや再評価で接続が再び開始されることがあります。それでも再接続する場合は、ほかの自動接続設定も確認してください。
同じWi-Fiなのに、接続したりしなかったりするのはなぜですか?
実際のSSIDを確認し、名前が異なる別の周波数帯のネットワークに切り替わっていないか調べます。公衆Wi-Fiの認証が完了しているかも確認してください。まずほかの条件を一時的に削除して、この条件だけで再現するか試します。ネットワークに接続できない問題を、条件の不具合と取り違えないようにしてください。
VPNは接続済みなのに、なぜ目的のページが開かないのですか?
HomeでConnectivity Testを実行し、現在のサーバーが使えることを確認します。次にGlobal RoutingとConfigで、どのルールが適用されたか確認してください。特定のドメインだけ失敗する場合は、DNSとREJECTルールを確認します。VPN設定全体をすぐに作り直す必要はありません。
ドメイン条件を設定したのに、ページを更新しても接続されないのはなぜですか?
まず、ほかの条件によって先に接続されていないか確認し、ドメイン欄にURLのパスが混ざっていないか調べます。新たにアクセスしてテストし、システムのDNSキャッシュとアプリの名前解決方法も確認してください。1回のページ更新だけで、ドメイン条件が機能していないと判断しないでください。
テストごとに、少なくとも以下の4項目を記録してください。ネットワーク条件、接続状態、リクエスト結果を照らし合わせて、初めて自動化の動作が想定どおりか判断できます。変更は一度に1つにし、確認してから次の項目を追加することをおすすめします。
- 現在のネットワーク:実際のSSID、または現在使用中のモバイルネットワーク。
- 想定する動作:接続、切断、またはドメイン条件の評価待ち。
- 実際の状態:システムのVPN状態と、Homeに表示される接続状態。
- リクエストの結果:Connectivity Testの結果、新しいページが開くか、該当するリクエストに適用されたポリシー。
設定を戻す場合は、まずOn Demandを無効にし、記録しておいた条件と現在の設定を復元します。手動接続に戻して正常に使えることを確認してから、自動化を1つずつ有効にしてください。この順序なら、サーバーの問題、ルールの問題、接続トリガーの問題を切り分けられます。