プラットフォーム別 読了目安:11分

Clash Androidがバックグラウンドで切断される原因と対策:VpnServiceの許可・バッテリー最適化の設定

AndroidでClashが画面ロック後に切断されるときの対処法。VpnServiceの許可、常駐通知、バッテリー最適化の除外、メーカー別のバックグラウンド設定を解説します。

バックグラウンドでの強制終了・VPNの切り替わり・接続先の不具合を見分ける

画面点灯中はClashを使えるのに、画面ロック後しばらくすると通信できなくなる場合は、まずVPNサービスが動作中か確認しましょう。すぐにサブスクリプションを再インポートしたり、DNSを変更したりする必要はありません。Androidクライアントは通常、システムの VpnService で端末の通信を受け取り、プロキシコアに渡します。画面を閉じたこと、サービスが停止したこと、接続先が使えなくなったことは別々の問題で、対処法も異なります。

クライアントを開き直したら、すぐに起動ボタンを押さず、「接続中」か「停止中」かを確認します。次に、システムの「設定」→「ネットワークとインターネット」→「VPN」で接続状態を確認してください。機種によっては「接続と共有」や「その他の接続」に項目があります。見つからない場合は、設定画面で「VPN」を検索しましょう。ステータスバーの鍵アイコンも参考になりますが、機種によっては表示されないため、アイコンだけで判断しないでください。

確認できた症状まず疑う原因次に行うこと
クライアントが停止し、システムのVPNも切断されているバックグラウンド制限、手動停止、プロセスのクラッシュバッテリー設定と切断直前のログを確認する
別のアプリに「VPN接続中」と表示されている同じユーザー環境のVPN接続が別アプリに切り替わった別のVPNを停止してからClashを起動する
VPNは接続中だが、プロキシ経由のサイトだけ開けない接続先、名前解決、ルーティングの問題画面点灯中に同じ接続先を試し、接続ログを確認する
Wi-Fiとモバイルデータを切り替えると通信できなくなるネットワーク切り替え後に接続が復旧していない両方のネットワークで再接続して確認する
VPNは停止しているが、すべてのアプリで通信できないVPN未接続時の通信をシステムがブロックしているまずVPNを復旧するか、ブロック設定を一時的にオフにする

接続が継続しているなら、すぐに「バックグラウンドで強制終了された」とは判断できません。反対に、アプリを開き直すと自動で復旧するからといって、それまで正常だったとも限りません。アプリが前面に戻ったときにサービスを再起動し、実際に切断された時刻が分からなくなる場合があります。

VpnServiceの許可を確認し、VPNの競合を解消する

初回起動時に必要なのはシステムのVPN許可

クライアントで初めて起動や接続のスイッチを押すと、Androidでは通常、「接続リクエスト」などのシステムダイアログが表示され、アプリがVPN接続を設定しようとしていることが通知されます。アプリ名が正しいことを確認して許可してください。キャンセルすると、接続先を読み込み済みでも、このシステムVPN経由でほかのアプリの通信を処理できません。

  1. 設定をインポートして接続可能なノードを選び、クライアントを前面に表示したままにします。
  2. 起動をタップし、システムのダイアログを確認して許可します。
  3. システムのVPN画面を開き、現在のクライアントが接続元として表示されていることを確認します。
  4. ブラウザーで通信を確認してから画面をロックし、動作を観察します。初回の許可が済む前にバックグラウンドでの動作確認をしないでください。

許可のダイアログは毎回表示されるわけではありません。すでに許可済みで、ほかのVPNに切り替わっていない場合、再表示されないのは通常の動作です。ボタンを押しても反応しない場合は、ダイアログがフローティングウィンドウに隠れていないか確認しましょう。一部のシステムでは、画面に重なる表示があるとセキュリティ確認を操作できません。画面フィルターやフローティングボタンを一時的にオフにして、もう一度試してください。

広告ブロッカーや通信加速アプリもVPNを使用することがある

同じAndroidユーザーまたは仕事用プロファイルでは、通常、同時に有効にできる VpnService 接続は1つです。別のプロキシクライアント、ローカルVPNを使うフィルターアプリ、ゲームブースターを起動すると、接続中のVPNが解除される場合があります。「接続してもすぐ切れる」ときは、Clashの許可を何度も設定し直すのではなく、これらのアプリを1つずつ停止してください。

