VPNによる通信の取り込み・ルールによる振り分け・バックグラウンド動作を分けて考える

Android版Clash Meta for Androidでは、通常3段階の設定が必要です。まずシステムがVPNインターフェースの作成を許可し、クライアントでVPNに通すアプリを選び、最後にコアがルールに従って接続先を決めます。バッテリー設定はクライアントの動作継続を左右するもので、ノードの選択には関与しません。3つは関連していますが、トラブル時は分けて確認しましょう。

Clash MetaとMihomoにはコアの系譜上のつながりがありますが、クライアント名だけで内蔵コアのバージョンや機能を判断することはできません。まずクライアントの「バージョン情報」でアプリのバージョンを確認し、起動ログでコアのバージョンを確認してください。ビルドによってメニュー名が異なる場合があります。この記事では一般的な「設定」→「ネットワーク」から通信の取り込みとアクセス制御を説明し、Androidやメーカー独自システムの設定手順には対象バージョンを記載します。

設定項目確認できること確認方法
VpnServiceの許可クライアントによる仮想ネットワークインターフェースの作成を許可システムのVPN画面、クライアントの動作状態
アプリ別アクセス制御VPNインターフェースに通すアプリを指定アプリ選択リスト、接続画面にリクエストが表示されるか
コアのルールとプロキシグループ取り込んだ通信を直接接続するか、プロキシ経由にするかを決定接続詳細に表示される適用ルールと接続先
バッテリーとバックグラウンド権限画面消灯後にプロセスが制限される可能性を下げる画面消灯前後のサービス状態とログの時刻

VpnServiceの許可:許可すると何ができる?

プロキシサービスを初めて起動すると、AndroidにVPN接続のリクエストが表示され、アプリがネットワークトラフィックを監視する可能性があることが通知されます。許可すると、クライアントがローカルVPNインターフェースを作成し、そこを通るパケットを処理できるようになります。これはサブスクリプションの購入確認ではなく、Androidが自動提供するリモートVPNサーバーにスマートフォンを接続する操作でもありません。リモート側の接続先は、サブスクリプション内のノード、プロキシグループの選択、ルールによって決まります。

初回接続時はこの順で確認

  1. 信頼できる提供元のサブスクリプションを追加し、設定が選択されていることを確認します。プロキシ画面にプロキシグループとノードが表示されることも確認してください。
  2. クライアントのサービスを起動し、システムの許可画面に表示されたアプリ名を確認してから接続を許可します。
  3. Androidの「設定」→「ネットワークとインターネット」→「VPN」を開き、現在接続中のアプリを確認します。メーカー独自システムでは、設定画面の検索欄で「VPN」を検索してください。
  4. ブラウザーで、まだ読み込んでいないページを開きます。ステータスバーの鍵アイコンだけで判断せず、クライアントの接続画面とログも確認してください。

VPNアイコンが示すのは、システムにVPN接続があることだけです。ノードが利用可能か、DNSが正常か、ウェブページが想定した接続先を経由したかまでは分かりません。HTTPSの通信内容は通常、アプリとウェブサイト間のTLSで保護されます。ただし、通信を取り込むクライアントやリモートサービスには接続先や通信時刻などが見える可能性があるため、アプリの入手元とサブスクリプションの提供元はそれぞれ確認してください。

他のVPN・常時接続VPN・VPN未使用時の通信を遮断する設定

同じAndroidユーザーまたはプロファイルでは、通常、同時に有効にできるVpnServiceは1つです。別のVPNアプリや、ローカルVPNを使うファイアウォール・フィルタリングアプリを起動すると、現在の接続が置き換えられることがあります。仕事用プロファイルには別の管理ポリシーがあるため、個人用プロファイルでの結果をそのまま当てはめることはできません。

システムのVPN詳細画面には、「常時接続VPN」や「VPN未使用時の接続をブロック」の設定がある場合があります。後者を有効にすると、サービス停止時にネットワーク自体が使えなくなることがあります。アプリ別設定でVPNから除外したアプリも、通常の直接接続に戻らずブロックされる可能性があります。まず基本的な接続とアプリ別の動作を確認してから、これらの設定を有効にするか判断してください。

アプリ別プロキシ:対象アプリを選んでからルールを確認

アプリ別アクセス制御には、通常「選択したアプリのみ許可」と「選択したアプリを除外」の2つの方式があります。VPNに通すアプリが少ない場合は前者、大半のアプリを対象にして一部だけ除外する場合は後者が適しています。チェックの意味は選択中の方式によって異なるため、チェックの有無だけで判断しないでください。

