プラットフォーム別 読了時間:約10分

Clash Androidの使い方:VpnServiceの許可・バッテリー最適化の解除・バックグラウンド実行

Android版ClashのVPN許可、バッテリー最適化による切断対策、アプリ別VPNと常時接続VPNの設定方法を解説します。

初回接続:VpnServiceの許可とサブスクリプションの確認

Android版Clashクライアントは通常、システムのVpnServiceを使って仮想ネットワークインターフェースを作成し、条件に合う通信をコアに渡します。mihomoコアを使うクライアントでも、この許可が必要です。サブスクリプションのアカウント認証とは別のもので、YAML設定を読み込んだだけでは許可されません。

クライアントによってボタン名は「開始」「接続」「VPN」など異なります。ここでは機能に沿って説明します。クライアントの画面やメーカー独自の設定メニューは機種によって異なるため、同じ項目が見つからない場合は、システム設定で「VPN」「バッテリー最適化」「自動起動」を検索してください。

  1. サブスクリプションまたはローカル設定を読み込み、現在の設定として選択します。設定を正しく解析でき、プロキシグループに選択可能なノードがあることを確認してください。
  2. 「ルール」モードを選び、接続可能なノードを選択します。ノードの遅延テストに成功しても、テスト先に到達できたことを示すだけで、すべてのアプリからアクセスできるとは限りません。
  3. 接続ボタンをタップします。初回はAndroidのシステムダイアログ(「ネットワーク接続のリクエスト」など)が表示されるので、アプリ名を確認して許可してください。
  4. クライアントに戻り、接続状態と実行ログを確認します。テスト用のWebページを開き、接続ログが増えることも確認してください。

許可ダイアログが表示されない・接続直後に切断される

  • 別のVPNが接続中:Androidでは通常、同じユーザーまたはプロファイル内で同時に有効にできるVPNは1つです。通信高速化アプリ、ファイアウォール、一部の広告ブロックアプリがVpnServiceを使用している場合もあります。いったん切断してから、もう一度お試しください。
  • 別のアプリで「常時接続VPN」が有効:システムの「設定」→「ネットワークとインターネット」→「VPN」を開き、既存VPNの設定を確認します。メーカー独自のシステムでは、「接続と共有」などに項目がある場合があります。
  • 仕事用プロファイルまたはデバイス管理の制限:企業の管理ポリシーによって、ユーザー自身でのVPN作成が禁止されている場合があります。その場合はクライアントを何度もインストールせず、デバイス管理者にお問い合わせください。
  • 許可画面を操作できない:フローティングウィンドウや画面フィルターなど、画面に重なる機能を一時的に無効にしてから、クライアントで許可を再度要求してください。自動タップツールで確認画面を回避しないでください。

Android 13以降では、通知の許可とVPNの許可は別々です。通知を許可すると実行状態や切断操作を確認しやすくなりますが、VpnServiceの許可の代わりにはなりません。また、通知を拒否しただけでは、サービスが停止したとは判断できません。

システムVPN・TUNモード・ルールモードの違い

システムに「VPN」と表示されても、すべての通信がリモートのプロキシサーバーに送られるわけではありません。Androidの仮想インターフェースが通信を受け取り、その後の経路をClashやmihomoのルールとポリシーグループが決定します。ルールにより DIRECT が選ばれた通信は、クライアントで処理された後、そのまま直接送信されることがあります。

設定項目制御する内容確認場所
システムVPNの許可アプリによる仮想ネットワークインターフェースの作成を許可AndroidのVPN設定と接続リクエスト
アプリ別VPNどのアプリの通信をVPNトンネルに通すかクライアントのアプリ一覧と対象・除外の設定
ルールモードコアに渡された通信に適用するポリシー現在の設定にあるrulesとポリシーグループ
TUN・DNSの設定通信の取り込み、ドメインの名前解決、関連するルーティング動作クライアントのネットワーク設定とコアの設定

Android版クライアントの中には、VPNインターフェースやルーティングを独自に管理するものがあり、デスクトップ版の tun: 設定をそのまま適用できない場合があります。VPNアイコンを表示させるためだけに、サブスクリプションへデスクトップ版のTUN設定を追加しないでください。また、デスクトップ版の管理者権限を使った操作がスマートフォンでも使えるとは限りません。まずはAndroid版クライアントの接続方法に従ってください。

スマートフォン上でVpnServiceを使う場合、通常はWi-Fiに手動プロキシを設定する必要はありません。以前、パソコンのプロキシ(例:192.168.1.10:7890)を設定していた場合は、テスト前にそのWi-Fiのプロキシを「なし」に戻してください。電源を切ったパソコンへの接続が残るのを防げます。

バッテリー最適化を解除し、自動起動も確認

画面ロック後に切断される場合、バックグラウンド制限、システムのスリープ、メーカー独自のタスク終了が原因としてよく挙げられます。ネットワークの切り替えやノードの問題も考えられます。まず切断時にクライアントが動作しているか確認してください。サービス通知が消えたり、接続スイッチが停止状態に戻ったりする場合は、プロセス制限を優先して確認します。サービスが動作中なのにリクエストがタイムアウトする場合は、ネットワークとログを調べてください。

