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

On Demandの起動条件を解説。Wi-Fi名、モバイル通信、ドメイン条件の設定方法と、複数ルールの優先順位、誤作動時の確認ポイントを紹介します。

この記事の要点

On Demandは、システムがVPN接続を開始・切断するタイミングを決める機能で、通信を振り分けるルールの代わりにはなりません。利用中のサービスとサブスクリプションがあり、手動接続できる方を対象に、まず手動接続を確認し、次にSettings → On Demandでネットワーク条件を設定します。その後、Wi-Fi、モバイル通信、ドメインの各条件を個別に検証してください。ドメインによるオンデマンド接続にはDNSの評価が関わるため、「特定のサイトを開けば必ず接続する」という仕組みではありません。

On DemandとGlobal Routingの違い

ShadowrocketのOn Demandは、接続を開始する条件を設定する機能です。システムのVPN構成に保存すると、ネットワークの変化やドメインの評価条件に応じて、アプリを開いてHome画面上部のスイッチを毎回操作しなくても、システムが接続を試みます。タイマー機能ではなく、接続できないサーバーを修復する機能でもありません。

一方、Global Routingは接続後のリクエストの処理方法を設定します。この項目にはProxy、Direct、Config、Sceneがあり、Configは選択中の構成にあるルールで通信を振り分け、Sceneは設定済みのシーンに従って処理します。オンデマンド接続が開始されても、最終的にリクエストがDIRECTに振り分けられる場合があります。システムにVPN接続中と表示されても、すべてのリクエストがプロキシサーバーを経由するとは限りません。

ネットワーク条件が変化 オンデマンド条件を評価 トンネルを確立 振り分けルールを照合 リクエストを送信

ドメインの評価は、新たな名前解決リクエストをきっかけに始まる場合もあります。この流れは機能の違いを理解するためのもので、すべての接続がネットワーク切り替え後にのみ発生するという意味ではありません。問題を確認するときは、「接続が開始されるか」と「接続後にどう振り分けられるか」を分けて検証してください。

2つ
接続の起動とリクエストの振り分けは別々に設定
3種類
Wi-Fi・モバイル通信・ドメイン条件を確認
2段階
設定場所:Settings → On Demand

設定前に、手動接続の状態を再現できるようにする

この記事では、利用中のサービスとサブスクリプションがすでにあることを前提としています。On Demandにサーバー情報は含まれておらず、クライアントの購入に接続先が付属するわけでもありません。手動接続がまだ成功していない場合は、自動接続条件を追加する前に、サーバー、認証情報、ネットワーク到達性を確認してください。

  1. 自動再接続の影響を避けるため、Settings → On Demandでオンデマンド接続を一時的にオフにします。
  2. Homeに戻り、読み込み済みで使用するサーバーを選択します。選択マークが目的の項目に付いていることを確認してください。
  3. 接続スイッチをオンにします。初回はシステムの案内に従ってVPN構成の追加を許可してください。システムの許可手順は省略できません。
  4. Connectivity Testを実行し、普段アクセスできるページも開いてみます。テスト結果で確認できるのは、指定されたテスト先への接続状況です。すべての用途の通信を検証できるわけではありません。
  5. 現在のGlobal Routingの選択項目と有効なConfigを記録してから接続を切り、自動接続のテストに進みます。

Wi-Fiとモバイル通信:条件を確認してから動作を選ぶ

Settings → On Demandを開き、現在表示されているネットワーク条件と動作の選択肢を確認します。画面のレイアウトによって、条件と動作が同じ行に表示される場合と、個別に編集する場合があります。実際に表示されている項目に従ってください。設定の考え方は共通で、まずネットワークを指定し、その条件に一致したときに接続するか切断するかを選びます。用途を示すだけのメモをWi-Fi名として扱わないでください。

Wi-Fi名には実際のSSIDを入力

Wi-Fiを指定するときは、デバイスが現在接続しているネットワークの正式な名称、つまりSSIDを入力します。たとえば、以下のHome-WiFiは説明用の名称です。システムのWi-Fi画面に表示されている実際の名称に置き換えてください。ルーターの管理アドレス、Wi-Fiパスワード、https://で始まるURLは入力しないでください。引用符やワイルドカードも追加しないでください。

  1. システムのWi-Fi画面で現在のネットワーク名を確認し、大文字・小文字、空白、末尾の文字まで一字ずつ照合します。
  2. Settings → On Demandに戻り、Wi-Fi条件にネットワーク名を入力して、目的に合った動作を選び、保存します。
  3. On Demandを有効にし、対象のWi-Fiを一度切断してから再接続し、接続状態が想定どおり変化するか確認します。
  4. 別のWi-Fiに切り替えて同じ確認を行い、このルールが意図せずすべての無線ネットワークに適用されていないことを確かめます。