ブラウザーと地図アプリを例に設定

  1. クライアントの「設定」→「ネットワーク」を開き、「アクセス制御モード」とアプリ選択の項目を探します。ビルドによっては「アクセス制御」にまとめて表示されます。
  2. ブラウザーだけをVPNに通す場合は、「選択したアプリのみ許可」を選び、ブラウザーにチェックを入れます。地図アプリは追加しないでください。
  3. 設定を保存し、クライアントのサービスを停止してから再起動します。アプリの対象範囲を反映するには、VPNインターフェースの再作成が必要な場合があります。
  4. ブラウザーと地図アプリで既に開いている通信を終了し、それぞれ新しいリクエストを送ります。必要に応じて対象アプリを終了し、再度開いてください。
  5. 接続画面でブラウザーのリクエストが表示されるか確認します。地図アプリがVPNの対象外なら、通常はクライアントの接続履歴に表示されません。

「VPNに通る」ことと「プロキシノードを使う」ことは別です。ブラウザーがVPNに取り込まれていても、アクセス先のドメインがDIRECTルールに一致すれば直接接続されます。反対にVPNから除外したアプリの接続先は、そのクライアントのドメインルールでは決まりません。まずリクエストがコアに届いていることを確認してから、ルールとプロキシグループを調べましょう。

アプリ一覧と接続履歴でよくある勘違い

  • 表示名が同じ:ベータ版、正式版、仕事用プロファイルのアプリは、それぞれ別のインストールとして扱われる場合があります。パッケージ名を確認できる場合は、あわせて照合してください。
  • アプリ内からのリンク遷移:アプリが外部ブラウザーでリンクを開くと、実際に通信するのは元のアプリではなくブラウザーの場合があります。
  • 以前の接続が残っている:リストを変更しても、既存のセッションはしばらく以前の経路を使うことがあります。キャッシュ済みのページを再読み込みするだけでなく、新しいリクエストで確認してください。
  • システムコンポーネントの関与:ダウンロード、プッシュ通知、ログインの処理に別のプロセスが関わることがあります。接続履歴を1件記録するためだけに、すべてのシステムアプリをまとめて許可しないでください。

まずブラウザー1つで最小限のテストを行い、その後アプリを1つずつ追加しましょう。ログインの不具合、LANへのアクセス失敗、アプリの通信不能が起きたとき、どの変更が原因か特定しやすくなります。

バッテリー最適化の対象外設定:システム別の手順

バックグラウンド切断は、画面消灯後、省電力モードへの移行後、または長時間操作しなかった後に起こりがちです。バックグラウンド動作を許可すると、システムによるサービス制限を受ける可能性を下げられますが、ノードの停止、サブスクリプションの期限切れ、Wi-Fi切り替えによる切断は解決できません。以下の手順は記載したシステムバージョンを参考にしています。地域や機種、システム更新によって項目名が異なる場合は、アプリアイコンを長押しして「アプリ情報」を開いてください。

システムの例バッテリー・バックグラウンド設定への経路推奨設定
Pixel / Android 14 設定 → アプリ → すべてのアプリを表示 → Clash Meta for Android → アプリのバッテリー使用量 「制限なし」を選び、バックグラウンドでの使用も許可
Samsung / One UI 6 設定 → アプリ → Clash Meta for Android → バッテリー 「制限なし」を選択します。さらに「バッテリー」→「バックグラウンドでの使用制限」で、ディープスリープ中のアプリ一覧を確認してください。
Xiaomi / HyperOS 1 アプリ情報 → バッテリーセーバー;設定 → アプリ設定 → 権限 → 自動起動 バッテリーセーバーを「制限なし」に設定します。再起動後もサービスを復元する必要がある場合は、自動起動も許可してください。
OPPO / ColorOS 14 アプリ情報 → バッテリー使用量;設定 → アプリ → 自動起動 バックグラウンドでの動作を許可し、必要に応じて自動起動も許可
Huawei / EMUI 12 設定 → アプリとサービス → アプリの起動管理 このアプリの「自動管理」をオフにし、必要に応じて自動起動、他のアプリによる起動、バックグラウンドでの動作を許可

バッテリー権限のほかに確認する2項目

  • バックグラウンドでのモバイルデータ通信:アプリ情報の「データ使用量」または「モバイルデータ」で、バックグラウンド通信が許可されていることを確認します。「データセーバー」が有効な場合は、必要に応じてクライアントの無制限データ使用を許可してください。
  • サービス通知:Android 13以降では、動作状況を確認できるよう必要に応じて通知を許可します。通知の許可はバックグラウンド動作の許可とは別です。通知を拒否しても、フォアグラウンドサービスが必ず起動できなくなるわけではありません。

