Shadowrocketのバッテリー使用率は、そのまま追加の消費電力を示すものではありません。自分の設定を読み込み済みで、バックグラウンドの動作が多いと感じるiPhone・iPadユーザー向けに、通信処理、ネットワークの再接続、ほかのAppからのリクエストを切り分け、Settings → On Demandで設定を調整する方法を解説します。同じネットワーク条件で記録を比較し、自動接続が必要か判断しましょう。
1. iOSのバッテリー使用状況を確認し、バックグラウンド時間だけで判断しない
iPhoneの「設定 → バッテリー」でAppのアクティビティを確認できる期間を選び、問題が起きた時間帯をタップします。Shadowrocketのバッテリー使用率、画面のオン・オフ中のアクティビティ、同じ時間帯に動画再生、写真の同期、ファイル転送があったかを記録してください。表示される期間や項目名はiOSのバージョンによって異なる場合があるため、実際のデバイスの表示を確認してください。
バッテリー使用率は、選択した期間におけるAppごとの消費電力の割合であり、そのAppがバッテリーを何パーセント消費したかを示すものではありません。たとえば、バッテリー残量が80%から70%に減り、一覧であるAppの使用率が20%と表示されても、そのAppが残量を80%から60%に減らしたという意味ではありません。システムによる割り当てや集計方法も関係するため、表示から正確な消費電力を算出することはできません。
Shadowrocketはシステムのネットワーク拡張機能を使って通信を処理します。メイン画面を閉じてバックグラウンドに移行した後もトンネルが動作する場合があり、ほかのAppからのリクエストがそのトンネルを経由することもあります。そのため、バックグラウンドでアクティビティが表示されても、メインAppが前面で処理を続けているとは限りません。バッテリーの記録、実際の通信量、接続状態を同じ時間軸で確認してください。
結論:まずバッテリー残量の減り方を確認
Appの使用率が上がっていても、同じ時間における全体のバッテリー消費が増えていなければ、まずは現在の設定を維持してください。全体の消費、予期しない通信量、接続の繰り返しが同時に見られる場合に、項目ごとの確認に進みましょう。
2. On Demandは接続条件を制御する機能で、時間指定の省電力スイッチではない
On Demandでは、条件に応じて接続を確立するルールをシステムに設定します。Global Routingとは役割が異なり、前者は接続を開始するタイミングを、後者は接続後の通信に適用するルーティング方針を決めます。On Demandを有効にしてもすべての通信がプロキシ経由になるわけではなく、無効にしても現在の接続が切断されるとは限りません。
| 設定項目 | 制御する内容 | 確認時の注意点 |
|---|---|---|
| On Demand | 条件に一致すると、システムが接続を開始します。 | 無効にした後も、Homeで実際の接続状態を確認してください。 |
| Global Routing → Proxy | プロキシ経由のルーティングを使用します。 | プロキシ経由になるリクエストが増える可能性があるため、Configの通信記録と単純に比較できません。 |
| Global Routing → Direct | 直接接続のルーティングを使用します。 | ルーティングをDirectにしても、システムのトンネルが停止したとは限りません。 |
| Global Routing → Config | 現在のConfigに設定されたルールに基づいて通信方針を決定します。 | Configを読み込んだだけでなく、意図したものが現在有効になっているか確認してください。 |
| Global Routing → Scene | 設定済みのSceneを使用します。 | 実際に適用中のSceneを確認し、テスト中にルーティング条件が変わらないようにしてください。 |
常時接続には、トンネルの維持や通信処理に伴うコストがあります。一方で、頻繁な切断と再接続にも名前解決、ハンドシェイク、再試行が発生する場合があります。このため、「常時接続のほうが必ず省電力」「使うたびに切断すれば必ず省電力」とは言えません。結果はネットワークの安定性、リクエストの頻度、プロトコルの設定、サーバーの動作によって異なります。
3. 1つずつ条件を変えて消費電力の基準を記録する
必要な通信に影響しない時間帯にテストしてください。事前に自分のConfigを保存し、現在のOn Demand設定を記録しておくと、後で元に戻せます。プロトコルの変更、ルールの編集、サブスクリプションの更新、自動接続の調整を同時に行うと、変化の原因を特定できません。以下の時間は観察の目安であり、消費電力の基準値ではありません。
-
基準を記録する
同じ場所、同じWi-Fi環境で、開始時のバッテリー残量、電波状況、時刻を記録します。画面の明るさや低電力モードなどの条件もそろえてください。60分間を観察し、システムアップデートや大容量ファイルの同期が行われる時間帯は避けます。
-
On Demandを無効にする
Shadowrocket → Settings → On Demandを開き、現在の設定を記録してから自動接続を無効にします。Homeに戻って手動で切断し、自動で再接続されないことを確認してください。
-
アイドル状態を観察する
通常どおり通知を受け取れる状態で画面をロックし、終了後にシステムの「設定 → バッテリー」で該当する時間帯を確認します。バッテリー残量の変化やほかのAppのアクティビティを記録し、通知や同期による消費をすべてShadowrocketのものと見なさないでください。
-
手動で接続する
Homeで読み込み済みのConfigに手動接続します。Global Routingとサーバーの選択は変えず、同じ長さの時間を観察してください。大量の通信や接続エラーが発生していないか確認します。
-
On Demandを元に戻す
Settings → On Demandに戻り、使用する条件を復元して、似た使用状況でもう一度観察します。この段階でのみ問題が起きる場合は、すぐにプロトコルを変更するのではなく、条件の一致やネットワークの切り替わりを確認してください。
一度のテストでバッテリー残量に1〜2ポイントの差が出ても、設定の優劣を判断する根拠にはなりません。残量表示には刻みがあり、システムがバックグラウンド処理を行うこともあります。同じ条件で少なくとも複数回観察し、繰り返し現れる傾向を比較してください。デバイスが明らかに熱くなった場合は、高負荷の処理を止め、温度が下がってから再テストします。
4. Wi-Fiとモバイル通信を分けて設定し、条件の競合を避ける
Settings → On Demandを開き、現在の画面に表示されるネットワークの種類やWi-Fiの条件に応じてルールを編集します。条件名や選択肢は実際の画面で確認してください。すべての条件を有効にするのではなく、各ネットワークで自動接続が必要かどうかを明確にすることが重要です。保存後はネットワークを切り替えて、実際の動作を確認してください。
| ネットワーク環境 | 設定の考え方 | 確認方法 |
|---|---|---|
| 自宅などの固定Wi-Fi | 実際の利用目的に応じて自動接続の要否を決めます。必要がなければ、そのWi-Fiを条件から除外することも検討してください。 | 同じWi-Fiに再接続し、意図した接続状態が維持されるか、必要なサービスにアクセスできるかを確認します。 |
| 認証が必要な公衆Wi-Fi | まずネットワークの認証を完了してからトンネルを確認してください。認証が済んでいない状態をプロトコルの不具合と判断しないようにしましょう。 | システムの認証ページで手続きを済ませたことを確認し、その後Homeから手動で接続して通信できるか確認します。 |
| 安定したモバイル通信 | 継続的な接続が必要なら該当するOn Demand条件を有効にし、必要がなければ手動接続と比較してみてください。 | Wi-Fiをオフにして接続状態を確認し、モバイル通信量が実際の利用状況と一致するか記録します。 |
| 電波が弱い、またはネットワークが頻繁に切り替わる場合 | まずネットワークの不安定さを確認します。診断のために一時的にOn Demandを無効にし、問題を覆い隠すような再接続の繰り返しは避けてください。 | 電波が安定した場所で再テストし、エラーが解消するか比較します。必要に応じて元の設定に戻してください。 |
Wi-Fiに接続済みでも、インターネットにアクセスできるとは限りません。ルーターの上流回線の障害、認証の期限切れ、複数のアクセスポイント間の移動などが一時的な切断の原因になります。モバイル通信も、電波が弱いと無線通信の負荷が増えることがあります。こうした問題はShadowrocketのルール設定を変更するだけでは解決できません。
- 一度に変更する条件は1つだけにし、保存後にWi-Fiへの接続、Wi-Fi圏外への移動、画面ロック後の再起動をそれぞれ確認してください。
- Wi-Fi名を条件に使う場合は、実際のネットワーク名を確認してください。似た名前のゲスト用ネットワークを同じネットワークと誤認しないようにします。
- バッテリーの数値を優先して、業務に必要な接続を無効にしないでください。手動切断によるテスト中は、その接続を必要とするAppに影響する場合があります。
5. 再接続が続く場合はエラーを確認し、タイムアウトの変更で問題を隠さない
バッテリーの減りに加えて接続失敗が繰り返される場合は、まず発生したネットワークと時刻を記録し、確認できる接続ログを調べてください。以下はネットワークエラーに表示されることがある英文です。実際のログにはドメイン、ポート、システムのエラー情報が追加される場合があります。該当する記録がなければ、バッテリーの減りだけから特定のエラーが発生したと判断しないでください。
エラー:Network is unreachable
原因:リクエストに利用できるネットワーク経路がありません。ネットワークの切断中や切り替え中に発生することがあります。
対処法:まずWi-Fiの認証が完了しているか、モバイルデータ通信が利用できるか確認してから、Homeで手動接続してください。ネットワーク切り替え時だけ発生する場合は、切り替わった時刻を記録し、On Demandの条件を見直します。
エラー:Connection refused
原因:接続先のポートで接続が拒否されています。サービスが待ち受けていない場合や、ポート番号が正しくない場合によく発生します。
対処法:自分のサービス設定と照らし合わせ、アドレス、ポート、プロトコルを確認してください。ポート番号が443でも、それだけで利用可能なTLSサービスだとは判断できません。
エラー:Operation timed out
原因:制限時間内に処理が完了しませんでした。経路上のパケットロス、接続先への到達不能、ハンドシェイクへの応答がないことなどが考えられます。
対処法:安定したネットワークで手動接続をもう一度試し、現在のConfigのパラメータを確認してください。失敗が続く接続を維持するためだけにタイムアウトを延長しないでください。
TrojanやVLESSなどのConfigでは、TLS、SNI、関連する転送パラメータを自分のサーバーの要件に合わせてください。消費電力の対策として証明書の検証を緩めないでください。通常の利用が終わっても通信量が明らかに増え続ける場合は、接続の再試行だけが原因と決めつけず、同期の継続やメディアのバックグラウンド再生など、リクエストを発生させているAppを特定してください。
6. バックグラウンド更新、サブスクリプションの更新、ルール設定の違い
iOSの「設定 → 一般 → Appのバックグラウンド更新」とShadowrocketのOn Demandは別の仕組みです。前者はAppがバックグラウンドで更新できる機会に関係し、後者はシステムが必要に応じてVPN接続を確立する設定です。バックグラウンド更新をオフにしても、トンネルが停止した証拠にはならず、すべてのバックグラウンド通信が止まるとも限りません。
- サブスクリプションの更新:自分で用意したサブスクリプションを利用している場合は、有効にしている更新スケジュールを確認してください。更新によって通信が発生しますが、まず本当に頻繁に行われているかを確認してから頻度を調整します。比較テスト中はサブスクリプションの内容を一定に保ち、サーバー一覧の変化が結果に影響しないようにしてください。
- ルール設定:Global RoutingでConfigを選択している場合は、現在のConfigが用途に合っているか確認してください。
DOMAIN-SUFFIXはドメインの末尾に、IP-CIDRはIPアドレス範囲に、GEOIPはIPアドレスの地域情報に基づいて一致します。FINALは最終的なフォールバック方針です。これらのルールはOn Demandの接続開始条件の代わりにはなりません。 - 診断操作:遅延の連続テスト、速度測定、詳細ログの記録は、診断中の処理負荷を増やします。原因を特定したら繰り返しテストを止め、通常の利用状態に戻してバッテリーを観察してください。
- プロトコルの選択:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardを一律の省電力ランキングにすることはできません。パケットロス、サーバーの設定、実際の通信量、デバイスの状態によって結果は変わるため、まず現在使用しているプロトコルで安定して接続できるか確認してください。
結論:安定性を基準にOn Demandを使うか判断する
手動接続は安定しているのにOn Demandを有効にすると再接続を繰り返す場合は、まずネットワークの一致条件を見直してください。どちらの方法でも接続できない場合は、ネットワークとConfigを先に確認します。修正後、同じ条件で再び観察し、自動接続を使うか決めてください。
7. 通常の設定に戻す前のチェックリスト
確認が終わったら、必要な接続や更新の設定を復元し、ネットワークの種類、現在のGlobal Routing、On Demandの有効・無効、観察した時間、主なエラーを簡潔に記録しておきます。さらに診断が必要な場合、バッテリー使用率のスクリーンショットだけよりも、こうした情報が役立ちます。ログを共有する前に、サブスクリプションのURL、パスワード、tokenなどの個人情報を削除してください。
- メインAppが前面に表示されているかどうかだけで判断せず、Homeで実際の接続状態を確認してください。
- Configで現在使用中の設定を確認し、HomeでGlobal Routingを確認してください。方針の異なるテスト結果を混ぜて比較しないようにします。
- Settings → On DemandでWi-Fiとモバイル通信の条件を見直し、Wi-Fiへの接続時とWi-Fi圏外への移動時にそれぞれ動作を確認してください。
- システムのバッテリー画面に戻り、全体のバッテリー消費が実際の使用状況と合っているか確認します。異常が続く場合は、ネットワーク、Config、通信の発生元を順番に調べてください。
ShadowrocketはAppleプラットフォーム向けのクローズドソースの商用Appで、主にiPhoneとiPadで利用できます。入手先はApp Storeのみです。クライアントの買い切り購入には、通信サービスの料金は含まれません。この記事では、ユーザー自身がサービスプロバイダーとConfigを用意していることを前提としています。デバイスの互換性、システム要件、一般的な購入情報はApp Storeの掲載内容をご確認ください。