「Android VPN おすすめ」で検索する人の多くは、すでに1~2本のクライアントを試しています。インストールして接続し、日中は問題なく使える。ところが翌朝、通知バーの接続アイコンが消えている。原因はプロトコルではなく、OSが常駐サービスをどう扱うかにあります。AndroidはDozeからバックグラウンド実行制限、さらにメーカー独自のバッテリー管理まで、各層が「使っていないように見える」プロセスを回収していきます。本記事では常駐化・アプリ別プロキシ・バッテリー消費の3つの軸で比較し、最後にそのまま実行できる設定チェックリストを用意しました。比較は再現できる確認項目に限定し、検証できないスコア数値は載せていません。

まず切り分けるべきは接続可否と、つながる時間の長さ

「接続できない」と「接続が切れる」は別種の問題で、切り分ける方向は正反対です。前者はプロトコル・購読・回線が使えるかを見ます。後者は省電力設定・バックグラウンド権限・ネットワーク切り替えを見ます。この2つを混ぜると、「プロトコルを3つ変えても切れる」という堂々巡りになります。

切断にはふつう3つの現れ方があります。1つは、画面を消してしばらく置くとどのアプリもタイムアウトし、画面を点けて数秒で自然に戻るケース。これはOSがプロセスを凍結しています。2つは、屋内Wi-Fiから屋外のモバイル回線に移ると接続が自動復帰せず、手動で再接続が必要になるケース。長接続がネットワーク切り替えで失効しています。3つは、通知バーのアイコンは消えたのに設定画面では接続済みと表示されるケース。多くの場合、残留したトンネルインターフェースで、通信はすでにローカル回線へ戻っています。

トンネルが生きているかは、クライアントの画面ではなく実際の出口で判断します。切れた疑いがあるときは、回線経由でしか開けないアドレスにアクセスしてみてください。すぐ失敗すればトンネルは切れています。開ける場合は、アプリ層のキャッシュや分割ルールで通っている可能性が高く、接続が本当に続いているとは限りません。

常駐化:3層の設定、1層欠けると切れる

Androidの省電力機構は3層に分かれます。OS側のDozeとアプリスタンバイ、アプリ側のバックグラウンド実行制限、メーカー独自のバッテリー管理です。3層はそれぞれ独立しているので、1層だけ設定しても夜間の切断はまず再発します。

  1. クライアントをバッテリー最適化のホワイトリストに入れる

    多くは「設定 → アプリ → 特別なアプリの権限 → バッテリー最適化」の順で開き、フィルタを「すべてのアプリ」に切り替えてからクライアントを探して「最適化しない」を選びます。Android 6で導入されたDozeは、画面オフ後のネットワークアクセスやウェイクアップを遅延させます。ホワイトリストが現状もっとも安定した除外方法です。メーカーによってはこの項目が「バッテリー → アプリの電力管理」に収まっていて、名称もバッテリー最適化ではありません。「バックグラウンドでの動作を許可」といった類のスイッチを探してください。

  2. メーカー独自の自動起動・バックグラウンド動作の権限をオンにする

    自動起動・関連起動・バックグラウンド動作の3項目は、システムによって呼び名が違っても役割は同じです。プロセスが回収されたあとに、もう一度起動できるかどうか。この層はフォアグラウンドサービス自体には影響しませんが、強制終了されたあとに自力で戻れるかを決めます。

  3. 常駐通知を残し、最近使ったアプリでロックする

    VpnServiceベースのクライアントはフォアグラウンドサービスとして動作する必要があり、通知はその可視性の証明です。通知権限を切ると、一部の機種ではサービスが不可視と判定されて回収が早まります。だから「通知バーをきれいにしたい」という理由で切るのはおすすめしません。また、最近使ったアプリの一覧でクライアントをロックしておくと、一括クリーンアップ時の巻き添えを減らせます。

  4. 省電力モードが個別に制限していないか確認する

    多くのシステムは「使用頻度の低いアプリ」を個別に凍結し、低電力モードではバックグラウンドデータを制限します。クライアントを制限なしのリストに入れ、省電力モードがバックグラウンドデータに追加の制限をかけていないかも確認してください。

4ステップを終えれば、夜間の切断はほぼ消えます。それでも切れる場合は、まず2つを疑ってください。1つは低電力モードでバックグラウンドデータが一律に止められていること、もう1つは同じVpnServiceベースのクライアントを同時にインストールしていて取り合いになっていることです。

アプリ別プロキシ:必要なアプリだけにトンネルを絞る