一部のメーカー製端末では、最近使ったアプリの画面でアプリをロックできます。手動でアプリを終了したときに消されにくくなりますが、バッテリー設定の代わりにはなりません。Androidの「強制停止」は、アプリカードをスワイプして閉じるよりも影響が大きい操作です。強制停止後はクライアントを手動で開き、サービスを起動してください。対象外設定だけで接続が自動復旧するとは限りません。

画面消灯後の切断を段階的に確認する方法

テストでは「サービスが終了した」場合と「サービスは動作中だがリクエストに失敗した」場合を分けて記録します。以下は再現可能な確認手順であり、特定の端末での実測結果ではありません。テスト時間は観察条件をそろえるための目安で、どのシステムでも同じ時間でバックグラウンド制限が始まるわけではありません。

  1. 基準条件をそろえる:同じWi-Fi、同じノード、同じルールモードを使います。開始時刻、アプリのバージョン、コアのバージョン、省電力モードの有効・無効を記録してください。
  2. 画面点灯中に2分間テスト:ブラウザーから新しいリクエストを送り、接続詳細で適用ルールと接続先を確認します。この時点で失敗する場合は、対象外設定を変える前に設定を確認してください。
  3. 画面消灯状態で10分間テスト:クライアントのサービスを動作させたままにします。画面を点灯したら、まずサービスが動作中かを確認し、新しいページを開いてから該当時間のログを確認してください。
  4. ネットワーク切り替えを単独でテスト:画面を点灯した状態でWi-Fiからモバイルデータ通信に切り替え、ネットワークが安定してから再試行します。ネットワーク切り替えと画面消灯を同時にテストしないでください。
  5. 設定を1つ変えて再テスト:このアプリのバッテリー制限だけを緩和し、10分間のテストを繰り返します。問題がなければ、さらに30分間観察してください。

症状から次の確認項目を絞り込む

症状優先して確認する項目次の対応
VPNの状態が消え、サービスも停止するバックグラウンド制限、強制停止、他のVPNによる置き換えバッテリー設定とシステムのVPN画面を確認
サービスは動作中だが、接続時にDNSエラーが発生する実行中の設定のDNS、システムのプライベートDNS、現在のネットワークログを保存し、DNS関連の設定を1つずつ変更
特定のアプリだけネットワークに接続できないアクセス制御モード、アプリの選択、システムのVPN未使用時の接続ブロック設定VPNインターフェースを作り直してから、そのアプリを再テスト
リクエストはコアに届くが、プロキシ接続がタイムアウトするノード、プロキシグループ、サブスクリプションの状態、ネットワークへの到達性動作確認済みの別ノードを選び、接続詳細を比較

システムのプライベートDNSとクライアントの名前解決経路が合っていない可能性がある場合は、現在の設定を記録してから「設定」→「ネットワークとインターネット」→「プライベートDNS」で一時的に「自動」に変更し、比較してください。1回のテストで分かるのは、その設定での結果だけです。すべてのプライベートDNSが競合すると判断することはできません。メーカー独自システムでは、設定画面の検索で項目を探してください。

接続を維持するための基本チェックリスト

スマートフォンで安定して使うために、すべての設定を有効にする必要はありません。まずサブスクリプションが有効で、プロキシグループが使えることを確認し、VpnServiceの許可、VPNに通すアプリの範囲、バックグラウンド権限を確認します。ヘルスチェックの頻度が高すぎると、端末の起動回数や通信量が増える場合もあります。自動速度測定を行うプロキシグループを含む設定では、頻度を上げ続けて動作を維持しようとせず、実際の確認間隔と提供元の推奨を確認してください。

  • システムのVPN画面に想定したクライアントが表示され、別のローカルVPNアプリに置き換えられていない。
  • 「選択したアプリのみ許可」と「選択したアプリを除外」のどちらを使うかを確認し、アプリ一覧を変更した後にサービスを再起動した。
  • 接続詳細で適用ルールと最終的な接続先を確認し、VPNアイコンだけをプロキシ接続成功の証拠にしない。
  • クライアントだけバックグラウンド動作を許可し、必要に応じて自動起動、バックグラウンドデータ通信、通知を設定する。
  • 画面点灯中、画面消灯中、Wi-Fiからモバイルデータ通信への切り替えをそれぞれテストしてから、常時接続VPNなどの追加設定を検討する。

相談するときは、Androidのバージョン、クライアントのバージョン、切断時刻、個人情報を伏せたログを共有してください。サブスクリプションの完全なURL、ノードのパスワード、アクセストークンはスクリーンショットや公開記録に含めないでください。「画面消灯から10分後にサービスが停止する」「サービスは動作中だがDNSがタイムアウトする」のように説明すると、「接続済みなのに使えない」より原因を絞り込みやすくなります。