常駐通知とバッテリー最適化は個別に設定する

通知の許可、バックグラウンド動作の許可、バックグラウンドデータ通信の許可は、それぞれ別の設定です。通知には接続状態やフォアグラウンドサービスの情報が表示されます。バッテリー設定はバックグラウンドでの制限を制御し、バックグラウンドデータ設定は一部の通信を許可します。どれか1つを有効にしても、ほかの設定の代わりにはなりません。

Android 13以降では、まず通知の許可を確認する

「設定」→「アプリ」→「すべてのアプリを表示」→ 使用中のクライアント →「通知」から通知を許可し、接続状態に関する通知カテゴリも確認できます。メーカー独自のシステムでは、アプリアイコンを長押しして「アプリ情報」→「通知設定」と進む場合もあります。通知音が気になる場合は、システムで該当カテゴリをサイレントに設定しましょう。アプリ全体の通知をオフにする必要はありません。

誤解しやすい点として、Android 13以降で通知を許可しなくても、フォアグラウンドサービスが必ず起動できなくなるわけではありません。実行中の情報がシステムの「アクティブなアプリ」画面に表示されることもあります。そのため、通知がないだけではサービスが強制終了されたとは判断できません。ただし、接続状態の通知を有効にすると状況を確認しやすくなります。システムのアクティブなアプリ画面からアプリを手動で停止すると、サービスが終了する場合があります。

クライアントを「制限なし」にするか、バックグラウンド動作を許可する

Android標準に近いシステムでよくある設定手順は、「設定」→「アプリ」→ 使用中のクライアント →「アプリのバッテリー使用量」→「制限なし」です。ほかのバージョンでは、「バッテリー」→「バッテリーの最適化」→「すべてのアプリ」→ 使用中のクライアント →「最適化しない」と進みます。項目名はOSのバージョンによって異なります。端末全体の省電力機能をオフにするのではなく、対象クライアントのバックグラウンド制限を解除してください。

  • まずクライアント単体を制限対象外にする:設定を変更したら接続を停止して再起動し、画面ロック後の動作を確認します。
  • システム全体の省電力モードも確認する:設定の影響を切り分けるため、テスト中は省電力モードやスーパー省電力モードを一時的にオフにします。
  • バックグラウンド通信も確認する:アプリ情報の「モバイルデータとWi-Fi」または「データ使用量」で、バックグラウンドデータ通信が許可されていることを確認します。データセーバーを使っている場合は、「データ通信を制限しないアプリ」も確認してください。
  • むやみに強制停止しない:システムの「強制停止」はアプリのコンポーネントを終了させます。自動起動やバッテリー最適化の除外を設定しても、すぐに復旧するとは限らず、通常はアプリを手動で開き直す必要があります。

最適化の対象外にするとシステムの制限を減らせますが、アプリが終了しなくなるわけではありません。メモリー不足、クライアントのクラッシュ、システムアップデート、メーカー独自の制御によってサービスが中断することがあります。長時間動作させるとバッテリー消費も増えるため、バックグラウンド動作が必要なアプリだけを対象外にしてください。

Xiaomi、Huawei、OPPO、vivo、Samsungのバックグラウンド設定

以下はよくある設定画面への経路であり、すべての機種で同じメニューがあるとは限りません。HyperOS、EMUI、HarmonyOSの各互換環境、ColorOS、OriginOS、One UIでは項目名が変わることがあります。記載の項目が見つからない場合は、設定で「自動起動」「バッテリー最適化」「バックグラウンド」「スリープ中のアプリ」などを検索し、インストールしたAndroidクライアントがお使いのシステムに対応していることも確認してください。

Xiaomi・Redmi:自動起動とバッテリー設定の両方を確認

  • クライアントのアイコンを長押し →「アプリ情報」→「バッテリーセーバー」で、「制限なし」または同等の項目を選びます。
  • 「設定」→「アプリ設定」→「アプリ管理」からアプリの詳細を開くか、「セキュリティセンター」→「アプリ管理」→「権限」→「自動起動管理」を開き、クライアントの自動起動を許可します。
  • 最近使ったアプリの画面にロック機能がある場合は、アプリのカードを長押ししてロックのアイコンを選ぶと、「一括削除」で終了されにくくなります。

アプリカードのロックは補助的な設定で、バッテリー設定の代わりにはなりません。テスト時にカードをロックしただけで、バックグラウンド権限の設定が完了したと思わないでください。

