Clash Meta Android版のバックグラウンド動作を維持する方法:VpnServiceの許可とバッテリー最適化の設定
AndroidのVpnService許可ダイアログの意味と、メーカー別のバッテリー最適化除外・自動起動・バックグラウンド制限の設定を解説。画面ロック後にプロキシが切断される問題を解決します。
まず確認:VPNサービスが終了したのか、ノードへの接続が切れたのか
Clash MetaのAndroidクライアントは通常、AndroidのVpnServiceで端末の通信を受け取り、mihomoコアにDNS処理、ルール判定、プロキシ接続を任せます。画面ロック後にウェブページが開かなくても、アプリが終了したとは限りません。ノードの障害、Wi-Fiとモバイルデータの切り替え、DNSのタイムアウトでも同じような症状が起こります。まず問題が発生している箇所を特定してから、権限を見直しましょう。
この記事では、個人端末で一般的なAndroid 12~15の設定を例に説明します。クライアントやOSのバージョン、メーカーによって画面上の表記は異なる場合があります。以下はよくある設定画面へのアクセス方法です。見つからない場合は、端末の設定で「バッテリー最適化」「自動起動」「VPN」などを検索してください。設定画面の手順がすべての機種で共通とは限りません。
| 確認できる症状 | まず確認する項目 | 次に行うこと |
|---|---|---|
| ロック解除後、クライアントが停止し、システムVPNも切断されている | バックグラウンド制限、サービスの終了、別のVPNによる占有 | バッテリー設定と、問題発生時刻付近のログを確認する |
| VPNは接続中だが、すべてのプロキシノードがタイムアウトする | 現在のネットワーク、ノードへの到達性、DNS | アプリを前面に表示したまま、ネットワークを切り替えるか、接続確認済みのノードを試す |
| 特定のアプリだけインターネットに接続できない | アプリごとのプロキシ設定、アプリ自体のネットワーク権限、適用ルール | そのアプリがプロキシ対象から除外されていないか、接続画面で適用されたポリシーを確認する |
| Wi-Fiからモバイルデータに切り替えたときだけ切断される | モバイルデータの権限、バックグラウンドデータ、接続の再確立 | 新しいウェブリクエストで確認する。既存の接続が復旧するかどうかだけで判断しない |
VpnServiceの許可:ローカルVPNインターフェースを作成する
接続リクエストのダイアログで許可する内容
プロキシを初めて起動すると、通常Androidに「接続リクエスト」などのVPN接続確認画面が表示され、アプリがネットワーク通信を監視できる旨が通知されます。許可すると、クライアントはシステムVPNインターフェースを作成し、ルーティングやDNSなどを設定できるようになります。このインターフェースは通信をローカルのコアに渡すためのもので、すべての通信が同じリモートVPNサーバーに送られるという意味ではありません。直接接続するかプロキシを使うかは、設定、プロキシモード、アプリごとの設定によって決まります。
- クライアントを開き、利用可能な設定を追加してノードを選び、まずルールモードで使います。
- クライアントの起動または接続ボタンをタップし、システムのVPN許可画面でアプリ名を確認して「許可」を選びます。
- システムの「設定」→「ネットワークとインターネット」→「VPN」を開くか、「VPN」を検索して、現在の接続がこのクライアントのものか確認します。
- 新しいウェブリクエストを送信し、クライアントの接続画面で接続先のドメインと適用されたポリシーグループを確認します。
この許可はRoot権限でもユーザー補助権限でもありません。AndroidのローカルVPNによる通信制御と、デスクトップ版の「システムプロキシ」は仕組みが異なります。前者はVPNインターフェースを作成し、後者は通常、プロキシ設定に従うアプリをHTTPまたはSOCKSポートに接続させます。Androidクライアントにデスクトップ版と同じ名称のTUNスイッチがあるとは限りません。デスクトップ向けの手順にある同じボタンを探す必要はありません。
同じユーザーまたはプロファイルでは、通常VPNを同時に1つしか実行できない
広告ブロッカー、企業VPN、ほかのプロキシアプリが同じVPN枠を使用する場合があります。別のVPNを起動すると、元の接続がシステムによって解除されることがあります。原因を調べるときは、同じプロファイルで動作しているほかのVPNアプリを終了してください。仕事用プロファイルがある端末や組織管理下の端末では、管理者が制限している可能性があります。企業の設定をむやみに削除しないでください。
バッテリー最適化の除外・自動起動・タスクのロック、それぞれの役割
3つの設定は役割が異なり、互いに代用できません。スマートフォン全体の省電力機能を無効にするのではなく、まず対象のクライアントだけ設定しましょう。超省電力モードを使用中の場合は、アプリごとの設定が適用されないことがあるため、モードを解除してから確認してください。
- バッテリーの「制限なし」または「最適化しない」:アプリのバックグラウンド動作や通信に対するシステムの制限を緩和しますが、プロセスが常に維持されるとは限りません。
- 自動起動またはバックグラウンド起動を許可:特定のシステムイベントやバックグラウンド条件でアプリが起動できるようにします。「起動時にすぐ接続する」という意味ではありません。クライアント側の対応と関連機能の有効化も必要です。
- 履歴画面でタスクをロック:一部メーカーの端末では、「すべて削除」などの操作でアプリが終了するのを防ぎます。Android共通の標準機能ではなく、強制停止やあらゆるメモリ解放を防げるわけでもありません。
- バックグラウンドデータの権限:モバイルネットワークでバックグラウンド通信を許可するかどうかを設定します。データセーバーを有効にしている場合は、「無制限のデータ使用」も個別に許可する必要があります。
通知の権限とフォアグラウンドサービス
常時動作するVPNクライアントは通常、フォアグラウンドサービスと実行中の通知を使用します。Android 13以降では通知に実行時権限が追加されています。通知を許可しなくてもVPNの許可が取り消されるわけではなく、フォアグラウンドサービスが必ず起動できなくなるわけでもありませんが、通知の表示には影響します。接続状態や停止操作を確認できるよう、クライアントの実行通知を許可することをおすすめします。
通知欄にアイコンがあるかどうかだけで、プロセスが動作中か判断しないでください。通知カテゴリが無効になっていたり、システムのステータスバーでVPNアイコンが非表示になっていたりする場合があります。システムのVPN画面、クライアントの状態、実際の通信をあわせて確認しましょう。システムから「強制停止」した場合や、実行中のアプリを手動で停止した場合は、クライアントを開き直してサービスを起動する必要があります。バックグラウンドの許可だけで自動復旧するとは限りません。
メーカー別の設定:クライアントへの制限を項目ごとに解除する
まずクライアントのアイコンを長押しして「アプリ情報」を開き、現在インストールされているクライアントが対象になっていることを確認します。同じ名前の古いアプリではないか注意してください。再インストール、パッケージ名の変更、別のクライアントへの切り替え後は、これらの権限を再確認する必要があります。
| システム | 一般的な設定手順 | 確認する項目 |
|---|---|---|
| Pixel/標準に近いAndroid | 「設定」→「アプリ」→「すべてのアプリを表示」→ クライアント →「アプリのバッテリー使用量」。バージョンによっては「バッテリー」 | バックグラウンドでの使用を許可する。バッテリー設定がある場合は「制限なし」を選択する |
| Xiaomi/Redmi(MIUIまたはHyperOS) | 「設定」→「アプリ」→「アプリ管理」→ クライアント →「バッテリーセーバー」。設定で「自動起動」または「バックグラウンド自動起動」を検索 | バッテリー設定を「制限なし」にし、バックグラウンドでの自動起動を許可する。履歴画面でアプリカードを長押しし、ロックの設定を確認する |
| Huawei/HONORのAndroidアプリ環境 | 「設定」→「バッテリー」→「アプリ起動管理」。または「アプリとサービス」→「アプリ起動管理」 | 対象アプリの自動管理をオフにし、画面の案内に従って自動起動、関連起動、バックグラウンド動作を許可する |
| OPPO/OnePlus/realme | 「アプリ情報」→「バッテリー使用量」または「バッテリー管理」。システム設定で「自動起動管理」を検索 | バックグラウンド動作を許可する。自動起動の設定があれば有効にし、履歴画面でのタスクのロックも確認する |
| vivo / iQOO | 「設定」→「バッテリー」→「バックグラウンドでの電力消費を管理」。「iマネージャー」→「アプリ管理」→「権限管理」→「自動起動」 | バックグラウンドでの高い電力消費を許可し、自動起動も許可する。設定名は端末の画面表示に従ってください |
| Samsung One UI | 「設定」→「アプリ」→ クライアント →「バッテリー」。「設定」→「バッテリー」→「バックグラウンドでの使用制限」 | 「制限なし」を選び、「スリープ中」または「ディープスリープ中」のアプリから削除する。「自動スリープにしないアプリ」があれば追加する |
Huaweiの設定手順は、該当するAndroidアプリに対応したシステム環境でのみ利用できます。すべてのHarmonyOS端末にAndroidクライアントをインストールできるという意味ではありません。APKをインストールできない場合は、バックグラウンド動作の設定を探す前に、システムの互換性を確認してください。
設定が反映されたか確認する方法
- アプリ情報に戻り、バッテリー設定を開き直して、選択した項目がシステムによって元に戻っていないか確認します。
- プロキシを起動し、ホームボタンでホーム画面に戻ります。「強制停止」はタップしないでください。
- システムに履歴画面でのタスクロック機能がある場合は、カードをロックしてから普段のアプリ終了操作を試します。カードをスワイプして消す操作を、すべての機種で共通するバックグラウンド動作のテストと見なさないでください。
- 「モバイルデータとWi-Fi」または「データ使用量」の画面で、モバイルデータとバックグラウンドデータが許可されていることを確認します。
常時接続VPN:VPN未接続時の通信遮断とは別に設定
一部のAndroid端末では、システムのVPN設定にある歯車アイコンから「常時接続VPN」を設定できます。クライアントが対応している場合、システムがVPNサービスの維持や再接続を試みます。ただし、実際にプロキシ接続を確立するには、クライアントで利用可能な設定が必要です。この項目がない、または選択できない場合は、不明なシステム設定を変更して無理に有効化しないでください。
「VPN未接続時の接続をブロック」は別の設定で、通常は常時接続VPNとあわせて使用します。VPNが利用できないときにVPNを経由しない通信を遮断する機能であり、ノードの品質を高めるものではありません。有効にすると、クライアントの停止、設定の読み込み失敗、ノードの利用不可などにより、端末がインターネットに接続できなくなる場合があります。
- 問題の切り分け:まずVPN未接続時の通信遮断を有効にせず、画面ロック後やネットワーク切り替え後も通常のVPN接続が機能することを確認します。
- 接続を維持したい場合:システムとクライアントの両方が対応していれば常時接続VPNを有効にし、あらためてテストします。
- VPN未接続時に通信を遮断したい場合:切断中にインターネットを利用できなくなることを理解したうえで有効にします。アプリごとのプロキシ設定で除外したアプリが想定どおり動作するかも確認してください。
画面ロック後の再テスト:手順を固定して切断のタイミングを特定
以下はテスト時の確認ポイントの目安であり、実測性能の結果ではありません。毎回変更する設定は1種類に絞り、機種、Androidのバージョン、クライアントのバージョン、ネットワークの種類、問題が起きた時刻を記録します。そうすれば、バッテリー設定の変更が効いたのか、ノードがたまたま復旧したのかを判断できます。
- 開始直後:安定したWi-Fiに接続してプロキシを起動します。プロキシが必要なサイトと直接接続するサイトにアクセスし、接続画面でそれぞれに適用されたポリシーを確認します。
- 画面ロック後5分:ロックを解除したら、まずシステムのVPN状態を確認してから新しいリクエストを送信します。クライアントが引き続き動作中か、サービスが再起動したかを記録します。
- 画面ロック後30分:充電器を接続せず、同じ確認を行います。短時間の画面消灯で問題がなくても、端末がより深いアイドル状態に入った後も正常とは限りません。
- Wi-Fiからモバイルデータへの切り替え:Wi-Fiをオフにし、モバイルネットワークが利用可能になってから新しいページを開きます。既存のTCP接続は切れることがあるため、新しい接続を確立できるか確認してください。
- 端末の再起動:起動時の自動起動または常時接続VPNを有効にしている場合は、初回ロック解除後に実際の接続状態を確認します。再起動前のセッションがそのまま復旧するとは限りません。
パソコンがある場合はADBで状態を確認
Android SDK Platform-Toolsをインストールし、USBデバッグを許可している場合は、アイドル状態、デバイスのアイドルホワイトリスト、システムの接続情報を確認できます。以下は情報を読み取るコマンドであり、アプリのバッテリー設定は変更しません。出力される項目はAndroidのバージョンによって異なります。項目が見つからなくても、それだけでサービスが終了したとは判断できません。
adb shell dumpsys deviceidle
adb shell dumpsys deviceidle whitelist
adb shell dumpsys connectivity
deviceidle whitelistは、追加・削除の引数を付けずに実行すると関連するホワイトリストを表示します。メーカー独自のバックグラウンド権限すべてをまとめたものではありません。パッケージ名が一覧にないことだけで、「自動起動が無効」と判断しないでください。確認が済んだらUSBデバッグをオフにできます。システム出力やログを共有する前に、サブスクリプションURL、ノードの認証情報、端末識別情報、不要なアクセス履歴を削除してください。
よくある質問と対処の順序
「制限なし」に設定しても切断されるのはなぜ?
ホワイトリストで緩和できるのは、バッテリー制御による制限だけです。コアのクラッシュ、メモリ不足、別のVPNによる占有、ネットワーク障害には対応できません。まずシステムVPNが接続中か確認し、問題が起きた時刻付近のクライアントログで、サービスの停止、設定の読み込み失敗、接続タイムアウトがないか調べてください。アプリを前面に表示していても再現する場合は、権限をさらに追加せず、ネットワークと設定を優先して確認しましょう。
ルールモードを使う場合、バックグラウンド動作の維持にグローバルモードも必要?
必要ありません。ルールモード、グローバルモード、直接接続モードは通信の出口を選ぶ設定であり、Androidがバックグラウンドプロセスを維持するかどうかには関係しません。一時的にグローバルモードへ切り替えると、ルールに問題があるか判断しやすくなりますが、システムによるサービス終了は解決できません。確認後は必要なモードに戻してください。
バックグラウンド動作の維持後に電池消費が増えた場合、どう抑える?
システムのバッテリー使用量で、クライアントのバックグラウンド消費を確認します。不要な高頻度のノード速度テスト、設定更新、詳細ログの記録を減らしてください。画面を常時点灯させて動作を維持したり、速度テストのリクエストを続けたりしないでください。似たネットワーク環境と使用時間で電池の減りを比べ、モバイル電波が弱いことによる消費までプロキシの影響と決めつけないようにしましょう。
最終的に有効にしておく設定は?
まずVPNの許可、適切なバックグラウンドバッテリー権限、バックグラウンド通信の許可を維持します。メーカー独自の設定がある場合は、必要に応じて自動起動とタスクのロックも許可してください。5分後・30分後の画面ロックテストとネットワーク切り替えテストを終えてから、常時接続VPNやVPN未接続時の通信遮断を有効にするか判断します。インストールとサブスクリプションの追加方法は入門ガイドをご覧ください。設定に関する問題は設定に関するよくある質問をご確認ください。