AndroidのVpnServiceは「許可」と「除外」の2つのアプリリストを提供し、クライアントはそれに従ってどのアプリの通信をトンネルに入れ、どれをローカル回線に流すかを決めます。これがアプリ別プロキシです。役割は2つ。不要な迂回を減らして省電力につなげること、そして出口の地域変化によって一部アプリが不正利用判定を出すのを避けることです。

リストの書き方は2通り。ホワイトリストは「選択したアプリのみプロキシ」で、チェックしたアプリだけがトンネルを通ります。ブラックリストは「選択したアプリを除外」で、既定ではすべてがトンネルを通り、不要なものだけを外します。日常用途ではブラックリストがおすすめです。ホワイトリストはシステムコンポーネントを漏らしやすく、ダウンロードマネージャやプッシュ通知、アプリ内アップデートが不安定になり、原因究明に時間がかかります。クライアント内の項目名は「アプリ別プロキシ」や「アプリ分割」などが一般的です。

アプリ別プロキシの割り当て例:カテゴリ別の推奨
アプリの種類推奨理由
銀行・決済系除外出口の地域が頻繁に変わると本人確認を再要求されやすい。ローカル回線のほうが手間が少ない
アプリストアとシステムアップデート除外ダウンロード量が多く、ローカル帯域のほうが速い。購読の通信量も消費しない
画面ミラーリング、プリンター、ルーター管理除外プライベートセグメントへのアクセスで、そもそもトンネルに入れるべきではない
地域の生活系・よく使うサービス必要に応じて除外迂回を減らし、ウェイクアップ回数と消費電力を抑える
海外の動画配信と開発ツールプロキシ出口の地域を固定したいうえ、接続の安定性が重要なため
メッセージアプリとプッシュ通知プロキシ長接続には安定した出口が必要で、頻繁な切り替えはメッセージ遅延を招く

アプリを除外すると、そのアプリの名前解決と接続はローカル回線を通ります。これは想定どおりの動作で、漏えいではありません。本当に確認すべきはトンネルを通る側です。クライアントがDNSのカスタム設定に対応しているなら、名前解決をトンネル内に指定し、DNSテストで結果がローカル事業者に落ちていないことを確認してください。

バッテリー消費:プロトコルとキープアライブの取捨選択

消費電力は3つで構成されます。無線モジュールが起こされる回数、暗号化・復号のコスト、そしてパケットロス後の再送です。3つのうち最も見落とされやすいのが1つ目で、キープアライブと再接続が端末をスリープから起こすコストは、暗号処理そのものより大きいことがよくあります。

暗号化・復号のコスト

現代のARMプロセッサはAES命令拡張を備えていることが多く、AES系暗号の追加コストはごくわずかです。ハードウェア支援がない環境では、ChaCha20のようなストリーム暗号のほうがむしろ軽くなります。Android端末では、古い端末でない限り、あるいは複数の暗号化接続を同時に走らせていない限り、この項目が消費電力の主因になることは通常ありません。

キープアライブと再接続

キープアライブの間隔が短いほど、中間機器にアイドルと判定されて回収されにくくなりますが、ウェイクアップ回数は増えます。TCP系プロトコルはネットワーク切り替え後にハンドシェイクをやり直す必要があり、再接続そのものに1回分のフル接続確立がかかります。QUIC系のHysteria2とTUICはコネクションマイグレーションに対応し、切り替え後もハンドシェイク不要なので、モバイル回線ではより滑らかです。

UDPの現実的な問題

QUIC系プロトコルはすべてUDP上で動きます。一部のネットワークはUDPを帯域制限したり、そのまま破棄したりします。その場合クライアントは再送を繰り返し、消費電力はTCP系より高くなります。見分け方は簡単です。同じ回線でプロトコルを切り替え、画面オフ時のバッテリーの減り方と再接続の頻度を比べ、安定しているほうを使ってください。

結論:固定Wi-Fiでパケットロスが目立つ環境ならQUIC系、通勤中心で省電力を優先するならTCP系。プロトコルが左右するのは効率で、消費電力の大半はバックグラウンドのウェイクアップです。常駐設定が整っていないうちは、プロトコルを変えても改善は限定的です。

プロトコルとクライアント:Android側の対応

プロトコルはハンドシェイク方式とトランスポート層を決め、クライアントは購読の読み込み方やアプリ別プロキシの設定方法を決めます。両者は分けて見るべきで、クライアントの挙動からプロトコルの良し悪しを推測しないでください。