Huawei・Honor:アプリの起動管理を確認

「設定」→「アプリとサービス」→「アプリ起動管理」が一般的な設定場所です。「端末管理」→「アプリ起動管理」にある場合もあります。クライアントを見つけ、自動管理をオフにしたうえで、システムの選択肢に従って「自動起動」「他のアプリからの起動」「バックグラウンドでの実行」を許可します。Honorの一部機種にも似た設定がありますが、現在のシステム画面の表示に従ってください。

設定で「バッテリー最適化」を検索し、すべてのアプリを表示して、クライアントが最適化の対象外になっているか確認します。「バックグラウンドでの実行許可」と「通知の許可」は別の設定です。前者は動作制御に関わり、後者は主に通知の表示に関わります。

OPPO・OnePlus・realme:バッテリー使用量の管理を確認

一般的な設定手順は、「設定」→「バッテリー」→「その他の設定」→「アプリのバッテリー使用量」→ 使用中のクライアントと進み、バックグラウンド動作を許可します。バージョンによっては、アプリ情報から「バッテリー使用量」を直接開けます。次に「アプリ」→「自動起動」またはシステムの自動起動管理画面で、起動が禁止されていないことを確認してください。メニュー名は「バックグラウンド動作を許可」や「バックグラウンドでの完全な動作を許可」など、バージョンによって異なります。

vivo・iQOO:バックグラウンドでの電力消費と自動起動を確認

「設定」→「バッテリー」→「バックグラウンド消費電力管理」からクライアントを選び、バックグラウンドでの電力消費を許可するか、同等の制限解除を設定します。旧バージョンではiマネージャーに項目がある場合があります。自動起動は通常、「設定」→「アプリと権限」→「権限管理」→「自動起動」から確認できます。バックグラウンド消費電力の管理に関する警告が表示された場合は、確認せずにクライアントを制限しないでください。

Samsung:スリープ中のアプリから除外

One UIでよくある設定手順は、「設定」→「バッテリーとデバイスケア」→「バッテリー」→「バックグラウンドでの使用制限」です。新しいバージョンでは、「設定」→「バッテリー」から直接開ける場合があります。クライアントを「スリープ中のアプリ」と「ディープスリープ中のアプリ」から削除してください。「スリープ状態にしないアプリ」の一覧があれば、追加できます。続いて「アプリ」→ 使用中のクライアント →「バッテリー」で、「制限なし」を選べるか確認します。

常時接続VPNとVPN未接続時の通信ブロックは慎重に設定する

システムのVPN設定には、「常時接続VPN」や「VPN未接続時に接続をブロックする」という項目があります。後者は「VPNなしの通信をブロック」と表示される場合もあります。前者は対応するVPNをシステムが維持しようとする設定で、後者はVPNを利用できないときに通常の通信を遮断する設定です。目的は異なり、通信ブロックはバックグラウンドでの動作を維持する設定ではありません。

  1. まず許可とバッテリーの設定を済ませ、通常の接続が安定していることを確認します。
  2. クライアントが対応していて必要な場合に限り、「常時接続VPN」を有効にします。項目がない場合や選択できない場合は、別のアプリ向けの手順を流用しないでください。
  3. VPNを経由しない通信を防ぐ必要がある場合は、接続のブロックを有効にし、VPN切断時の動作をテストします。

起動時の自動接続についても、アプリの「起動時に開始」と、システムの「常時接続VPN」は区別してください。再起動後、初回ロック解除前に接続が復旧するかどうかは、クライアントの実装と設定の保存方法によって異なります。自動起動をオンにしただけで、完全に復旧できるとは限りません。

画面点灯中・画面ロック中・ネットワーク切り替えの3段階で修復を確認

ノード、DNS、バッテリー設定を一度にすべて変更しないでください。復旧しても原因を特定できなくなります。以下は繰り返し使える確認手順です。記載した時間はテストの目安であり、特定の端末での実測結果ではありません。短時間問題がなくても、一晩安定するとは限りません。

