クライアント、サブスクリプションURL、システム権限を準備
操作を始める前に、使用中のOSに対応したClashクライアントをインストールし、正常にアクセスできるサブスクリプションURLを用意します。サブスクリプションURLは通常サービス提供者が発行するもので、ノード、ポリシーグループ、通信ルールが含まれています。単一のノード名やクライアントのインストールパッケージURLではありません。コピーするときはURLの先頭から末尾までを選択し、余分な空白、改行、日本語の句読点が入らないようにします。
クライアントをまだインストールしていない場合は、まずクライアントダウンロードページを開き、Windows、macOS、Android、iOS、Linuxのタブから選びます。デスクトップクライアントでは、設定の入口が「Profiles」「設定」「サブスクリプション」などの名前になっています。モバイルクライアントでは、ホーム画面右上の追加ボタン、設定画面、サブスクリプション管理画面にある場合があります。名称は異なっても、必要な作業は3つです。サブスクリプションURLを入力し、設定をダウンロードし、取得した設定を現在の設定として有効化します。
システムプロキシやTUNを初めて有効にするとき、管理者権限、VPN構成の許可、ネットワーク拡張機能の許可を求められることがあります。システムのダイアログで今回の操作を許可してください。許可しない場合、クライアントが起動中と表示されても、他のアプリの通信が取り込まれない可能性があります。会社や学校の端末、管理対象のスマートフォンでは、これらの権限が制限されている場合があります。その場合は端末の管理ポリシーを確認してから設定を続けてください。
このガイドではグラフィカルクライアントを使用します。mihomoコア単体、コンテナ、systemdサービスを使う場合は、設定ファイルのパス、起動パラメータ、制御インターフェースが異なります。詳しくは上級設定ガイドを確認してください。準備ができたらクライアントを開いたまま、設定またはサブスクリプション画面に進みます。
Clashのサブスクリプションを追加して現在の設定にする
まずサブスクリプションURL全体をコピーし、クライアントの「設定」「Profiles」「サブスクリプション管理」画面を開きます。「URLから追加」「新しいサブスクリプション」「Download from URL」などの入口を探してください。クライアントによっては、最初にプラス記号を押すとURL入力欄が表示されます。また、名前の入力を求められる場合もあります。名前は端末上で識別するためだけのものなので、「日常用」などサービス名や用途を入力できます。サブスクリプションの内容には影響しません。
URL入力欄に貼り付けたら、「追加」「ダウンロード」「保存」のいずれかをクリックします。クライアントがリモート設定を取得し、YAMLの内容を解析します。通常は数秒後に設定一覧へ新しい項目が追加され、項目の横に更新日時、更新ボタン、有効化マークなどが表示されます。すぐに画面を離れず、形式エラー、ネットワークタイムアウト、ダウンロード失敗の表示がないことを確認してください。
設定が表示されたら、設定名、ラジオボタン、または「アクティブにする」ボタンをクリックして現在の設定に切り替えます。ダウンロードだけを行って有効化していない状態は、初期設定で最もよくある見落としです。サブスクリプションがクライアントに保存されていても、コアはデフォルト設定や前回使用した設定を読み続けます。有効化に成功すると、通常はプロキシ画面に「ノード選択」「自動選択」「フォールバック」などのポリシーグループが表示されます。プロキシ画面が空のままなら、設定一覧に戻り、現在の項目が選択済みになっているか確認してください。
続けて手動更新を1回実行します。設定項目の横にある更新ボタン、または「サブスクリプションを更新」を探し、更新が完了するまで待ちます。これによりURLがまだ有効であることを確認でき、今後のノード更新の場所も把握できます。更新中はボタンを何度もクリックしないでください。連続リクエストによって画面が固まったように見えたり、直前に表示された状態メッセージが上書きされたりすることがあります。
この段階で確認できる状態
- 設定一覧に追加したサブスクリプションが表示され、現在の設定として選択されている。
- プロキシまたはポリシー画面が空ではなく、少なくとも1つのポリシーグループと選択肢が表示されている。
- 手動更新が完了し、ダウンロード中や解析失敗の表示が残っていない。
サブスクリプションのダウンロードに失敗した場合は、まずURLをブラウザのアドレスバーに貼り付けて応答が返るか確認し、チャットアプリによってURLが途中で切られていないか確認します。ダウンロードはできてもYAML形式エラーになる場合、通常はクライアントで何度も再試行するのではなく、サブスクリプション提供者による内容の修正が必要です。エラーごとの対処はよくある質問のインストール・設定とトラブルシューティングで確認できます。設定が有効になったら、プロキシモードの設定に進みます。
プロキシモードを選び、ポリシーグループとノードを選択
クライアントの「モード」「Mode」「実行モード」設定を開きます。Clashの基本モードには、ルールモード、グローバルモード、ダイレクトモードがあります。初回はルールモードがおすすめです。設定内のルールに従って各リクエストを判定し、直接接続するか、拒否するか、ポリシーグループに渡すかをクライアントが決めます。ローカルサービスへの直接接続を維持しながら、プロキシが必要な対象だけをルールに従ってプロキシ経由にできます。
グローバルモードでは、取り込み可能な通信の大部分をグローバルポリシーで処理します。ルールのマッチングに問題があるかを一時的に切り分ける用途には適していますが、設定構造を理解しないまま常用するのはおすすめしません。ダイレクトモードでは通信が対象へ直接アクセスするため、プロキシを一時停止したり比較テストを行ったりするときに使います。モードの場所はクライアントによって異なり、ホーム画面のドロップダウン、トレイメニュー、設定画面などにあります。選択後、現在のモード名が変わることを確認してください。
モードを決めたら、「プロキシ」「Proxies」「ポリシーグループ」画面を開きます。ここに表示されるのは単純なノード一覧ではなく、設定作成者が構成したポリシーグループです。「ノード選択」「Proxy」「手動選択」などのグループには、複数のノード、自動速度テストグループ、フォールバックグループなどが含まれている場合があります。まず主要なポリシーグループを開き、明らかに利用可能なノードを選択します。設定に「自動選択」やurl-testグループがある場合は、自動項目を使い、グループ内の候補からクライアントに選ばせることもできます。
選択後、ポリシーグループ画面を確認します。現在のノードには通常、チェック、ハイライト、状態テキストなどが表示されます。クライアントによっては遅延テスト機能があり、候補ノードへの到達性を確認できます。遅延値から分かるのは、その時点でテスト対象へ接続できるかどうかと、おおよその往復時間だけです。すべてのサイトでの実速度を単独で示すものではありません。初回接続ではノードがタイムアウトしていないことだけ確認すれば十分で、最低値を何度も追い求める必要はありません。
ストリーミング、メッセージング、ダウンロード、漏れた通信など、用途別のグループが複数ある場合は、まずサブスクリプションのデフォルト選択を維持し、主要な手動選択グループだけを調整してください。一度に多くのグループを変更すると、後の確認でどの設定が反映されたのか分かりにくくなります。ポリシーグループの種類、ルールの評価順、url-test、fallback、load-balanceの違いは上級設定にあたるため、今回の接続を完了してからポリシーグループ設定の章を読んでください。
これで設定が読み込まれ、実行モードとノードも決まりました。次はコアを起動し、システムの通信をクライアントへ取り込みます。
クライアントを起動してシステムプロキシまたはTUNを有効化
クライアントのホーム画面に戻り、まずコアが実行中であることを確認します。クライアントによっては「起動」「Start」「実行」スイッチを使う場合も、アプリを開くと自動的にコアが起動する場合もあります。正常に動作すると、ホーム画面に接続済み、実行中、現在のポートなどが表示されます。状態が実行中からすぐ停止に戻る場合は、まずログを開いて起動エラーを確認してください。設定を解析できない、ポートを他のアプリが使用している、システム権限が不足しているなどがよくある原因です。
コアが動作したら、デスクトップではまず「システムプロキシ」「Set as System Proxy」などのスイッチを有効にします。この設定によりOSへプロキシアドレスが登録され、ブラウザやシステムプロキシを参照するアプリで通常すぐに反映されます。macOSで初めてネットワークプロキシを変更するときは、システムパスワードの入力を求められることがあります。Windowsでは、すでに開いているアプリに反映されるまで少し時間がかかる場合があります。有効化後は、テストに使うブラウザのウィンドウを閉じて開き直し、古い接続が再利用されないようにします。
AndroidとiOSのクライアントは、通常システムのVPNインターフェースで通信を取り込みます。接続ボタンを押すとVPN構成の確認が表示されるので、許可してください。許可後、ステータスバーにVPNマークが表示されます。このマークはシステムが通信をクライアントへ渡していることを示すもので、すべての宛先が必ずプロキシノードを経由することを意味しません。最終的な直接接続またはプロキシ接続は、Clashのルールとポリシーグループで決まります。
デスクトップのターミナル、ゲーム、仮想マシン、システムプロキシを参照しないアプリも取り込みたい場合は、TUNモードを検討します。TUNは仮想ネットワークインターフェースを作成し、より低いレイヤーで通信を処理するため、通常はシステムプロキシより広い範囲をカバーします。一方で追加の権限が必要で、他のVPN、仮想NIC、セキュリティソフトの影響も受けやすくなります。初回はシステムプロキシでブラウザの確認を行い、対象アプリがシステムプロキシを参照しないと明確に分かった場合にだけTUNへ切り替えてください。
接続時はこの順番で確認
- 現在の設定が先ほど追加したサブスクリプションのままであることを確認する。
- 主要なポリシーグループでノードまたは自動ポリシーが選択されていることを確認する。
- クライアントのコアが実行中と表示されていることを確認する。
- デスクトップではシステムプロキシを有効にし、モバイルではVPN構成を許可する。
- 他のプロキシまたはVPNクライアントを同時に起動しない。
システムプロキシとTUNを、初回テストで同時に有効にする必要は通常ありません。まずシンプルなシステムプロキシを使うと、権限、ルーティング、DNSに関する変数を減らせます。基本経路が正常だと確認してから、対象アプリの範囲に応じてTUNが必要か判断してください。TUNを使う場合は、スイッチを有効にしてシステムの指示に従い管理者権限またはネットワーク拡張の許可を与え、状態が安定するまで待ちます。起動中に何度も切り替えないでください。
この時点でクライアントは通信を処理できる状態になっているはずですが、「スイッチがオンになっている」だけでは最終確認になりません。次は実際のリクエスト、接続履歴、ログを組み合わせ、ルールが実際に機能していることを確認します。
テストリクエストを送信してプロキシの動作を確認
新しいブラウザウィンドウを開き、通常はプロキシポリシーで処理する対象サイトへアクセスします。ページが開くだけでは十分な判断材料になりません。ブラウザのキャッシュ、既存の接続、対象サイト自体の直接接続可否が影響するためです。より確実な方法は、Clashクライアントの「接続」「Connections」「ログ」画面を同時に開き、テストサイトを更新して該当ドメインが表示されるか確認することです。
接続履歴から直前に送信したリクエストを見つけ、適用されたルール、ポリシーグループ、最終的な経路を確認します。ドメインが想定したポリシーグループに入り、そのグループで先ほど選んだノードが使われていれば、ルール判定からノード接続までの流れが確立しています。履歴にDIRECTと表示される場合、現在のルールでは直接接続と判定されています。必ずしも故障とは限らないため、対象サイトとサブスクリプションのルールを合わせて判断してください。拒否や接続タイムアウトと表示される場合は、ログにある対象アドレスとエラーの種類を確認します。
続いて2種類の対象をそれぞれテストします。通常は直接接続するローカルサービスと、プロキシ経由が想定される外部サービスです。ルールモードでは、両方を正常に利用できても、接続履歴での処理方法は異なります。この比較は出口IPだけを見るより有効です。通信がすべて誤って同じ経路へ送られていないか確認できるためです。
ブラウザにはアクセスできるのに、ターミナル、ゲーム、その他のアプリに通信記録がない場合、そのアプリがシステムプロキシを参照していない可能性があります。ターミナルツールでは個別にプロキシ環境変数を設定する必要があり、独自のネットワークスタックを使うアプリではTUNが必要な場合もあります。すぐにサブスクリプションを削除したり、クライアントを再インストールしたりせず、「サブスクリプション設定」「クライアントコア」「システム通信の取り込み」「個別アプリの設定」のどの層に問題があるかを切り分けてください。
すべてのアプリでアクセスできない場合は、逆の順番で確認します。テストページを閉じ、クライアントのコアがまだ動作しているか確認します。システムプロキシまたはVPNマークが表示されているか確認し、現在のモードがダイレクトになっていないことを確認します。主要なポリシーグループで別の到達可能なノードに変更し、最後にサブスクリプションを手動更新します。一度に変更するのは1項目だけにし、変更後に毎回リクエストを再送信してください。そうすれば接続履歴から変化を確認できます。
ログに表示されるdial tcp timeout、connection refused、dns resolve failedは、それぞれ異なる段階の問題を示します。同じ方法で対処しないでください。ノードを変更しても失敗する場合や、サブスクリプション更新後もノードが変わらない場合は、よくある質問のトラブルシューティングで症状に応じた確認を続けます。DNS、Fake-IP、TUNルーティング、ドメイン嗅探を分析する必要がある場合は、上級ドキュメントを参照してください。
安定した設定を残して上級機能を学ぶ
基本接続が正常だと確認できたら、現在のモード、主要なポリシーグループ、通信の取り込み方法をまず維持し、高度なスイッチを一度にすべて有効にしないことをおすすめします。日常利用では定期的にサブスクリプションを更新し、ノードに接続できないときだけ主要なポリシーグループを切り替え、クライアントログに継続的なエラーがないか確認します。サブスクリプションを更新する前にローカル設定へ加えた上書きも記録しておくと、リモート更新後に設定が失われたと誤解せずに済みます。
ターミナル、仮想マシン、ゲームの通信を安定してクライアントへ取り込みたい場合は、TUNとシステムプロキシの違いを学びます。ドメイン解決に問題がある場合は、DNS、Fake-IP、フォールバック解決を確認します。サイトごとに異なるポリシーを適用したい場合は、ルールの順序、ルールセット、ポリシーグループの種類を理解する必要があります。これらは関連していますが、初回利用時にすべて変更する必要はありません。
上級設定ガイドでは、ポリシーグループ、ルールセット、DNS、TUN、ドメイン嗅探、ローカル上書き、外部コントロールパネルについて章ごとに整理しています。基本接続を完了した後に読むのに適しています。サブスクリプションの更新失敗、システムプロキシが機能しない、ノードが継続的にタイムアウトするといった明確な症状だけを解決したい場合は、よくある質問から確認する方が早いでしょう。