Clash Android クライアント利用ガイド:VpnService 権限許可と省電力ホワイトリスト設定

Android版のClashクライアントは、従来のroot化によって通信を乗っ取る方式ではなく、システムが提供するVpnServiceインターフェースを使って仮想ネットワークインターフェースを構築しています。この権限許可の流れとシステム側の制約を理解し、端末メーカーごとの省電力ホワイトリストや自動起動設定をきちんと済ませておくことで、バックグラウンドでアプリが強制終了され通信が切れてしまう不具合を避けられます。

一、VpnServiceとは何か、Clashがそれを使う理由

Androidシステムでは、通常のアプリにはシステムのルーティングテーブルを直接変更したり、他のアプリの通信を横取りする権限がありません。そこでGoogleが公式に提供しているのがVpnServiceインターフェースです。これにより、ユーザーから一度権限許可を得たアプリは仮想ネットワークインターフェース(通常はtun0という名前)を作成し、通信の全部または一部を自身で処理すると宣言できます。以降、条件に一致した通信パケットはこの仮想インターフェースに転送され、権限を許可したアプリ側で読み取り・処理・再送信されます。

ClashとそのコアであるClash Meta(mihomo)は、Android上でまさにこの仕組みを利用してグローバルプロキシを実現しています。クライアントがVpnServiceの権限許可を取得すると、システムのネットワーク一覧に「VPN接続中」のようなアイコンが表示されますが、これは実際に従来型のVPNサーバーへ接続しているわけではなく、Clashが端末内でルールに合致する通信だけをプロキシノードへ振り分け、それ以外はそのまま通過させているにすぎません。root権限を必要とせず、モバイル端末でTUNモードに近いグローバル制御を実現できる、唯一の正規の手段と言えます。

補足

VpnServiceが構築する仮想ネットワークは、システム上では「VPN接続中」と表示されますが、実際の通信の振り分けは端末内の設定ファイルによって完全に決まります。プロキシするかどうか、どのノードを使うかはルールとポリシーグループの設定次第であり、遠隔のVPNサーバーへ接続してすべての通信を丸ごと処理する従来型のVPNとは仕組みが異なります。

二、初回権限許可と接続確立の手順

Android上で初めてClashクライアントを起動し「プロキシ開始」などのボタンをタップすると、システムから公式の権限確認画面がポップアップします。内容はおおむね「このアプリはVPN接続を確立しようとしています。信頼しますか」といったもので、これはVpnServiceを利用するアプリが初回起動時に必ず表示するシステムレベルのセキュリティ確認であり、通常の動作です。

  1. クライアントを起動し、サブスクリプションまたはローカル設定ファイルが正しく読み込まれ、ポリシーグループとルールがエラーなくロードされていることを確認する。
  2. 起動ボタンをタップするとシステムの権限確認ダイアログが表示されるので「OK」または「許可」をタップして信頼を確定する。
  3. 権限許可が完了すると、ステータスバーに鍵のようなアイコンが表示され、通知欄を下に引くと「接続済み」または「VPN使用中」の常時通知が確認できる。
  4. 任意のブラウザやアプリを開いてネットワーク接続を確認し、続けてクライアント内のトラフィック統計に通信量が反映されているかを見て、プロキシ経路が正しく機能していることを確認する。

権限許可をタップしてもシステムのダイアログが表示されない、あるいは「OK」を押した直後に未接続状態に戻る場合、端末上で別のVPNアプリ(他のプロキシツールや企業のMDMポリシーを含む)が既に有効になっていることが多いです。AndroidはVpnServiceを同時に1つしか有効化できないため、競合するアプリを一旦無効にしてから再試行してください。

三、通知の常時表示とバックグラウンド維持の必要性

VpnServiceによる接続はフォアグラウンドサービスによって維持されており、システムはこの種の常時ネットワークリソースを占有するサービスに対して、削除できない常時通知の表示を義務付けています。これは広告や不要な情報ではなく、システムが要求する動作証明そのものです。もしサードパーティ製のクリーンアップツールなどでこの通知を強制的に消したりプロセスを終了させたりすると、仮想ネットワークインターフェースは即座に無効化され、プロキシ接続も切断されます。

端末標準の「ワンタップ最適化」やセキュリティアプリでバックグラウンドを一括終了する操作を習慣にしている場合、Clashのプロセスと通知が一緒に消されてしまうことがあります。システム設定で本アプリを「バックグラウンド終了対象」から除外するか、クリーンアップツール側で信頼リストに追加しておき、接続が不意に切断されるのを防ぐことをおすすめします。

注意

常時通知が消えない状態は正常で、サービスがフォアグラウンドで動作中であり、プロキシ経路が安定していることを示しています。もし無理にこの通知を消してしまった場合、仮想ネットワークインターフェースはシステムに回収されるため、クライアントを再度開いて権限許可をやり直す必要があります。

四、メーカー別の省電力ポリシーとホワイトリスト設定

中国メーカー製の端末はAndroid標準機能に加えて、より積極的な省電力管理を独自に実装している場合が多く、バッテリー持ちを延ばす目的で「非アクティブ」と判定したバックグラウンドプロセスを凍結・制限、あるいは強制終了させます。これがClashを一定時間そのままにしておくと突然切断される主な原因です。以下は主なメーカーごとの確認ポイントで、メニュー表記はシステムのバージョンによって異なることがありますが、設定の考え方は基本的に共通です。

