初期設定の順序:サブスクリプションを読み込んでから通信をプロキシに通す

初めて使うときは、「クライアントをインストール → 設定を読み込んで有効化 → ポリシーを選択 → 通信をプロキシに通す → 接続を確認」の順に進めます。まず接続できる状態にしてから、TUN、DNS、自動起動などを調整しましょう。順番に設定すれば、問題が起きたときに原因を特定しやすくなります。

Clashはプロキシコアや関連クライアントのエコシステムを指す一般的な呼び名で、すべてのプラットフォームで同じインストーラーが使われるわけではありません。Clash Metaは後にmihomoという名称になり、対応するGUIクライアントによって設定画面も異なります。サブスクリプションの互換性は、アプリ名だけでなく、実際に使われているコアと設定形式で決まります。

  1. OSとプロセッサを確認:Windowsはx64とARM64、macOSはIntelとApple Siliconで分かれます。Androidのインストーラーもarm64-v8aなど、アーキテクチャ別に用意されている場合があります。
  2. 対応するサブスクリプションを用意:サービス提供元からClashまたはmihomo用の設定URLを入手してください。ノード一覧やWebページのURL、他のクライアント専用リンクは、そのまま読み込めるとは限りません。
  3. 他のプロキシやVPNをいったん終了:複数のクライアントが同時にシステムプロキシ、仮想ネットワークアダプター、ルーティングを変更するのを防ぎます。
  4. 現在のネットワーク状態を記録:設定を始める前に、通常のWebサイトが開けることを確認します。手動でプロキシを設定しているPCでは、元の設定を控えておきましょう。

サブスクリプションの読み込みとポリシーグループ:設定を読み込んだだけでは有効にならない

クライアントの「サブスクリプション」「設定」またはProfilesページでURLからの読み込みを選び、URL全体を貼り付けてダウンロードします。メニューの日本語表記はクライアントごとに異なるため、特定のソフトのボタン名ではなく、機能に沿って説明します。

初回読み込み時に確認する4つのポイント

  • ダウンロードできたか:設定一覧に名前、更新日時、利用可能な項目が表示されていることを確認します。エラー表示のままでは読み込みが完了していません。
  • 現在の設定として有効か:読み込み後に「有効化」を選ぶ必要があるクライアントもあります。設定カードが追加されただけでは、コアがその設定に切り替わったとは限りません。
  • ポリシーグループに選択肢があるか:「プロキシ」またはProxiesページでメインのポリシーグループを開き、ノードを1つ手動で選択します。DIRECTやREJECTを誤って選ばないようにしてください。
  • モードがルールになっているか:初回はRule(ルール)モードがおすすめです。設定内のルールに従って、直接接続するかプロキシを使うかが決まります。Global(グローバル)モードは短時間の比較テストに使えますが、Direct(直接接続)モードではプロキシノードを経由しません。

読み込み時にYAMLの解析エラーが出たら、まずサブスクリプションURLが実際に設定ファイルを返しているか確認してください。期限切れのURLではログインページが返されることがあり、コピー時にパラメーターが欠けてもサーバーから不正な内容が返される場合があります。エラーが出ても、設定のインデントをむやみに削らないでください。YAMLはインデントで階層を表すため、変更すると別のエラーが発生することがあります。

対応していないプロキシタイプや設定項目があると表示された場合は、クライアントが使用するコアを確認し、サービス提供元に対応形式を問い合わせてください。読み込みを成功させるために、通信プロトコル、暗号化、TLSの設定を安易に削除するのは避けましょう。設定を読み込めることと、ノードに接続できることは別の問題です。

Windows・macOS:まずシステムプロキシを確認し、TUNは後から設定

デスクトップで初めて使うときは、クライアントの「システムプロキシ」を有効にしてブラウザーで確認します。この設定では通常、OSのHTTP/HTTPSプロキシをローカルの待ち受けポートに向けますが、すべてのアプリの通信がプロキシ経由になるわけではありません。システムプロキシを参照しないアプリは、そのまま直接インターネットに接続することがあります。

OS設定画面確認ポイント
Windows 11設定 → ネットワークとインターネット → プロキシ手動プロキシが現在のクライアントのローカルアドレスとポートを指しているか確認
macOSシステム設定 → ネットワーク → 現在のネットワークサービス → 詳細 → プロキシWebプロキシとセキュアWebプロキシの設定がクライアントと一致しているか確認
クライアントの設定システムプロキシ、ポート、実行ログ画面が開いているだけでなく、コアが起動し、ポートの待ち受けに成功しているか確認

ローカルアドレスとポートはセットで確認