同じルーターでも周波数帯ごとに異なるネットワーク名が設定されている場合があります。また、同じSSIDが別の場所で使われていることもあります。名前が一致しても、安全なネットワークであることの証明にはなりません。見覚えのある名前だからといって、安全性を確認済みと判断しないでください。

モバイル通信ではインターフェイスの条件を指定し、通信事業者名は入力しない

モバイル通信の条件は、システムが現在使用しているモバイル通信インターフェイスを対象とします。電話番号、通信事業者名、モバイルネットワークのAPNを入力する項目ではありません。指定したWi-Fiから離れたら自動接続したい場合は、ほかのWi-Fi接続時の動作も考慮してください。モバイル通信のルールだけでは、「自宅のWi-Fi以外すべて」を意味しません。

Wi-Fiを指定する例

設定場所
Settings → On Demand
ネットワーク条件
Wi-Fi
名称の例
Home-WiFi
動作
VPN接続を維持しない場合はDisconnect

そのネットワークでVPNを切断する必要がある場合にのみ使用します。SSIDは実際の名称に置き換えてください。

モバイル通信の例

設定場所
Settings → On Demand
ネットワーク条件
Cellular
名称欄
Wi-FiのSSIDは入力しない
動作
VPNを自動接続する場合はConnect

保存後にWi-Fiをオフにし、デバイスが実際にモバイルデータ通信を使用していることを確認してからテストします。

Connectは接続を試みる動作であり、接続の成功を保証するものではありません。Disconnectは、該当する条件で接続を切断します。画面に無視や状態維持の動作がある場合も、「確実に切断する」という意味ではありません。確実に除外したいときは、ルール名だけで判断せず、動作の実際の意味を確認してください。

ドメイン条件:完全なURLではなくドメイン名を入力

ドメイン条件は、Wi-Fiやモバイル通信インターフェイスの条件と完全に同じではありません。システムのVPNオンデマンド機能では、ドメインを評価して接続を判断できます。ドメインが条件に一致すると、名前解決の結果とルールの要件に基づいて接続するかどうかが決まります。この仕組みにはEvaluateConnectionやConnectIfNeededの動作が関わることがあり、Webブラウザーのアドレス欄に入力した文字列との単純な照合ではありません。

Settings → On Demandを開き、現在の画面にドメイン関連の評価条件があるか確認します。実際に項目が表示されている場合にのみ設定してください。ドメイン一覧にはexample.comのような名前を入力します。以下の振り分け構文をドメイン欄に貼り付けたり、DNSサーバー欄を対象ドメインの入力欄と取り違えたりしないでください。

入力内容対応方法理由
example.comドメイン名の例として使うスキーム、ポート、パスは含めない
https://example.com/pageドメイン部分だけを入力ドメイン評価ではWebページのパスは照合されない
example.com:443ポート部分を削除443はHTTPSでよく使われるポートで、ドメイン名には含まれない
DOMAIN-SUFFIX,example.com,PROXYConfigのルール欄に入力これは振り分けルールであり、オンデマンド接続のドメイン入力形式ではない

複数の個別ホストを対象にしたい場合は、ドメイン欄の一致条件を確認してください。*.example.comがどの欄でも有効だと決めつけてはいけません。ドメイン関連の項目によって、サフィックスの一致方法が異なる場合があります。まず特定のホスト名でテストし、対象を段階的に広げてください。

「VPN接続は維持し、指定ドメインだけをプロキシ経由にしたい」場合は、ドメインによるオンデマンド接続で振り分けるのではなく、Global Routing → Configとルールの内容を確認するのが適切です。以下は機能の違いを示す例です。該当ドメインへのリクエストに影響するため、目的に合った設定で使用してください。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

DOMAIN-SUFFIXはここでリクエストの送信先を決め、FINALはそれ以前のルールに一致しなかったリクエストを処理します。GEOIPやIP-CIDRも振り分けルールに属します。これらをConfigに記述しても、On Demandの接続開始条件にはなりません。

複数のルールがある場合:「より具体的な条件」ではなく、順序を確認

