電池使用率・実際の減り方・通信切断を切り分ける
まず端末全体の電池残量の減り方を確認し、その後Clashのバックグラウンド記録を見ます。バッテリー画面で「使用率が高い」と表示されても、アプリが端末の電池を同じ割合だけ消費したとは限りません。統計の算出方法はOSによって異なり、集計期間中のアプリごとの消費割合を表示する画面もあれば、VPN経由の通信を関連アプリの使用量に含める画面もあります。ランキングのスクリーンショットだけで異常と判断しないでください。
たとえば、端末全体の残量が80%から76%に減り、バッテリー画面であるアプリの消費割合が25%と表示されても、そのアプリが電池を25ポイント消費したという意味ではありません。以下の数値は測定方法を説明するための例であり、特定のスマートフォンでの実測結果でも、すべての端末が達成すべき基準でもありません。
- 発熱が続き、通信量も増え続ける:バックグラウンドでのダウンロード、クラウド同期、動画の先読み、接続の再試行を優先して確認します。
- 画面点灯中は正常で、ロックすると通信が切れる:電池制限、バックグラウンド実行権限、VPNサービスが動作中かを確認します。
- モバイル通信のときだけ電池の減りが速い:電波強度、通信方式の切り替わり、接続先ノードへの到達性も確認し、すぐにTUNが原因だと決めつけないでください。
- クライアント更新後に急に消費が増えた:クライアントとカーネルのバージョン、設定変更を記録し、一度に一つの条件だけ変えて比較します。
画面ロック状態で60分間の比較記録を取る
バックグラウンド権限を変更する前に、同じ条件で2回測定します。電波が安定した同じWi-Fiを使い、開始時の電池残量をそろえ、OSアップデートと大容量ファイルのバックアップを一時停止します。設定を切り替えたら、初回のサブスクリプション更新、ルール読み込み、接続の再確立が済むまで約5分待ってから計測を始めます。
- 環境を記録:スマートフォンの機種、OSのバージョン、クライアントとカーネルのバージョン、Wi-Fiかモバイル通信か、省電力モードの有無を記録します。
- 基準値を測定:プロキシを停止し、画面をロックして60分間待ちます。開始・終了時の電池残量と端末全体のバックグラウンド通信量を記録してください。この測定は比較用です。プロキシ経由でないと利用できないサービスには、測定中にアクセスしないでください。
- プロキシ接続時を測定:アプリの状態を同じにして、安定したノードに接続し、同じ手順で画面をロックして60分間測定します。
- 順序を入れ替えて再測定:測定の順序を逆にして、もう一組計測します。写真のアップロード、OSのメンテナンス、アプリの更新が一方の測定時だけ発生する影響を避けられます。
| 記録項目 | 記録方法 | 確認すること |
|---|---|---|
| 開始・終了時の電池残量 | 例:80% → 78%、測定時間60分 | アプリのランキングだけでなく、端末全体の電池消費を比較 |
| バックグラウンド通信量 | 測定前後の累計通信量の差(MB)を記録 | 待機中の消費と実際のデータ転送を区別 |
| 接続状態 | 画面ロック前とロック解除後に再接続したか記録 | バックグラウンド制限やノードの停止を特定 |
| エラーログ | タイムアウトの発生時刻と頻度を記録 | 測定中ずっと再試行が続いているか判断 |
電池残量の表示精度は通常1%単位です。短時間で1ポイント差が出ただけでは結論を出せません。2回の測定結果にほとんど差がない場合は、3時間まで延長するか、条件の近い別の夜間時間帯で比較してください。重要な通知を受け取る必要がある場合、測定のために必要なネットワークサービスを無理に停止しないでください。
Androidの電池最適化対象外設定:通信切断の症状に合わせて変更
Androidのプロキシクライアントは通常、OSのVPNインターフェースで通信を処理し、フォアグラウンドサービスで動作を維持します。最適化対象外にすると、バックグラウンド処理に対するOSの制限を緩和できますが、暗号化や通信転送の処理負荷が下がるわけではありません。アプリを「制限なし」にすると、画面ロック中の通信切断が改善する場合がある一方、これまで停止されていたバックグラウンド処理が続くこともあります。
まずアプリの電池設定を確認
標準的なAndroid 14を例にすると、「設定」→「アプリ」→「すべてのアプリを表示」→クライアントを選択→「アプリのバッテリー使用量」の順に開き、「制限付き」になっていないか確認します。OSによっては「アプリの電池使用量」や「バックグラウンドでの使用を許可」と表示される場合があります。以下の手順は実際の画面に合わせてください。すべてのメーカーで同じ項目が表示されるとは限りません。
- まずは「最適化」またはOSの初期設定のままにします。接続後に画面をロックして15~30分待ち、バックグラウンド動作が実際に停止するか確認してください。
- ログやVPNの状態からサービスが終了していると分かった場合は、クライアントを「制限なし」にするか、バックグラウンド実行を許可して再測定します。
- 「自動起動」の設定がある場合、再起動後にサービスを自動で再開したいときに限って有効にします。自動起動と画面ロック中の動作維持は別の設定です。
- すべてのアプリの電池制限をまとめて解除しないでください。プロキシクライアントだけを変更すれば、何が影響したのか判断しやすくなります。
メーカー独自のバックグラウンド制限とOSのVPN設定を区別する
Samsung One UI 6では、「設定」→「バッテリー」→「バックグラウンドでの使用制限」から、クライアントが「スリープ中のアプリ」または「ディープスリープ中のアプリ」に追加されていないか確認できます。他のメーカーには、バックグラウンドでの固定、省電力管理、バックグラウンドで電池を多く使用するアプリの管理などがあります。項目名はOSのバージョンによって異なります。アプリ一覧での「ロック」も、電池最適化の対象外と同じとは限りません。
対応端末では、「設定」→「ネットワークとインターネット」→「VPN」→該当する設定を開き、「常時接続VPN」を確認できます。「VPN未接続時の接続をブロック」を有効にすると、VPNを利用できないときに他のネットワーク接続も遮断します。通信が切れたら必ず遮断したい場合に適していますが、省電力機能ではありません。有効にする前に、ノード障害、再起動、Wi-Fi切り替え後の復旧動作を確認してください。
TUN常時接続の見極め:設定名より通信を処理する範囲が重要
デスクトップ版では「システムプロキシ」と「TUNモード」が別の設定になっていることがよくありますが、スマートフォン版に同じ考え方をそのまま当てはめることはできません。Androidクライアントは通常、VpnServiceを使って仮想ネットワークインターフェースを作成します。画面に「TUN」ボタンがなくても、VPNインターフェース経由で通信を送受信している場合があります。実際の転送処理、アプリごとの設定、カーネルとの連携方法はクライアントによって異なります。
TUN常時接続の負荷は、処理するパケット数や接続数、プロトコル、暗号化処理に左右され、無線通信による端末の起動頻度にも影響されます。通信がなければ、仮想インターフェースが存在するだけで高負荷が続くわけではありません。一方、大量の短時間接続や接続失敗の再試行、バックグラウンドでのアップロードが続けば、ルールモードでも電池を消費する場合があります。
| 利用状況 | 設定の選び方 | 確認する影響 |
|---|---|---|
| プロキシ経由のメッセージを常時受信する | VPN接続を維持し、安定したノードとルールによる振り分けを利用 | 画面ロック中の通知、通信切断からの復旧、ネットワークの切り替え |
| 特定のサービスを短時間だけ利用する | 利用前に接続し、終わったら手動で停止 | 停止後、該当するアプリがインターネットに接続できなくなる場合があります |
| 接続をVPN経由にするアプリが一部だけ | クライアントが対応していれば、アプリごとの対象リストを設定 | ログイン時のリダイレクト、ブラウザー、関連するシステムコンポーネント |
| プロキシを経由しない通信を必ず遮断したい | 必要に応じて常時接続とVPN未接続時の通信遮断を維持 | ノード障害時に端末全体がオフラインになった場合の復旧方法 |
「ルールでDIRECTと判定されること」と「アプリをVPNから除外すること」は別の動作です。DIRECTは通常、通信がカーネルに渡された後、カーネルが接続先へ直接接続することを意味します。一方、アプリごとの除外では、そのアプリの通信がVPN経由にならない場合があります。後者はVPNが処理する範囲を減らせますが、DNS、ルーティング、通信の出口も変わるため、電池消費の変化だけで判断しないでください。
省電力を目的に、TUNのプロトコルスタックをむやみに切り替えたり、必要なDNS処理を無効にしたりしないでください。あるスマートフォンで負荷が下がった設定が、別の端末でも有効とは限りません。変更前に設定を保存し、各回で変更する項目は一つだけにします。Webサイト、メッセージ、ネットワーク切り替えが正常に動作することを確認してから、その設定を維持してください。
ヘルスチェック、DNSの再試行、バックグラウンドログを減らす
まず定期実行される処理を確認します。サブスクリプションの更新、プロキシプロバイダーのヘルスチェック、グループの速度テストはそれぞれ別の仕組みです。「サブスクリプションの更新間隔」を長くしただけで、バックグラウンド通信がすべて減るわけではありません。特に複数の自動選択グループが大量のノードを繰り返しテストすると、手動で測定していなくても定期的な通信が発生する場合があります。
実際の利用状況に合わせて速度テストの頻度を調整する
mihomoの設定で使う、ヘルスチェック部分の例です。既存のプロキシプロバイダー設定に統合して使用してください。これだけを完全な設定として読み込むことはできません。interval: 1800は1800秒、つまり30分ごとにチェックする設定です。lazyは、プロバイダーを使用していない間に不要なチェックを続けないための項目です。具体的な動作はクライアントとカーネルの実装も確認してください。
health-check:
enable: true
url: https://cp.cloudflare.com/generate_204
interval: 1800
lazy: true
テスト用のURLには、現在のネットワークとプロキシ経由の両方でアクセスできるものを指定してください。間隔がもともと300秒なら、1800秒に変更することで予定されるチェック頻度は6分の1になりますが、電池消費全体も6分の1になるわけではありません。使用中の接続、他のグループによるチェック、アプリの通信は引き続き発生します。
- サブスクリプションの更新:クライアントが対応している場合は、数分おきではなく、まず24時間に1回に設定します。更新頻度の高いサブスクリプションだけ、必要に応じて間隔を短くしてください。
- ノードの速度テスト:数百のノードを一度に何度も測定しないでください。実際に使うグループと候補ノードに絞ります。
- ログレベル:通常利用では
debugからinfoまたはwarningに変更し、詳細なログはトラブルの調査中だけ有効にします。 - リアルタイム画面:確認が終わったら、更新が続く接続一覧や通信量グラフを閉じます。「待機中」の消費を比べるために、画面を点灯したままにしないでください。
DNSと接続タイムアウトを調べる
同じドメインで数秒おきにタイムアウトが繰り返される場合は、まずDNSの上流サーバーへの接続、ノードの状態、名前解決の経路を確認します。暗号化DNSを使っているだけで電池消費が増えるわけではありません。上流に接続できず再試行が続いている場合や、DNSリクエストとプロキシ経路が互いに依存する循環が原因になっていることがあります。再試行を減らすためにDNS設定をすべて削除したり、証明書の検証を無効にしたりしないでください。
まず、動作確認済みの別のノードに切り替え、同じエラーが解消するか確認します。特定のアプリだけが接続に失敗し続ける場合は、そのアプリのバックグラウンド同期を一時停止して比較してください。ログを書き出す前に、サブスクリプションURL、トークン、ノードのパスワード、公開したくないアクセス履歴を削除します。こうした情報を公開の問い合わせ用スクリーンショットに含めないでください。
iOSのバックグラウンド動作:クライアント画面とネットワーク拡張を区別する
iPhoneのプロキシアプリは通常、Network ExtensionのPacket Tunnel拡張機能を使ってVPN通信を処理します。アプリ画面がバックグラウンドに移ったからといって、トンネル拡張機能がすぐ停止するわけではありません。一方、「Appのバックグラウンド更新」を許可しても、VPNを無期限に維持できるわけではありません。利用できる機能はクライアントの実装とOSのスケジューリングによって異なり、Androidの電池最適化対象外設定をそのまま適用することはできません。
- 電池消費の時間帯を確認:「設定」→「バッテリー」を開き、表示可能な過去24時間または過去10日間の統計で、気になる時間帯を選択します。画面の構成はiOSのバージョンによって変わる場合があります。
- VPN構成を確認:「設定」→「一般」→「VPNとデバイス管理」→「VPN」を開き、現在の接続と構成を確認します。「オンデマンド接続」がある場合は、その起動条件も確認してください。
- バックグラウンド更新を区別:「設定」→「一般」→「Appのバックグラウンド更新」は、アプリが更新できるタイミングに関係する設定です。VPN拡張機能の状態確認の代わりにはなりません。
- 低電力モードを確認:低電力モードの状態をそろえて比較します。このモードは一部のバックグラウンド動作を変えるため、2回の測定の間にむやみに切り替えないでください。
「オンデマンド接続」を有効にしても、特定のアプリを開いたときだけVPNが起動するとは限りません。ネットワーク、ドメイン、その他の設定条件に応じてトンネルが作成される場合があります。頻繁に切断され、そのたびに条件に応じて再接続されると、かえって接続の確立回数が増えることがあります。必要なときだけ手動で使う場合は、まずクライアントの自動接続設定を確認してからトンネルを停止し、すぐ再接続されないことを確かめてください。
省電力のために、クライアントを何度もスワイプして終了しないでください。クライアントの接続スイッチでトンネルを停止し、OSのVPN状態を確認します。切断と再接続が繰り返される場合は、まずログを保存し、使用中のiOSに対応したクライアントへ更新してから、別のVPNやネットワークフィルターの構成がインストールされていないか確認してください。
測定結果を見て、必要な設定だけ残す
目指すのは、必要な接続を保ちながら無駄な処理を減らすことです。すべての設定をオフにすることでも、すべてのバックグラウンド権限を許可することでもありません。比較が終わったら、効果が確認でき、必要な機能も損なわない設定だけを残し、それ以外は元に戻します。
- 対象外設定後に通信が切れなくなり、電池消費はほぼ変わらない:クライアントのバックグラウンド実行権限は維持し、他のアプリの制限まで解除する必要はありません。
- 画面ロック中も通信量が増え続ける:原因となるアプリと接続先をさらに調べ、同期、アップロード、接続失敗の再試行を重点的に確認します。
- 特定のノードを使うときだけ発熱・電池消費が増える:別の安定したノードに固定して再測定し、タイムアウト、再接続、通信経路の違いを確認します。
- 速度テストの頻度を下げて改善した:長めの間隔を維持し、自動切り替えの速度が用途に合うか確認します。
- プロキシ停止後も電池の減りが速い:電波状況、OSアップデート、バッテリーの状態、他のバックグラウンドアプリを確認し、Clashの設定だけを調整し続けないでください。
基本設定を確認するには入門ガイドをご覧ください。ルール、DNS、通信の取り込み方については詳細マニュアルを参照してください。まず設定を安定させてから、バックグラウンドで常時接続する際の実際の負荷を測定すると、アプリの電池使用ランキングだけを見るより正確に判断できます。