始める前に:クライアントとサブスクリプションURLを準備
このチュートリアルでは、クライアントのインストールが完了している状態から説明します。アプリを初めて開いたら、まずホーム画面が正常に表示されることを確認し、サービス提供元から発行された有効なサブスクリプションURLを用意してください。クライアントは設定の読み込みと接続処理を行うもので、アプリをインストールしただけでは利用可能なノードは作成されません。サービスのアカウントや購入履歴、ウェブサイトのログインURLしか手元にない場合は、サービス提供元のユーザーページに戻り、Clashまたはmihomo向けのサブスクリプション項目を探してください。
サブスクリプションURLには個人用の認証情報が含まれることが多いため、アカウント情報と同様に管理してください。コピーするときはサービスのページにあるコピー機能を使い、チャットのスクリーンショットから手入力するのは避けましょう。URL全体を公開コメント欄に投稿してはいけません。末尾のパラメーターによって取得内容が変わる場合があるため、URLを短くする目的で削除しないでください。サポートを依頼する場合は、エラーの種類だけを伝え、サブスクリプションURLやノードの認証情報は公開しないでください。
スマホがネットワークに接続できる状態を保ち、DNSやポート、コアの詳細設定はひとまず変更しないでください。ほかのVPN、通信フィルタリング、プロキシアプリを使用中の場合は、その状態を覚えておき、接続を開始する前に一時停止します。設定は4ステップで進めます。各ステップの画面表示を確認し、サブスクリプションのダウンロードが完了する前に接続ボタンを何度も押さないようにしましょう。
ステップ1:サブスクリプションを追加して設定を有効にする
設定画面でURLサブスクリプションを追加
クライアントの「設定」または「サブスクリプション」画面を開き、追加ボタンをタップします。右上のプラスボタンや画面下部にある場合もあります。「URLからインポート」「ファイルからインポート」「クリップボードからインポート」などが表示されたら、サブスクリプションURLにはURLからのインポートを選択してください。「スマホの日常用設定」など、見分けやすい名前を入力してからURL欄にアドレス全体を貼り付け、前後に空白や改行が入っていないか確認します。
保存、インポート、ダウンロードなどのボタンを押したら、クライアントの処理が完了するまで待ちます。通常は設定一覧に項目が追加され、名前や更新日時、更新ボタンが表示されます。アプリによってはURLを保存しただけではダウンロードが始まらず、更新操作が必要です。ダウンロード完了の表示を確認してから設定を有効にしてください。一覧に名前が表示されただけでは、リモートの設定を読み込み済みとは限りません。
サービスのページにワンタップインポート機能がある場合、対応するアプリを開くか確認されることがあります。対象のクライアントを確認して遷移を許可し、アプリ内で配信元と設定名を確認してください。遷移後も設定一覧に戻って結果を確認し、ブラウザーの「送信しました」という表示だけでインポート成功と判断しないようにしましょう。アプリ選択画面が表示されない場合は、手動でURLをインポートして設定を完了してください。
設定を選択し、プロキシグループが読み込まれたか確認
設定一覧で追加した項目をタップし、画面の案内に従って現在の設定として選択します。選択マークで有効化されるアプリもあれば、詳細画面で「使用」をタップするアプリもあります。次に「プロキシ」または「プロキシグループ」を開き、展開できるグループや出力先が表示されることを確認してください。画面が空のままなら、接続モードを変更する前に設定一覧へ戻り、対象の設定が選択されているか確認します。
インポートに失敗した場合は、まずエラーメッセージを確認してください。URLにアクセスできない、取得した内容が設定ファイルではない、設定の解析に失敗した、という問題はそれぞれ原因が異なります。サービスのページでURLをコピーし直し、アカウントとサブスクリプションが有効か確認しましょう。形式が未対応と表示された場合は、使用中のクライアントに対応したサブスクリプション形式を選び直してください。サービスのウェブサイトを開けても、サブスクリプションAPIが利用できるとは限りません。反対に、リクエストが一度失敗しただけでURL全体が無効だとも判断できません。
初回インポート後は、元の設定をそのまま使用してください。自動更新が必要な場合は、サブスクリプションの詳細画面で定期更新を有効にし、サービス提供元の推奨間隔を設定します。何度も手動で更新する必要はありません。更新後にプロキシグループの名前が変わることがあり、選択がリセットされていたらグループを再確認してください。サブスクリプション形式とコアの互換性については、プロトコルとコアの技術リファレンスをご覧ください。
ステップ2:ルールモードと出力先を選択
初回はルールモードを選ぶ
設定を有効にしたら、ホーム画面または設定にあるモード選択画面に戻ります。一般的な選択肢は「ルール」「グローバル」「ダイレクト」で、クライアントによってはRule、Global、Directと表示されます。初回はルールモードを選択してください。設定内のルールに基づいて、接続を直接通信にするか、プロキシグループに送るか、拒否するかをクライアントが判断します。サブスクリプションで設定された振り分けを維持でき、次の手順でアクセス履歴を確認しやすくなります。
グローバルモードでは通常、コアに渡された通信がグローバルポリシーに従って処理されます。ただし、すべてのアプリの通信がシステムによってクライアントに取り込まれるとは限りません。VPNやアプリの除外設定、接続設定によって異なります。ダイレクトモードでは通常、通信が宛先に直接送られます。ウェブページが開かないからといって3つのモードを何度も切り替えると、判定条件まで変わってしまいます。まずルールモードで基本動作を確認し、明確な目的がある場合にのみ一時的に切り替えてください。
ルールで参照されているプロキシグループを開く
「プロキシ」または「プロキシグループ」を開き、通常の通信に使うグループを探します。グループ名はProxyやプロキシ選択の場合もあれば、サービス提供元独自の名前の場合もあります。グループを展開し、利用可能なノードか、サブスクリプションで設定済みの自動選択グループを選びます。選択マークが変わったことを確認してください。画面によってはグループを展開しただけでは切り替わらず、出力先の項目をタップする必要があります。
プロキシグループにDIRECTやREJECTが表示されることもあります。前者は直接接続、後者は通信の拒否を意味し、どちらも利用可能なリモートノードではありません。グループの中に別のグループが入れ子になっている場合もあります。そのため、自動選択グループを選んでも、最終的な出力先の名前が自動選択になるとは限りません。初回は対象の通信に使うグループでDIRECTやREJECTを誤って選んでいないことと、利用可能な出力先があることを確認すれば十分です。
動画、通信、ダウンロードなど用途別に複数のグループがあっても、すべてを一度に変更する必要はありません。まずテストするサイトに対応するグループを特定し、ほかのグループはそのままにしておきます。接続履歴で実際に適用されたルールを確認してから、必要に応じてそのグループを変更してください。ルールの種類や評価順序は詳細設定に関する内容のため、初回接続で編集する必要はありません。詳しくは技術リファレンスをご覧ください。
ステップ3:VPNを許可して接続を開始
システムの権限を確認し、動作状態をチェック
モードとプロキシグループを選択したら、クライアントのホーム画面に戻ります。システムのVPN接続を使用中のほかのアプリを一時停止し、「開始」または「接続」をタップしてください。Androidでは初回接続時にVPN接続のリクエストが表示されるのが一般的です。iOSではVPN構成の追加を許可し、デバイス認証を求められる場合があります。リクエスト元がインストールしたクライアントであることを確認してから許可してください。許可しなくても設定自体はアプリに残ることがありますが、システム通信は想定どおりクライアントに送られません。
権限を許可したらホーム画面に戻り、状態が「接続済み」または「実行中」になるまで待ちます。システムのステータスバーや設定画面にVPNアイコンが表示されることもありますが、表示位置はOSのバージョンによって異なります。このアイコンはシステムトンネルの確立を示すもので、リモートノード、DNS、接続先サイトまで確認できたことを意味するわけではありません。クライアントが動作中であることを確認して次のアクセス試験に進み、アイコンを見ただけで終わりにしないでください。
スマホ版クライアントはシステムのVPNインターフェースを使って通信を取り込むことが多く、アプリ内にTUN関連の設定がある場合もあります。この2つの名称の扱いはクライアントによって異なるため、チュートリアルに合わせてすべてのスイッチをオンにする必要はありません。まずはクライアントの標準的な通信取り込み方式を使ってください。「LANを許可」はスマホ自体のインターネット接続に通常必要ありません。初回設定では変更せず、共有アクセスに関する設定を増やさないようにしましょう。
起動できない場合は最初のエラーを確認
接続をタップしてすぐに停止する場合は、ログまたは診断画面を開き、起動時に最初に表示されたエラーを確認してください。設定の解析、ポートの競合、VPNの権限、コアの起動失敗はそれぞれ別々に対処します。まず現在の設定が有効か確認し、システムのVPN画面でほかのアプリが接続中でないか確認してください。エラー情報を記録する前にアプリのデータを消去すると、サブスクリプションURLや選択項目、ローカル設定を再入力する必要が生じる場合があります。
Androidでアプリごとのプロキシ設定を使っている場合は、テストするブラウザーが除外されていないか確認します。選択したアプリだけをプロキシ経由にする設定と、選択したアプリ以外をプロキシ経由にする設定があり、リストの意味が逆になる場合があります。初回の確認では、対象範囲が明確な標準設定を使い、動作確認後にアプリを絞り込むのがおすすめです。システムの許可が済み、クライアントの動作が続いていれば、実際のアクセスを確認できます。
ステップ4:アクセスとルールによる振り分けを確認
実際のリクエストで出力経路を確認
接続したまま、普段から直接接続できるウェブサイトをブラウザーで開き、通常のインターネット接続が維持されていることを確認します。次に、現在の設定でプロキシ経由になる想定のサイトにアクセスし、新しいリクエストが発生するまで待ちます。クライアントの「接続」「セッション」「ログ」画面に戻り、アクセスしたばかりのドメインを探して、適用ルール、プロキシグループ、最終的な出力先を確認してください。表示される項目はアプリによって異なりますが、リクエストがクライアントに届き、想定した方法で処理されたことは確認しましょう。
ルール上、直接接続されるはずの通信にDIRECTと表示されても正常です。すべての接続にノード名を表示させるためにグローバルモードへ変更する必要はありません。プロキシ経由の想定なのにDIRECTと表示される場合は、適用されたルールとグループの選択を確認します。ウェブページが開いたことだけでは、振り分けが正しいとは限らず、接続履歴もあわせて確認する必要があります。反対に、特定のサイトだけ開けない場合は、そのサイト自体や出力先の問題も考えられるため、クライアント全体が動作していないとすぐに判断しないでください。
新しい履歴が見つからない場合は、ページを再読み込みし、ブラウザーがアプリごとのルールで除外されていないか確認します。既存の接続が再利用されたり、ブラウザーのキャッシュによって新しい通信が発生しなかったりする場合もあるため、別のページでも試してください。クライアントに履歴の一時停止やドメインフィルターがある場合は、それらの条件も確認します。確認が終わったら、詳細なデバッグログを常時保存する必要はありません。日常のトラブル対応時に有効にすれば十分です。
問題の発生箇所を特定する
直接接続とプロキシ経由のどちらもアクセスできない場合は、接続を一時停止し、スマホ本来のWi-Fiまたはモバイル通信が正常か確認してください。基本のネットワークが復旧したら、クライアントを再起動します。直接接続は正常でプロキシ経由だけ失敗する場合は、プロキシグループに戻って利用可能な出力先に変更し、同じページへ再度アクセスします。一度に変更する条件を1つに絞れば、問題がネットワーク、ノード、選択項目のどこにあるか判断しやすくなります。
ドメイン解決に関するエラーは、ログとあわせて確認してください。初めて失敗しただけでDNS設定全体を変更するのは避けましょう。サブスクリプションにDNSとルールの設定が含まれている場合があり、変更すると原因の特定が難しくなります。ログで名前解決の問題が繰り返し示される場合は、エラーの概要を記録し、DNSとネットワークスタックのリファレンスをご覧ください。設定が有効で、ルールと選択項目が正しく、システム接続が維持され、実際のリクエストが想定どおり処理されれば、初期設定は完了です。
ノードの遅延:テスト結果と実際の使用感を区別する
出力先を比較する場合は、プロキシまたはプロキシグループ画面で、クライアントの遅延テストや接続確認を実行します。グループ全体をテストできるアプリもあれば、ノードのメニューから個別に実行するアプリもあります。テストが完了したことを確認してから結果をもとに出力先を選びます。測定対象が分からなくならないよう、テスト中に複数のグループを素早く切り替えるのは避けてください。
表示される数値は、通常、指定されたテスト先へのリクエストにかかった時間です。ICMPの往復時間とは限らず、ダウンロード速度を示すものでもありません。テスト先やDNS、TLSハンドシェイク、測定時のスマホの通信環境によって結果は変わります。数値が小さいノードは選択の参考になりますが、最終的には実際に使うウェブサイトやアプリを開き、安定して読み込めるか確認してください。
タイムアウトや失敗が表示されたら、スマホの通信状態、サブスクリプションの有効性、テスト先にアクセスできるかを確認してから、別の出力先でも試します。一部の出力先だけが失敗するなら、クライアントを再インストールする必要はありません。すべてのテストが同時に失敗する場合は、接続状態とログを確認してください。自動選択グループは設定内のテスト機能に依存します。手動で一度テストしても、通常の手動選択グループが自動切り替えに変わるわけではありません。
バックグラウンド動作と自動起動:接続が安定してから設定
Android:バッテリー制限と起動権限を確認
前述のアクセス確認が終わったら、画面をロックしてしばらく待ち、ロック解除後にテストページをもう一度開きます。前面では正常でもロック後に頻繁に切断される場合は、システム設定のアプリ情報を開き、クライアントのバッテリー管理とバックグラウンド動作の権限を確認してください。メーカーによって「制限なし」「バックグラウンドでの実行を許可」「バッテリー最適化を無効」など項目名が異なります。お使いの端末にある設定項目から変更すればよく、同じ文言を探す必要はありません。
再起動後に接続を復元したい場合は、まずクライアント内で「起動時に接続」「端末起動時に起動」などの項目を探し、次にシステム側に自動起動の権限があるか確認します。アプリの自動起動とVPNの自動接続は別の機能です。再起動後にアプリが起動しても、現在の設定を読み込んで接続するとは限りません。設定後、都合のよいタイミングで端末を再起動し、設定の選択状態、VPNの状態、実際のページ表示を確認してください。アプリアイコンが表示されたかだけで判断しないようにしましょう。
一部のAndroidでは「VPNを常時接続」や「VPNを使用しない通信をブロックする」設定を利用できます。後者を有効にすると、クライアントが起動していない場合や設定が無効になった場合に、端末がインターネットに接続できなくなることがあります。初期設定で必須の項目ではありません。まず通常の接続とバックグラウンド動作を確認してから、端末の使い方に合わせて有効にするか判断してください。OSのアップデート後やクライアントの変更後も、これらの権限を確認しましょう。
iOS:クライアントの自動接続機能を確認
iOSのバックグラウンド動作と起動の仕組みはAndroidと異なります。Androidのようなバッテリー最適化の対象外設定や自動起動権限を探す必要はありません。クライアントにオンデマンド接続や自動接続機能がある場合は、条件の説明を読んでから有効にしてください。該当する項目がない場合は、アプリが提供する機能の範囲で利用します。画面ロック後やWi-Fiとモバイル通信の切り替え後にVPNの状態を確認し、実際のページを開いて接続が復帰したか確かめてください。
最後に、使用中のクライアント、サブスクリプション設定名、普段使うプロキシグループ、接続方法を簡単に記録しておきます。記録にサブスクリプションの認証情報全体を含めないでください。トラブルが起きたら、「基本ネットワーク → 現在の設定 → プロキシグループ → システム接続 → リクエスト履歴」の順に確認すると、アプリの再インストールやDNS変更、モード切り替えを一度に行うより原因を特定しやすくなります。プロトコルの選択、コアの違い、複雑なルールについてはプロトコルとコアの技術リファレンスをご覧ください。クライアントを変更する場合は、先にクライアント選びのガイドをご確認ください。