一般的な混合ポートは7890ですが、クライアントによって異なるため、現在の画面または有効な設定を確認してください。たとえば、クライアントが127.0.0.1:7890で待ち受けているのに、システムプロキシが以前のソフトの127.0.0.1:7897を指していると、ブラウザーでプロキシ接続エラーが発生することがあります。混合ポートはHTTPとSOCKS5の両方に対応しますが、システム設定が自動で同期されるわけではありません。

macOSでは、ネットワーク設定の変更や補助サービスのインストール時に管理者認証を求められることがあります。Windowsでも、サービスのインストールやTUN仮想ネットワークアダプターの設定に管理者権限が必要な場合があります。要求元のアプリ名と入手元を確認してから許可してください。通常のシステムプロキシの動作確認で、クライアントを常に管理者として実行する必要はありません。

TUNはインストール後に必ず有効化する機能ではない

TUNは仮想ネットワークインターフェースを使って通信を制御するため、システムプロキシに従わないアプリにも対応できます。一方で、ルーティング、DNS、権限など、確認すべき要素も増えます。通常のブラウザーで接続できることを確認してから有効にし、設定は一度に1つずつ変更してください。有効化後にLAN機器、社内ネットワーク、別のVPNに接続できなくなった場合は、まずTUNを無効にして比較します。DNS設定をむやみに追加しないでください。

Android・iOS:VPNの許可とバックグラウンド制限を個別に確認

Android:VPN接続を許可してから、バックグラウンドでの安定性を確認

Androidクライアントは通常、OSのVPNインターフェースを使って通信を制御します。初回起動時にVPN接続の許可画面が表示されるので、確認して許可してください。ステータスバーにVPNアイコンが表示されることがありますが、これはVPNインターフェースが確立したことを示すだけで、サブスクリプションの有効性やプロキシノードへの接続を保証するものではありません。

  1. 設定を読み込んで有効化し、ポリシーグループでノードを選んでから接続を開始します。
  2. すでにVPNが接続中と表示された場合は、先に既存の接続を切断してください。一般的な個人利用では、同じユーザーがOSのVPNインターフェースを使うサービスを同時に複数有効化することはできません。
  3. 画面をロックして約5分後に戻り、Webページが開けるか確認します。これは簡単な再確認方法であり、バッテリー持続時間の実測ではありません。
  4. バックグラウンドで実際に接続が切れる場合に限り、「設定 → アプリ → 対象のクライアント → バッテリー」でバックグラウンド制限を確認してください。メーカーによっては、「自動起動」やバックグラウンドでのアプリ固定を別途設定できます。

Android 13以降では、通知の許可を別途求められる場合があります。通知の許可とVPNの許可は別の設定です。常時表示される通知は接続状態の確認に役立ちますが、通知を許可してもプロキシ接続は確立しません。最初からすべてのバックグラウンド維持設定を有効にせず、まず標準設定で安定して動作するか確認しましょう。

iOS:アプリが対応する形式とネットワーク拡張機能を確認

iOSのプロキシアプリがすべて同じClashクライアントだと考えないでください。対応するサブスクリプション形式、ルール構文、ポリシーグループの機能はアプリごとに異なります。読み込み前にアプリの説明を確認し、Clash設定を直接読み込めるか、サービス提供元から専用形式を入手する必要があるか確認してください。

初回起動時にVPN構成の追加を許可する必要があります。「設定 → 一般 → VPNとデバイス管理」で関連する構成を確認できますが、アプリ内の有効状態とOSのVPN接続状態の両方を確認してください。学校や企業の管理対象デバイスではVPNの追加が制限されることがあります。管理ポリシーに関するメッセージが表示された場合は、デバイス管理者に問い合わせてください。不明な提供元の構成プロファイルをインストールして制限を回避するのは避けましょう。

ポート競合と証明書の警告:エラーの種類に応じて対処

ポート競合:使用中のプロセスを調べ、不明なサービスを強制終了しない

ログにaddress already in useと表示されたり、ポートのバインドに失敗したりする場合は、通常、同じポートを別のプログラムがすでに使用しています。まず以前のクライアントや重複して起動したプロセスを終了し、それからポートを調べてください。以下のコマンドでは7890を例にしています。実際に確認する際は、現在の待ち受けポートに置き換えてください。

Windowsでは、コマンドプロンプトで次を実行します。

netstat -ano | findstr :7890

ローカルアドレスに対応するLISTENINGの行を確認します。最後の列がPIDです。タスクマネージャーの「詳細」タブでPIDからプログラムを特定してください。macOSではターミナルで次を実行します。

lsof -nP -iTCP:7890 -sTCP:LISTEN

使用中のプログラムを終了できない場合は、プロキシクライアントの混合ポートを7891など、未使用のポートに変更してからシステムプロキシを再設定します。プロキシを手動設定したブラウザー、ターミナル、その他のソフトでもポートを変更してください。設定ファイルだけを変更し、システムプロキシに古いアドレスを残さないようにしましょう。

