Androidで始める前に確認すること
Clash for Androidを使う流れは、アプリをインストールする、Clash形式のサブスクリプションを登録する、設定ファイルを読み込む、プロキシグループで接続先を選ぶ、VPN接続を開始する、という順番です。アプリを開いただけでは通信は自動的に切り替わりません。設定ファイルが読み込まれていても、AndroidのVPN接続を許可していなければ、通常の通信はそのまま携帯回線やWi-Fiから送信されます。
なお、「Clash for Android」という名称は、オリジナルのAndroidクライアントを指す場合と、Clash系の別クライアントを指す場合があります。画面名やボタンの位置はビルドによって異なりますが、基本的な考え方は共通しています。Profiles、Config、設定などの画面でサブスクリプションを管理し、Proxies、Proxy、プロキシなどの画面で接続先を変更します。カーネルがmihomoの場合は、Hysteria2、TUIC、VLESSなどに対応できることがありますが、アプリ名だけで対応プロトコルを判断しないでください。
| 確認項目 | 確認する内容 | 問題がある場合 |
|---|---|---|
| Androidのバージョン | アプリが対応するOSか | 公式の配布ページで対応範囲を確認する |
| 設定形式 | Clash、Clash Meta、mihomo形式か | サービス提供元でAndroidまたはClash用URLを発行する |
| VPN権限 | AndroidのVPN接続要求を許可できるか | 他のVPNアプリを停止してから再試行する |
| バッテリー制限 | バックグラウンド動作が止められないか | Clash系アプリをバッテリー最適化の対象外にする |
サブスクリプションを登録する
サブスクリプションURLは、プロキシノード、プロキシグループ、ルール、DNSなどをまとめた設定ファイルを取得するためのリンクです。サービス提供元の管理画面で「Clash」「Clash Meta」「mihomo」「Android」などと表示されたURLを選びます。単独のss://、vmess://、trojan://リンクしかない場合は、Clash用の設定として生成されたURLとは扱いが異なるため、そのままProfiles画面へ貼り付けても読み込めないことがあります。
- Clash for Androidを開き、Profiles、Config、または設定管理の画面へ移動します。
- 追加ボタンをタップし、URLから設定を追加する項目を選びます。
- サブスクリプションURLを貼り付け、分かりやすい名前を付けます。
- 保存、Download、取得などのボタンをタップして設定をダウンロードします。
- 取得した設定をタップし、現在使用するプロファイルとして選択します。
- Proxies画面にノード名とプロキシグループが表示されることを確認します。
URLを貼り付けた直後に通信が始まるわけではありません。多くのクライアントでは、ダウンロードした設定を「選択」または「有効化」する操作が別に必要です。設定一覧にファイルが表示されていても、チェックマークやハイライトが別の設定に付いている場合、実際に動作しているのは以前のプロファイルです。
mixed-port: 7890
mode: rule
allow-lan: false
log-level: info
proxies:
- name: "Example Node"
type: trojan
server: example.invalid
port: 443
password: "hidden"
sni: example.invalid
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "Example Node"
- DIRECT
rules:
- MATCH,Proxy
上の内容は構造を説明するための例であり、実際のサーバー情報ではありません。サブスクリプションを取得した後、proxiesにノードがあり、proxy-groupsに選択用のグループがあり、最後にrulesが存在するかを確認すると、設定の大まかな構造を把握できます。パスワードやアクセストークンを含む設定ファイルをスクリーンショットや公開ストレージに保存しないでください。
ノードとプロキシグループを切り替える
設定を有効にしたら、Proxies画面で接続先を選択します。画面には「Proxy」「Final」「自動選択」「Fallback」「DIRECT」など、複数のグループが表示されます。通常は、最上位の選択グループでノードを選ぶだけでは不十分です。実際の通信ルールが別のグループ、たとえば「Proxy」や「Streaming」を参照している場合は、そのグループを開いてノードを変更してください。
| 表示される項目 | 役割 | 使い方 |
|---|---|---|
| select | 手動でノードを選択するグループ | 一覧からノードをタップする |
| url-test | 遅延測定を使って候補を選ぶグループ | テストを実行し、数値だけでなく安定性も確認する |
| fallback | 利用できるプロキシへ切り替えるグループ | 停止したノードから別のノードへ移行させる |
| DIRECT | プロキシを使わず直接接続する経路 | 国内サービスや動作確認に利用する |
遅延テストの見方
ノードの横に表示される82 msやtimeoutは、指定された測定URLへの接続結果です。数値が小さいほど、測定時点の応答が速い傾向にありますが、実際の動画再生速度や長時間接続の安定性を保証するものではありません。たとえば、遅延が45msのノードでもパケットロスが多ければ、Webページの読み込みや動画再生は不安定になります。最初は遅延が低く、テストが連続して成功するノードを選び、数分間使ってから判断してください。
特定のサイトだけ開けない場合は、現在のノードを何度も変更する前に、対象ドメインがどのグループへ送られているかを確認します。ルールがDIRECTを選んでいるならノードを変えても経路は変わりません。逆に、すべての通信をプロキシへ送る設定では、国内サービスや銀行アプリで問題が出ることがあります。
モードとVPN接続を設定する
Clash for Androidでは、一般に「Rule」「Global」「Direct」の3つのモードを使い分けます。Ruleモードは設定内のrulesを上から順に照合し、ドメインやIPアドレスに応じてプロキシまたは直接接続を選びます。Globalモードは、基本的に選択したプロキシグループへ通信を送ります。Directモードはプロキシを使わず、通常のAndroidネットワークから接続します。
- Rule:普段の利用に向いています。サービスごとに経路を分けたい場合の標準的な選択です。
- Global:ルールの影響を受けず、選択したプロキシグループを使って動作を確認したいときに便利です。
- Direct:トラブルの切り分けや、プロキシを一時停止したいときに使います。
モードを選んだら、メイン画面の開始ボタン、スイッチ、または「Start」をタップします。AndroidにVPN接続の許可ダイアログが表示されたら、内容を確認して許可します。Clash系アプリが作成するVPNは、通常、通信をローカルのカーネルへ取り込むためのものです。VPN接続が表示されていても、選択中のノードが停止している、ルールがDIRECTになっている、DNSだけが失敗しているといった可能性は残ります。
最初のテストでは、TUNや高度なDNS設定を変更せず、Ruleモードと通常のVPN接続だけで確認するのが安全です。Androidの「設定」→「ネットワークとインターネット」→「VPN」に別のVPNが接続されている場合、同時利用できないことがあります。AdGuard、WireGuard、別のVPNクライアント、企業向けセキュリティアプリなどが動作している場合は、いったん停止してから再試行してください。
接続できないときの確認手順
接続できないときは、サブスクリプション、カーネル、ノード、VPN、DNSのどこで止まっているかを順番に確認します。最初から設定ファイルを削除して再登録するのではなく、画面に表示されたエラーとログを保存してください。原因を残したまま再インストールすると、同じ問題が再発したときに比較できなくなります。
- 設定の更新を確認:Profiles画面で更新を実行し、HTTPステータスやYAML解析エラーが表示されないか確認します。401、403、404、429はURLやサービス側の制限を確認します。
- 有効なプロファイルを確認:ダウンロード済みでも選択されていない設定は使われません。現在の設定名と最終更新時刻を確認します。
- ノードを変更:現在のノードだけが停止している可能性があります。別のノードを選び、遅延テストを再実行します。
- モードを確認:Ruleモードで問題がある場合は、一時的にGlobalモードで同じサイトを試します。Globalで開けるなら、ルールまたはDNSポリシーが原因の可能性があります。
- VPNの競合を確認:AndroidのVPN設定で別のVPNが動作していないか確認します。常時接続VPNやVPNを利用した広告ブロッカーも対象です。
- ログを確認:
connection refused、timeout、no route to host、TLSエラーなど、失敗する段階を読み取ります。
connection refusedは、指定先のポートで接続を受け付けていない、またはノード情報が誤っている可能性があります。timeoutは、経路、ファイアウォール、DNS、サーバー停止など複数の原因で発生します。ノード一覧が空なら、接続テストより先にサブスクリプションの形式と更新結果を確認してください。ノードは表示されるのにすべて失敗する場合は、サーバー情報、TLSのSNI、UUIDやパスワード、利用中のカーネル対応状況を確認します。
Android特有の停止要因
画面を閉じた後だけ通信が止まる場合は、Androidメーカーの省電力機能がアプリを終了させていることがあります。「設定」→「アプリ」→対象アプリ→「バッテリー」で、制限なし、最適化しない、バックグラウンド動作を許可する、といった項目を確認してください。名称は端末メーカーによって異なります。通知を非表示にすると、VPNの停止やカーネルのクラッシュに気づきにくくなるため、安定するまでは常駐通知を許可することをおすすめします。
Wi-Fiからモバイルデータへ切り替えた直後に接続が失敗する場合は、ノードの再接続、VPNの停止と再開、機内モードのオン・オフを順番に試します。データセーバー、プライベートDNS、企業ネットワークの証明書検査も影響します。プライベートDNSをカスタム設定している場合は、切り分けのため一時的に自動へ戻し、通常のDNSで名前解決できるか確認してください。
よくある質問
サブスクリプションを登録したのにノードが表示されません。
URLの取得に失敗しているか、単独の共有リンクをClash設定として登録している可能性があります。Profiles画面の更新結果を確認し、サービス提供元でClashまたはmihomo用のURLを発行してください。HTMLのログイン画面やJSONエラーを取得している場合も、ノード一覧は作成されません。
ノードを変更しても通信経路が変わりません。
実際のルールが別のプロキシグループを参照している可能性があります。Proxies画面で最上位のグループだけでなく、ルールが指定するグループを開いて選択を変更してください。Globalモードで一時確認すると、ルールの影響を切り分けやすくなります。
VPN接続中なのに一部のアプリだけ通信できません。
そのアプリがVPNの対象外になっている、Android側のバッテリー制限でプロセスが停止している、またはルールでDIRECTに送られている可能性があります。Clashのログ、アプリのVPN除外設定、ルールの送信先を確認してください。
更新は毎回手動で実行する必要がありますか。
クライアントが自動更新に対応していれば、設定の更新間隔を指定できます。ただし、短すぎる間隔はサービス側のレート制限に触れることがあります。契約サービスの推奨値を優先し、更新後は新しい設定を選択しているか確認してください。