On Demandは接続を自動で開始する条件を制御する機能で、省電力スイッチでも、すべての通信をプロキシ経由にする設定でもありません。ネットワーク切り替え後に接続を自動で復旧したい場合は有効のまま条件を確認し、決まった時間だけ使う場合は無効にして手動で接続できます。バックグラウンドの電池使用率が上がった、切断後に再接続する、画面ロック中も動作が続くといった場合は、バッテリー履歴、接続状態、リクエストログを順に確認して原因を絞り込みましょう。
On Demand・トンネル・実際の通信を区別する
Shadowrocketのメイン画面をバックグラウンドに移しても、システムのVPNトンネルがリクエストを処理し続ける場合があります。ホーム画面に戻る、画面をロックする、Appスイッチャーからアプリを閉じるといった操作だけでは、トンネルが停止したとは判断できません。接続中かどうかはShadowrocketのHomeに戻って状態を確認し、システム設定のVPN表示とも照合してください。
On Demandは接続を開始する条件を制御し、Global Routingは通信の処理方法を制御します。On Demandを有効にすると、現在のオンデマンドルールに合致した場合にシステムが接続を試みます。「通信を検出したときだけ一瞬動作する」タイマー機能ではなく、通信がないときに必ず切断されるわけでもありません。接続が維持されるか、再接続されるかは、実際のルールとネットワーク環境に応じて判断してください。
電池を消費する要因には、トンネル内のデータ処理、暗号化通信、DNSクエリ、接続失敗後の再試行のほか、リクエストを送信するバックグラウンドアプリや無線ネットワーク自体も含まれます。Webページを開いていなくても、写真の同期、メールの受信、ほかのアプリのバックグラウンド動作によって通信が発生することがあります。そのため、システム上で一部の動作がShadowrocketの使用として表示されても、それだけでOn Demandが原因とは断定できません。
自動接続を維持するか、手動接続にするかを利用状況で選ぶ
ここでいう「常時接続」とは、トンネルを利用可能な状態に保ち、切断後は条件に応じて復旧させる使い方を指します。On Demandに独立した省電力モードがあるという意味ではありません。On Demandを無効にすると該当する自動接続動作が止まりますが、すでに確立されているトンネルまで必ず切断されるわけではありません。接続を停止するにはHomeで手動切断し、状態を確認してください。
| 設定方法 | 用途 | 確認するポイント |
|---|---|---|
| On Demandを有効にする | 条件に合ったときに接続を自動で開始、または復旧したい。 | Wi-Fiやモバイル通信の切り替え後に、頻繁な再接続が起きないか。 |
| On Demandを無効にして手動接続する | 決まった作業時間やタスクの間だけ使いたい。 | 使用後に確実に切断できているか、次回の接続を忘れずに行えるか。 |
| On Demandを有効にして条件を絞る | 一部のネットワーク環境でのみ自動接続したい。 | 現在の画面で設定できるネットワーク種別や一致条件が、接続不要な環境まで対象にしていないか。 |
自動接続が手動接続より必ず電池を多く消費するとは限りません。どちらの方法でも同じトンネルを維持して同じリクエストを処理するなら、スイッチの状態だけから電池消費の差は判断できません。比較する際は、接続時間の合計、自動再接続の回数、接続不要な時間帯まで処理対象になっていないかを確認してください。
まとめ:まず接続が必要な時間帯を決める
接続が必要なのが毎日決まった作業時間だけなら、まず手動接続で基準を確認します。自動復旧が必要ならOn Demandを有効のままにし、プロトコルをすぐ変更するのではなく、接続条件の範囲と再接続の原因を優先して確認してください。
システムのバッテリー画面で比較できる記録を取る
iPhoneまたはiPadでシステムの「設定 → バッテリー」を開き、画面に表示される期間、バッテリー残量の推移、アプリのアクティビティを確認します。システムのバージョンによって期間や項目名が異なる場合があるため、実際の端末の表示に従ってください。同じ時間帯を選んでShadowrocketとほかのアプリの動作を比較し、1日分のデータと短時間のテストを混同しないようにします。
- 開始時と終了時の条件を記録します。開始時刻、バッテリー残量、充電中かどうか、Wi-Fiとモバイル通信のどちらを使ったか、電波が安定していたかを書き留めます。インターネット共有、ナビ、ビデオ通話など、負荷が大きく変わる操作も記録してください。
- バッテリー残量とアクティビティの関係を確認します。残量の減少が画面使用中に集中しているか、画面ロック中も続いているかを見ます。システムにバックグラウンド動作の時間が表示される場合は併せて記録します。ただし、それだけでプロセッサーが常に高負荷だったと判断しないでください。
- 接続状態を確認します。テストの開始時と終了時にHomeを開き、トンネルが接続中か記録します。途中でネットワークを切り替えたり手動で切断したりした場合は、その時刻も記録してバッテリーの推移と照合できるようにします。
- 同じ条件で繰り返します。たとえば60分の観察時間を2回設け、同じネットワーク、ほぼ同じ画面使用量、同じ設定にそろえて、On Demandまたは接続方法だけを変えます。ここでの60分は記録方法の例であり、製品のバッテリー駆動時間を示すものではありません。
バッテリー画面のアプリ別割合は、選択した期間における電池消費の内訳です。「アプリがバッテリー全体の同じ割合を消費した」という意味ではありません。ほかのアプリの動作が減るとShadowrocketの割合は上がることがありますが、端末の実際の電池減少量が増えたとは限りません。バッテリー残量の推移、実際の減少量、動作時間帯を併せて確認してください。小さな差は複数回観察し、1回の記録だけで結論を出さないようにしましょう。
Settings → On Demandを順番に調整する
ShadowrocketのSettings → On Demandを開き、まず有効になっているか確認してから、画面に表示されるルールやネットワークの一致条件を確認します。アプリの画面やシステム環境によって、表示される項目は異なる場合があります。説明をそのまま再現するために存在しないスイッチを探したり、特定のWi-Fi名を一般的な例として入力したりしないでください。
- まず手動接続を基準にします。On Demandを無効にし、Homeに戻って手動で切断します。未接続になったことを確認してから、接続不要な時間帯にも同程度の電池消費が続くか観察してください。
- 次に手動接続を試します。On Demandを無効のままにして、Homeから既存の設定で手動接続し、普段と同じ作業を行います。この場合も電池消費が明らかに増えるなら、自動接続だけを原因とせず、リクエストの負荷やネットワークも確認してください。
- 自動接続を再設定します。自動復旧が必要な場合はOn Demandを再び有効にします。画面にWi-Fi、モバイル通信、ネットワーク一致条件が表示される場合は、必要な範囲だけを残してください。変更後は該当するネットワークごとに動作を確認します。
- 切断と復旧を確認します。管理できる環境でネットワークを一度切り替え、Homeで期待どおりに接続が復旧するか確認します。テスト後にネットワークを何度も切り替え続けないでください。その操作自体が接続確立の回数を増やします。
「切断してもすぐ再接続する」場合は、まず自動接続の動作を確認します。On Demandが有効で、現在のネットワークが引き続き条件に合致していれば、システムが再接続することがあります。未接続の状態を確認するには、先にオンデマンド接続を無効にしてから手動で切断してください。Homeの接続スイッチを繰り返し操作するだけでは、接続処理を何度も発生させることがあります。
バックグラウンド動作が続く場合は、リクエストと再試行を確認する
同じ作業をしているときに手動接続でも自動接続でもバックグラウンド動作が多い場合は、次に「トンネル内で何が処理されているか」を確認します。アプリにリクエスト履歴やログ画面がある場合は、観察時間帯に該当する時刻、接続先、失敗情報を確認してください。関係する項目を少数だけ記録すれば十分です。詳細度の高いログを長時間有効にする必要はありません。ログの記録自体にも処理やストレージが必要です。
- 同じ接続先へのアクセスが一定間隔で続く:アプリの同期、状態確認、接続失敗後の再試行がないか確認します。短時間に同じリクエストが大量に繰り返される場合は調査が必要ですが、回数だけで電池消費量を判断することはできません。
- ネットワーク切り替え後に連続して失敗する:Wi-Fiとモバイル通信の電波状態を、失敗が起きた時刻と照らし合わせます。ネットワークが不安定だとハンドシェイクや再送が繰り返されることがあります。まず安定したネットワークで再確認してください。
- Connectivity Testを何度も実行している:テストでは確認用のリクエストが送信されるため、接続可能かどうかの確認には適していますが、バッテリー観察中に繰り返し実行するのには向きません。必要な確認を1回行ったら、繰り返し操作は止めてください。
- 利用中のサブスクリプションが更新された:更新作業は観察時間と分けて行います。設定の更新、接続先の再選択、再テストを同時に行うと、通常のメンテナンスと異常な再試行をログ上で区別しにくくなります。
エラー:Connection timed out
原因:接続が許容時間内に完了しませんでした。現在のネットワーク、接続先アドレス、接続パラメータなどが関係している可能性があります。タイムアウトが1回あっただけでは、On Demandの問題とは断定できません。
対処方法:同じ時間帯にタイムアウトが連続していないか確認し、安定したネットワークで既存の設定を使って1回再試行します。それでも失敗する場合は、利用中のサービス提供元に手元の接続情報を確認し、テストを繰り返し続けないでください。
上のエラーカードは、ログに同じ文言が実際に表示された場合に見分けるための例です。すべての失敗で同じエラーが表示されるわけではありません。HomeにNot Connectedと表示されている場合、まずこれは接続状態を示す表示であり、失敗原因を特定するものではありません。接続を試みた時刻とログを照合して判断し、状態表示を具体的なエラーとして扱わないでください。
ルーティングモードとプロトコルを区別して、最終設定を決める
HomeのGlobal RoutingとOn Demandは別々の設定です。Global RoutingのProxy、Direct、Config、Sceneは、アプリ内の説明と現在の設定を確認してください。DirectはシステムのVPNトンネルを切断することと同じではありません。接続中と未接続を比較する場合は、Directに変更するだけでなく、実際に切断してください。
Configを使う場合は、Configで現在有効なファイルのRuleを確認します。DOMAIN-SUFFIX、GEOIP、IP-CIDRなどのルールは設定順に照合され、最後のFINALはそれまでに一致しなかったリクエストの処理方法を指定します。通信がどのポリシーに送られるかは接続経路に影響することがありますが、ルールの数だけからバッテリー駆動時間を判断することはできません。
- まず実際の通信経路を確認します:現在のGlobal Routing、有効なConfig、適用されたポリシーを確認してください。オンデマンド接続だけを試しているつもりで、実際には通信の出口も同時に変更していたという事態を避けられます。
- プロトコルは変更せずに比較します:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは接続の特性が異なりますが、ネットワーク品質、設定値、負荷を考慮せずに省電力の優劣を一律に決めることはできません。
- 有効な設定は維持します:自動接続の条件が広すぎて不要な接続時間が生じているだけなら、接続条件の範囲を調整します。どちらの接続方法でも同様の問題が起きる場合は、リクエストの発生元、ネットワーク品質、接続失敗を引き続き確認してください。
- 設定を戻した後も確認します:次回の通常利用時にバッテリーの推移とHomeの状態をもう一度確認し、不要な接続が減っていることと、必要な自動復旧が問題なく動作することの両方を確かめてください。
まとめ:単一の割合ではなく、再現する現象で判断する
決まった時間だけ接続が必要なら、手動で接続し、作業後に切断します。自動復旧が必要ならOn Demandを有効にして、一致条件を確認します。同じネットワークと同じ作業内容で差が繰り返し確認できた場合に限り、変更後の方法を継続して使う設定として採用しましょう。