Android共通の設定手順

  1. クライアントのアイコンを長押しして、「アプリ情報」を開きます。
  2. 「バッテリー」または「アプリのバッテリー使用量」を開き、「制限なし」を選択するか、そのアプリのバッテリー最適化を無効にします。項目名や選択肢はAndroidのバージョンによって異なります。
  3. 「モバイルデータとWi-Fi」または「データ使用量」を開き、バックグラウンドデータが許可されていることを確認します。データセーバーを有効にしている場合は、必要に応じてデータ使用量の無制限設定も許可してください。
  4. クライアントに戻って接続し、画面をロックしてから動作を確認します。ホーム画面に戻るだけでは、バックグラウンド動作のテストにはなりません。

メーカー別の設定項目を探す

システムよくある設定場所確認する項目
Xiaomi MIUI / HyperOSアプリ情報 → バッテリーセーバー。設定で「自動起動」を検索「制限なし」を選び、必要に応じてバックグラウンドでの自動起動を許可
Huawei EMUI / HarmonyOSのAndroidアプリ環境設定 → バッテリー → アプリ起動管理アプリの自動管理を無効にし、自動起動・他のアプリによる起動・バックグラウンドでの実行を許可
OPPO ColorOS / OnePlus OxygenOSアプリ情報 → バッテリー使用量。設定で「自動起動」を検索バックグラウンドでの実行を許可し、自動起動に関する制限を確認
vivo OriginOS設定で「バックグラウンド消費電力管理」と「自動起動」を検索バックグラウンドでの高負荷実行を許可し、自動起動の権限を確認
Samsung One UI設定 → バッテリー → バックグラウンドでの使用制限スリープ中・ディープスリープ中のアプリ一覧から削除し、必要に応じて「自動スリープしないアプリ」に追加

ここに記載したのは一般的な設定場所であり、すべてのシステムバージョンで同じ名称とは限りません。また、HarmonyOSのネイティブアプリ環境と、Androidアプリを動かす互換環境は別物です。インストール前に、使用するAndroid版クライアントがそのシステムで動作するか確認してください。

バッテリー最適化の対象外にするとバックグラウンド制限を軽減できますが、起動時に自動接続されるとは限りません。起動時の自動接続には、クライアントがその機能に対応していること、システムが自動起動を許可していること、デバイスのロック解除状態なども関係します。有効にした後は、設定スイッチを見るだけでなく、再起動して動作を確認してください。

アプリ別VPN:対象アプリか除外アプリかを確認

アプリ別VPNは、ブラウザーやチャットアプリなど指定したアプリだけをVPNに通したい場合や、端末管理用のローカルアプリをVPNから除外したい場合に便利です。一般的な設定場所は、クライアントの「設定」→「ネットワーク」→「アプリ別VPN」または「アプリのアクセス制御」です。名称が異なっていても、確認すべきなのはリストの意味です。

  • 選択したアプリのみVPNを使用:選んだアプリだけがVPNに入り、選んでいないアプリは入りません。アプリを追加したときは、リストに含まれているか確認してください。
  • 選択したアプリをVPNから除外:選んだアプリはVPNに入らず、それ以外の接続対象アプリはVPNに入ります。
  • ルールでDIRECTを指定:アプリの通信がVPNに入った後、コアのルールによって直接接続に振り分けられる場合があります。システムレベルでVPNから除外する設定とは異なります。

たとえばブラウザーだけにプロキシを使いたい場合は、「選択したアプリのみVPNを使用」を選び、実際に使うブラウザーにチェックを入れて保存し、VPNを再接続します。アプリによってはリストの変更後に自動で再接続されます。自動で再接続されない場合は、いったん停止してから起動し、新しいインターフェース設定を反映してください。

アプリの複製、仕事用プロファイル内のアプリ、メインユーザーのアプリは、ユーザーIDが異なる場合があります。アイコンが同じだからといって、対象になっているとは限りません。また、ダウンロード処理がシステムのダウンロードサービスによって実行されることもあります。ブラウザーを選択しても、外部のダウンロード機能すべてが同じ経路で通信するとは限りません。

確認するには、選択したアプリで新しいページを開き、クライアントの接続ログを確認します。既存の長時間接続やキャッシュされた結果では、ルールが有効かどうかを判断しにくくなります。ログに記録されない場合は、すぐにDNSを変更せず、アプリ一覧、リストのモード、現在のユーザー領域を確認してください。

常時接続VPN:自動再接続と通信遮断は別々に設定

Android 7.0以降では、システム機能として「常時接続VPN」を利用できます。ただし、選択できるかどうかはクライアントの対応状況やデバイスのポリシーによります。Androidに近い標準的な設定経路は「設定」→「ネットワークとインターネット」→「VPN」→クライアント名の横にある歯車アイコンです。その他のシステムでは、設定内で「VPN」を検索してください。