HUAWEI / HONOR(EMUI / HarmonyOS)

  • 「設定 → バッテリー → 詳細設定 → 起動管理」に進み、Clashクライアントを探して自動管理をオフにし、「自動起動」「連携起動」「バックグラウンド活動」の3項目を手動でオンにする。
  • 「設定 → アプリ → アプリ起動管理」を開き、該当アプリが制限されていないことを再確認する。
  • 最近使用したアプリの画面でアプリのカードを長押しし「ロック」を選択して、システムによる終了を防止する。

Xiaomi(MIUI / HyperOS)

  • 「設定 → アプリの設定 → アプリ管理」からClashを探し、「自動起動」をオンにする。
  • 「設定 → バッテリーとパフォーマンス → アプリの動作設定 → 該当アプリを選択」で省電力ポリシーを「スマート省電」から「制限なし」に変更する。
  • 最近使用したアプリの画面でこのアプリのカードを下にスワイプし、鍵のアイコンをタップして固定し、ワンタップ終了による誤操作を防ぐ。

OPPO(ColorOS)/ vivo(OriginOS / Funtouch OS)

  • 「設定 → バッテリー → アプリの電力管理」または「バックグラウンド電力管理」に進み、Clashを「バックグラウンド動作を許可」または「制限なし」に設定する。
  • 「設定 → アプリ管理 → 権限管理 → 自動起動」を開き、対応するスイッチを手動でオンにする。
  • 一部の端末では「セキュリティセンター → 権限とプライバシー → 自動起動管理」でもう一度確認・設定が必要です。

Samsung(One UI)

  • 「設定 → バッテリー → バックグラウンド使用の制限」を開き、Clashが「休止アプリ」または「ディープスリープアプリ」リストに入っていないことを確認する。
  • 既に自動で追加されていた場合はアプリ名をタップして制限を解除し、「設定 → アプリ → Clash → バッテリー」で「制限なし」を選択する。

メーカーによらず基本的な考え方は同じです。システムの電池最適化・バックグラウンド管理・自動起動という3つの設定項目を探し、それぞれClashをホワイトリスト、または制限なしの状態にしてください。Pixelシリーズなど純粋なAndroidであれば比較的緩やかで、通常は「設定 → アプリ → 特別なアプリアクセス → 電池の最適化」で本アプリを「最適化しない」に設定するだけで済みます。

五、自動起動設定と起動時の連携

端末を再起動した後もプロキシを自動的に復帰させたい場合は、前述のシステム側の自動起動スイッチに加えて、クライアント自体の設定内で「システム起動時に自動起動」や「起動時に自動接続」といった項目(表記はクライアントによって異なる)が有効になっているかも確認してください。これらの設定をオンにすると、システムが「起動完了」のブロードキャストを発した際にクライアント側が自身のプロセスを起動し、VpnService接続を再構築しようとしますが、その前提としてシステム側の自動起動権限がすでに許可されている必要があります。許可されていなければアプリ自体が起動できないため、内部の設定は意味を持ちません。

また、一部メーカーのシステムでは「バックグラウンドでの画面表示」と「自動起動」を別々に管理しているため、自動起動のスイッチがオンでも、バックグラウンドから権限許可のダイアログを自動で表示することを制限している場合があります。この場合は起動後に一度手動でクライアントを開いてサイレント再接続を完了させる必要があり、それ以降は安定した状態を維持できます。

六、よくある切断パターンの確認手順

画面ロック後しばらくするとプロキシが頻繁に自動切断される場合、以下の順序で確認してください。

  1. 通知欄の常時通知がまだ表示されているか確認する。表示されていなければサービスがシステムによって終了させられたことを意味するので、まず第四節の内容に沿って省電力設定と自動起動設定を一項目ずつ確認する。
  2. クライアント内の接続ログやトラフィック統計を開き、切断のタイミングが画面ロック、機内モードの切り替え、Wi-Fi/モバイルデータの切り替えといったシステムイベントと重なっていないか確認する。こうしたネットワーク環境の切り替えは、時にVpnServiceの一時的な再構築を引き起こすことがある。
  3. 端末上で同時にもう一つVpnServiceを使用するアプリが動作していないか確認する。両者は唯一のVPNチャンネルを取り合う関係になる。
  4. デュアルSIMやネットワークの切り替えが頻繁な環境では、クライアント側に用意されていれば「ネットワーク変化時の自動再接続」といった設定をオンにし、手動操作の回数を減らす。
  5. システム全体で「省電力モード」や「超省電力モード」といった全体制限機能がオンになっていないか確認する。これらのモードは個別アプリのホワイトリスト設定より優先度が高く、上書きされてしまうことが多い。
おすすめの設定

省電力ホワイトリスト、自動起動権限、バックグラウンドロックの3点を一度きちんと設定しておけば、多くの端末で長時間安定してプロキシを維持でき、端末を再起動するたびに手動で設定し直す必要はなくなります。

クライアントをダウンロード