主なプロトコルのAndroid側の注意点
プロトコルトランスポートAndroid側の注意点
ShadowsocksTCP / UDPオーバーヘッドが小さくハンドシェイクも速い。UDPはサーバー側で有効化が必要で、そうでないと音声通話やゲームの通信が通らない
VMessTCP / WebSocket / gRPC端末の時刻に依存し、時刻のずれが大きいとハンドシェイクに失敗する。自動時刻合わせが有効か先に確認する
TrojanTLS、通常は443通常のHTTPSと同じポート。設定のドメインと証明書が一致していないとハンドシェイクが拒否される
VLESSTLS / REALITYそれ自体は暗号化せず、安全性は外側のTLSが担う。オーバーヘッドはVMessより小さく、長時間の接続に向く
Hysteria2QUIC(UDP)弱い回線からの復帰が速く、ネットワーク切り替えでも再接続不要。UDPが帯域制限されると体感がはっきり悪化する
TUICQUIC(UDP)同様にコネクションマイグレーションに対応するが、UDPの品質に敏感で、回線条件が良い場面向け

クライアントはv2rayNG、NekoBox、sing-box系、Clash Meta系のいずれも購読リンクをそのまま読み込めます。読み込み方法は2つ。購読URLをコピーしてクライアントで「クリップボードから読み込み」を選ぶか、QRコードを読み取ります。購読リンクは設定の集合体であってアカウントのパスワードではないので、端末を変えたら同じリンクを読み込み直せば済みます。回線が更新されたらクライアント側で購読を手動更新してください。詳しい手順は使い方ガイドをご覧ください。

購読リンクは認証情報と同じです。公開グループやスクリーンショットに貼らないでください。漏えいが疑われたら速やかに差し替え、古いリンクをチャット履歴に残さないようにします。

1週間の自己点検リスト

以下のリストは「導入後の1週間」の実際の使用順に並べています。上から順に確認すればよく、追加のツールは要りません。

  • ✅ 画面を消して一晩置いても通知バーの接続アイコンが残り、海外サイトを開くのに手動の再接続が要らない
  • ✅ Wi-Fiからモバイル回線に切り替え、また戻しても、数秒で自動復帰しアプリの再起動が要らない
  • ✅ アプリ別プロキシのリストが想定どおりで、除外したアプリが引く出口アドレスがローカルのアドレスになっている
  • ✅ トンネルを通るアプリの名前解決結果が、トンネル内で指定したDNSに落ちており、ローカル事業者に漏れていない
  • ✅ 購読更新後に回線リストが正常に変化し、古い設定が置き換わっていて積み重なっていない
  • ❌ 通知権限がオフになっている、またはクライアントが「最適化」状態のまま
  • ❌ VpnServiceベースのクライアントを2つ同時に起動していて互いに取り合い、同時に有効になるのは1つだけ
  • ❌ ワンタップのクリーンアップでバックグラウンドを消したあと自動再接続せず、どのホワイトリストにも入っていない

選び方:Androidで見るべき項目

Androidの選定順はデスクトップと異なります。デスクトップはプロトコルとクライアント機能から見ますが、Androidはまず回線の種類と常駐設定との相性、その次に通信量と課金方式を見ます。

回線の種類がジッタを決めます。IEPL専用線・中継・直結の違いは、途中で公共ネットワークを何区間通るかにあります。専用線は制御できる区間を絞り、中継は入口で1回転送し、直結は公衆ルートに完全依存します。モバイル回線自体のジッタは大きいので、専用線の価値は回線側の変数を先に下げられる点にあります。

90+の国と地域をカバー、地域別に回線を選べる
210+の回線から選択、専用線と中継を用意
台数無制限同じ購読を複数の端末で利用可能
7日間理由を問わない返金、試してから決められる

通信量と課金方式は使い方で選びます。常時動画を見る、クライアントをずっと起動しておくという使い方なら月額購読が向いています。月額¥9.9で60GB、月額¥18で250GB、月額¥28で500GB。通信量は開通日ごとに毎月リセットされ、途中でアップグレードした場合は差額を残り日数で按分します。たまに使う、出張中だけ使うという場合はトラフィックパックが有利です。¥158で300GB、¥358で1000GB、¥658で3000GB。使い切るまで有効で、期限はありません。

登録の流れも確認しておきたいところです。VPNLSはメールアドレス不要で、ユーザー名とパスワードだけで開設できます。支払いはAlipay、WeChat Pay、USDTに対応。本サービスはログを記録しない方針を固定しており、この点はプロトコルが1つ増えることより選定では意味があります。

結論:Androidの安定性はおおむね常駐設定、回線の種類、プロトコル、クライアントの順で決まります。まずバッテリー最適化と通知権限を整え、そのあとでプロトコルを論じてください。順序が逆だと、どのプロトコルに変えても夜中に一度は切れます。1つだけやるなら、クライアントをバッテリー最適化のホワイトリストに入れて常駐通知を残すこと。2つやるなら、アプリ別プロキシの除外リストも加えてください。