この画面には「常時接続VPN」と「VPN未使用時の接続をブロック」が並んでいる場合があります。前者はVPNの維持や再起動をシステムに要求し、後者はVPNを経由しない通信を制限します。どちらもノードの接続確認の代わりにはならず、設定ファイルの構文エラーも解決しません。

  1. まず通常の接続モードで、サブスクリプション、ノード、DNS、アプリ別設定が正常に動作することを確認します。
  2. 「常時接続VPN」を有効にし、再起動後、ロック解除後、手動切断後の動作を確認します。
  3. VPNを経由しない通信を制限する必要がある場合に限り、「VPN未使用時の接続をブロック」を有効にします。
  4. ブラウザー、VPNから除外したアプリ、LAN上のデバイス、ログインページが必要なWi-Fiをそれぞれテストします。

ホテルや空港などのWi-Fiでは、ポータル画面での認証が必要な場合があります。VPNと通信ブロックの設定によってログインページを開けない場合は、一時的にブロックを解除してVPNを切断し、認証後に再接続してください。「常時接続」を有効にしても、メーカー独自のバックグラウンド制限を回避できるわけではありません。

画面ロック・ネットワーク切り替え時の切断を確認

同じ設定と同じノードを使い、項目ごとに確認することをおすすめします。サブスクリプション、DNS、バッテリー設定を同時に変更するのは避けてください。以下はテスト手順であり、特定の端末での実測結果ではありません。発生時刻を記録しておくと、ログのタイムアウト、再接続、サービス停止の記録と照合しやすくなります。

  1. 前面表示での基準テスト:Wi-Fiに接続して異なるサイトを2つ開き、接続ログに接続先と適用されたポリシーが表示されることを確認します。
  2. 画面ロックのテスト:まず5分間ロックし、その後15分間テストします。ロック解除後、サービスが動作を続けているか、新しいリクエストが成功するか確認してください。
  3. ネットワーク切り替えテスト:Wi-Fiをオフにしてモバイルデータに切り替え、再びWi-Fiに戻します。既存のTCP接続が切れることは珍しくありません。新しい接続が復旧するかを確認してください。
  4. 再起動テスト:必要な自動起動または常時接続の設定を有効にしてから端末を再起動し、ロック解除前と解除後の状態をそれぞれ確認します。

ログを見て次の確認項目を決める

  • サービスが停止している:バッテリー制限、自動起動の許可、他のVPNとの競合、タスク終了や強制停止の有無を確認します。
  • サービスは動作中だがDNSがタイムアウトする:設定内のDNS上流、現在のネットワークからの到達性、Androidの「プライベートDNS」設定を確認します。一度に変更する項目は1つにし、元の設定を記録してください。
  • 特定のアプリだけで問題が起きる:アプリ別リスト、適用されるルール、アプリ自体のネットワーク権限を確認します。設定全体をすぐにリセットしないでください。
  • 直接接続は正常だが、プロキシ経由のリクエストがすべてタイムアウトする:ノードとポリシーグループを確認します。遅延テストだけでなく、実際の接続先への通信も検証してください。
  • モバイルデータでは正常だが、Wi-Fiで問題が起きる:ポータル認証、以前設定した手動プロキシ、ルーター側のネットワーク制限を確認してから、クライアントの設定変更を検討してください。

Androidの「プライベートDNS」と設定内のDNSモジュールは異なる階層にあり、実際のリクエスト経路はシステムのバージョン、クライアント、通信の取り込み方式によって変わります。原因を切り分けるため、一時的に「自動」に変更して比較する方法はありますが、プライベートDNSを無効にすることがすべての切断問題に対する決まった解決策ではありません。

設定とログを記録して、再調査を効率化

設定後は、クライアント名とバージョン、Androidのバージョン、接続モード、アプリ別リストの動作、バッテリー設定を記録してください。開発者やメンテナーに報告する際は、問題が起きた時刻、Wi-Fiかモバイルデータか、個人情報を伏せた関連ログを添えてください。サブスクリプションURL、ノードのパスワード、アクセストークンは公開しないでください。

バックグラウンドでVPNサービスを維持すると、継続的に電力を消費します。実際の消費量は通信量、ノードのプロトコル、DNSリクエスト、速度テストの頻度、端末のネットワーク状態にも左右されます。普段からすべてのノードを何度も一括テストする必要はありません。不要なテストやログ出力を減らしてから、システムのバッテリー使用量を比較してください。常時表示される通知だけで、異常な電池消費だと判断しないでください。

最後に、VPNの許可を確認し、必要なバックグラウンド制限を解除して、アプリ別リストの動作を確かめます。そのうえで常時接続と通信ブロックを使うか判断してください。クライアントを選び直す場合は、まずクライアント比較をご覧ください。基本的な読み込み手順はClashの使い方ガイド、ルールとDNSの役割は高度な設定で確認できます。

Clash をダウンロード