テスト段階操作と時間記録する内容
画面点灯中の基準確認同じノードで5分間接続するクライアントの状態、システムのVPN状態、対象サイトを開けるか
画面ロック中の確認充電せずに15分間放置し、その後30分間に延長するロック解除後に停止していたか、通知が表示されているか、自動再起動したか
ネットワークの切り替えWi-Fiからモバイルデータへ、モバイルデータからWi-Fiへ、それぞれ切り替える切り替え後だけ通信が切れるか、手動で再接続すると復旧するか
長時間の待機短時間のテスト後、2時間または一晩待機して確認する切断時刻、バッテリー残量の変化、システムの省電力通知

15分間放置しても、システムの深いアイドル状態に入るとは限りません。Androidのアイドル制御は、充電中かどうか、端末が動いているか、メーカーの実装などによって異なります。そのため、充電しない状態で長時間待機するテストも行ってください。会社のWi-Fiだけで問題が起きる場合は、ネットワークへの再認証が必要か確認します。モバイルデータでのみ発生する場合は、まずクライアントのモバイルデータ通信権限と通信プランの状態を確認してください。

VPN接続が続いている場合は、ノードと名前解決を確認する

システム上でVPNが接続中のままなら、まずクライアント内蔵の接続テストで現在のノードを確認し、ログにタイムアウトや名前解決エラーがないか調べます。遅延テストに成功しても、そのテストリクエストへの応答を確認できただけで、すべてのサイトに接続できるとは限りません。特定のアプリだけで失敗する場合は、クライアントのアプリ別プロキシ設定も確認してください。VPNから除外されている場合や、ルールによって別のポリシーグループに振り分けられている場合があります。

バックグラウンドで終了する問題の解決策として、安易に mixed-port: 7890 を変更しないでください。この設定は混合プロキシの待ち受けポートを指定するもので、Androidのバッテリー制限とは直接関係ありません。サブスクリプションを更新しても、アプリのバックグラウンド実行権限は取得できません。項目の意味はYAMLリファレンスで、基本的なインポートと起動の手順は使い方ガイドで確認できます。

それでも終了する場合:バージョン、時刻、クラッシュ情報を記録する

設定後も繰り返し終了する場合は、システムによるプロセス終了か、アプリ自体のクラッシュかを切り分けます。端末の機種、Androidのバージョン、システムの完全なバージョン番号、クライアントとコアのバージョンを記録し、「22:10ごろ画面をロックし、22:35に解除したら停止していた」のような時系列も残してください。ClashのAndroidクライアントは単一のバージョンに統一されていないため、問い合わせ時に「最新版」とだけ伝えても互換性の問題を特定できません。

  • まずアプリのログを確認:クライアントの「ログ」や「診断」から、停止前後の記録を探します。プロセスが突然消えた場合、アプリのログに最後の終了理由が残らないことがあります。
  • システムの通知も確認:「バックグラウンド動作が制限されました」「アプリが繰り返し停止しています」などの表示をスクリーンショットで保存します。接続失敗の画面だけより、原因の特定に役立ちます。
  • アップデートの時期と照らし合わせる:クライアントまたはシステムのアップデート直後に問題が発生した場合は、設定をバックアップしてからダウンロードページで現在のメンテナンス版とシステム要件を確認します。

ADBに慣れている場合はシステムログも確認する

Android SDK Platform-Toolsを設定し、USBデバッグを許可済みの場合は、パソコンで以下のコマンドを実行できます。切断を一度再現したら、Ctrl+Cで記録を停止します。取得できるのはシステムが読み取りを許可しているログで、内容は端末やOSのバージョンによって異なります。

adb devices
adb logcat -v time > android-vpn-log.txt

問題が発生した時刻の前後に、プロセスの終了、クラッシュ、VPNの解除、フォアグラウンドサービスの異常が記録されていないか確認します。「killed」を含むログが1件あるだけで、省電力制御が原因だと決めつけないでください。USB接続中は端末が充電状態になり、待機条件が変わることがあります。ADBは補助的な手掛かりとして使い、実際に画面をロックしたテストの代わりにはしないでください。作業後は不要なUSBデバッグをオフにします。

最後に、システムのVPN許可と接続の競合を確認し、バッテリー設定とバックグラウンドデータ通信を許可します。その後、画面ロック中とネットワーク切り替え後の動作を確認し、最後にログをもとにクラッシュや接続先の問題を調べます。この順番なら、「サービスが停止した」ケースと「サービスは動作中だが通信できない」ケースを切り分けられます。原因となる制限を見つけないまま、何度も再インストールする事態も避けられます。

Clash最新版のダウンロード