システムはオンデマンドルールをリストの順に評価し、最初に一致した最上位ルールを使用します。ドメイン名が長い、SSIDがより具体的といった理由で、自動的に優先順位が上がると考えてはいけません。1つの最上位ルール内にある異なる条件は、通常すべて満たす必要があります。同じ名称リスト内に複数の候補がある場合は、そのうち1つが一致すれば対象になります。ドメイン評価には内部動作が関わる場合もあるため、すべての条件を単純な一覧として扱うことはできません。

現在の画面でルールの順序を変更できる場合は、明確な例外条件を広範な条件より前に配置します。画面に固定の選択肢しかない場合、自由に並べ替えられると考えないでください。保存後の動作を確認し、各選択肢がどのように影響し合うかを検証します。特に、広範な接続条件を有効にしたまま、後続の除外条件が必ず適用されると期待しないでください。

  1. まず目的を明確にする:たとえば「指定したWi-Fiでは切断し、モバイル通信では接続し、その他のWi-Fiでは状態を変えない」。
  2. 条件の重複を確認する:すべてのWi-Fiで接続するルールは、指定SSIDで切断するルールと重複します。
  3. 例外を設定する:並べ替え可能なルール一覧では、指定SSIDの例外を先に評価し、その後に広範なWi-Fi条件を配置します。
  4. ドメイン条件は個別に検証する:最上位のネットワークルールですでにDisconnectが適用された場合、後続のドメイン評価で覆るとは限りません。
  5. 保存し直してテストする:アプリで変更した内容は、有効なVPN構成に保存する必要があります。編集画面を変更しただけで保存していない場合、システムが新しい条件を使用しているとは限りません。

ここで説明する順序はOn Demandのルール順であり、Config内のルールを上から順に照合する仕組みとは別です。どちらも「最初に一致したものを使う」方式でも、2つのリストを混同して優先順位を決めることはできません。

確認とトラブルシューティング:起動条件、接続、振り分けの順に確認

設定後は、指定したWi-Fi、その他のWi-Fi、モバイル通信をそれぞれテストしてください。ドメイン条件は個別にテストし、DNSキャッシュやバックグラウンドリクエストの有無も記録します。以下は確認すべき動作とチェック項目であり、あらゆるネットワーク環境での成功を保証するものではありません。

手動で切断しても、なぜまた接続される?

まずSettings → On Demandでオンデマンド接続を一時的にオフにし、その後Homeに戻って接続スイッチをオフにします。その後、自動接続が起きなくなれば、何らかの条件が接続を開始していたと考えられます。広範なネットワーク接続ルールや、バックグラウンドでのドメインリクエストを1つずつ確認してください。接続を一時停止するには、自動接続の設定もあわせて調整する必要があります。

自宅のWi-Fiで切断する設定なのに、なぜ接続が続く?

まずシステムのWi-Fi画面でSSID全体を確認し、すべてのWi-Fiで接続する条件がより上位にないか確認します。保存後、ネットワークを切断してから再接続してください。ルールが正しいのに動作が異なる場合は、保存したばかりのShadowrocket VPN構成がシステムで使用されているか確認します。

指定したドメインを開いても接続されないのは、入力ミス?

まずドメイン欄からスキーム、パス、ポートを削除し、その条件が無条件の接続なのか、名前解決の必要に応じた接続なのか確認します。ConnectIfNeededの場合、現在のネットワークで名前解決が成功していると接続されないことがあります。DNSキャッシュ、アプリ独自の名前解決、先に一致したネットワークルールも確認してください。

自動接続は成功したのに、ページが開かないのはなぜ?

Homeに戻ってConnectivity Testを実行し、既定のサーバーが利用可能か確認してから、Global Routingと現在のConfigを確認します。テストに失敗した場合は手動接続に戻し、サーバーと認証情報を調べてください。テストは成功するのに特定のページだけ開けない場合は、該当リクエストのDNSと振り分けルールを確認します。On Demandの条件をむやみに追加しないでください。

元の状態に戻すには、Settings → On Demandをオフにして保存し、Homeの接続スイッチを手動で操作します。手動接続の状態に戻ったことを確認したら、条件を一度に1種類ずつ再度有効にしてください。サブスクリプションの更新で変わるのは、利用者が設定したサーバー一覧や関連設定です。オンデマンドルールが正しいことの証明にはなりません。更新後も、選択中のサーバーと実際の接続結果を確認してください。

App Storeで正規アプリを確認