アプリの署名、Webサイトの証明書、ノードのTLSエラーを区別する

  • アプリの開発元を確認できない:インストール元またはOSの署名チェックに関する問題です。プロジェクトの公式リリースページでOSの要件とインストーラーの入手元を確認してください。OSのセキュリティ機能全体を無効にしないでください。
  • ブラウザーにWebサイトの証明書が無効と表示される:まず、OSの日付とタイムゾーン、Webサイトのドメイン名、ログインが必要な公衆Wi-Fiに接続していないかを確認します。機密情報を扱うページでは、そのままアクセスを続けないでください。
  • ログにTLS証明書の検証失敗が表示される:ノード設定のサーバー名、証明書の有効期間、OSの時刻を確認し、サービス提供元に問い合わせてください。証明書検証のスキップを通常の対処法として使わないでください。

接続を確認:ノード、ルール、通信の制御範囲を分けて調べる

「遅延テストに数値が出た」だけでは、実際にアクセスできることの確認にはなりません。テスト先が応答したとしても、その時点の通信が成功しただけです。ルール、DNS、アカウント状態、接続元の制限などが原因で、目的のWebサイトが開けないこともあります。設定を一度に変更しすぎないよう、次の順に確認してください。

  1. コアのログを確認:設定の読み込み失敗、ポートの待ち受け失敗、繰り返しの再起動がないか確認します。
  2. 接続履歴を確認:プロキシが必要なWebサイトをブラウザーで開き、該当ドメインの接続が記録されるか確認します。履歴に何も出ない場合は、システムプロキシ、VPN、TUNがそのアプリの通信を制御しているか調べてください。
  3. 適用されたポリシーを確認:接続が想定したポリシーグループを経由しているか確認します。誤ってDIRECTに振り分けられている場合や、接続履歴に拒否と表示される場合は、該当するルールを確認してください。
  4. ノードを1つだけ変更して再テスト:設定とルールはそのままにして、ノードだけを切り替えます。接続が回復した場合は、クライアントを再インストールするのではなく、元のノードを調べましょう。
  5. 必要な場合だけ一時的にグローバルモードに切り替える:グローバルでは接続でき、ルールモードでは接続できない場合は、ルールとポリシーグループの選択を確認します。テスト後はルールモードに戻してください。グローバルモードにしても、システムプロキシが通信を制御する範囲は広がりません。

ブラウザーでは使えるのにターミナルでは使えない場合、通信の制御範囲が異なることがよくあります。多くのコマンドラインツールは、デスクトップOSのシステムプロキシを自動では参照しません。7890が現在のHTTPポートまたは混合ポートであることを確認したら、明示的にプロキシを指定して比較できます。

curl --proxy http://127.0.0.1:7890 --head https://example.com

Windowsではcurl.exeを使うと、PowerShell環境によっては同名のエイリアスによる影響を避けられます。このコマンドで確認できるのは、指定したリクエストがローカルプロキシを経由できるかどうかだけです。すべてのアプリの通信が制御されていることを証明するものではありません。接続ログとあわせて、Webサイトが返したHTTPステータスも確認してください。

設定後に行うこと:必要最小限の設定と終了時の確認

まず接続できることを確認してから、サブスクリプションの自動更新、自動起動、TUNを検討してください。サブスクリプションの更新で手動編集した内容が上書きされることがあります。変更を長期的に維持するには、クライアントが対応するオーバーライド機能やマージ機能を優先し、各クライアントの説明に沿って設定してください。

  • 必要な情報を記録:後から確認できるよう、クライアント名、バージョン、コアのバージョン、待ち受けポート、通信の制御方法を記録します。
  • LAN接続の設定を確認:この端末だけで使う場合は、「LANからの接続を許可」をオフのままにし、同じネットワーク内の他の端末にプロキシポートを公開しないようにします。
  • 通常の手順で一度終了:先にシステムプロキシをオフにしてからアプリを終了し、通常のネットワーク接続が戻ることを確認します。プロセスを強制終了すると、待ち受けが停止したローカルポートをシステムプロキシが指したままになることがあります。
  • 再起動後に再確認:設定が有効なままか、VPNの再接続が必要か、ポートが変わっていないかを確認します。タスクトレイのアイコンだけで判断しないでください。

問題が起きたら、「設定を読み込めるか」「コアを起動できるか」「通信が届いているか」「ポリシーが正しいか」「ノードに接続できるか」の5段階に分けて確認します。問い合わせる際は、OSとクライアントのバージョン、個人情報を伏せたエラー内容を共有してください。サブスクリプションのトークンやノードのパスワードなど、機密情報は削除します。設定手順は入門ガイドを、詳細な項目は応用設定を参照してください。