1. セットアップの順序:コアを起動してから通信をプロキシ経由にする

デスクトップ版は「インストーラーを選ぶ → クライアントを起動 → 設定を読み込む → ローカルポートを確認 → システムプロキシを有効化 → 接続をテスト」の順で設定します。まずブラウザーからシステムプロキシ経由で接続できることを確認し、TUNを使うかどうかはその後に判断しましょう。Androidは通常、システムのVPNインターフェースを使って通信を取り込むため、デスクトップ版のシステムプロキシ設定をそのまま適用できません。

Clashは設定・プロキシ関連のエコシステムで広く使われる名称です。クライアントの画面と、実際に接続を処理するコアは別のものです。mihomoはClash Metaから発展したコアですが、設定項目やサービスモード、権限への対応状況はクライアントごとに異なります。読み込みエラーが起きた場合は、「Clashを入れた」とだけ伝えるのではなく、クライアント名とバージョン、コアのバージョンを記録してください。

  1. 現在のネットワーク設定を記録する。既存のVPN、システムプロキシ、手動設定のDNSを控えておき、変更後に元へ戻せるようにします。
  2. プロキシクライアントは1つだけ起動する。以前使っていたクライアントを終了し、初回テストでは別のTUNやVPNを同時に有効にしないでください。
  3. 使用できる設定を用意する。クライアントのインストーラーに、利用可能なプロキシノードが含まれているとは限りません。サブスクリプションは別途用意してください。
  4. 変更は1項目ずつ行う。変更のたびにログと接続履歴を確認します。ポート、DNS、ルールを同時に変更すると、問題の原因を特定しにくくなります。

2. インストーラーの選び方:OS・チップ・コアの対応状況を確認

プラットフォーム最初に確認する場所選び方のポイント
macOSAppleメニュー → このMacについてAppleシリコンはarm64、Intelプロセッサはx64を選択します。ユニバーサル版はリリースノートを確認してください。
Windows設定 → システム → バージョン情報 → システムの種類デバイスのアーキテクチャに合わせてx64またはARM64を選び、クライアントの最低システム要件も確認してください。
Android設定 → デバイス情報。アーキテクチャは端末の仕様を確認してください。一般的な端末ではarm64-v8aを使用します。古い端末ではarmeabi-v7aが必要な場合があります。判断できない場合はユニバーサル版の説明を確認してください。

macOSでは、Appleシリコン搭載MacでRosettaを使ってIntelアプリを実行できる場合があります。ただし、初回インストールでは互換レイヤーを介さずに済むよう、まずネイティブのアーキテクチャに対応した版を選びましょう。WindowsのARM端末でも、ファイル名に「64」とあるかだけで判断せず、プロジェクトがネイティブ版を提供しているか確認してください。

クライアントのダウンロードページから対象プラットフォームを選び、プロジェクトのリリースノートでシステム要件を確認してください。旧版のClashクライアントと現行のmihomoクライアントでは、新しいプロトコルや設定項目への対応が異なる場合があります。「ファイルを読み込めた」だけで互換性を判断しないでください。インストール前にクライアントの違いを確認する場合は、クライアント選びのガイドをご覧ください。

3. macOS:アプリの許可、システムプロキシ、補助サービス

「アプリケーション」へ移動してから起動する

  1. ダウンロードしたディスクイメージを開き、アプリを「アプリケーション」フォルダにドラッグします。その後、「アプリケーション」フォルダから起動してください。インストーラーのディスクイメージから直接起動し続けるのは避けましょう。
  2. 開発元を検証できないという警告が表示された場合は、まずファイルの入手元とリリースノートを確認します。そのうえで「システム設定 → プライバシーとセキュリティ」に「このまま開く」が表示されているか確認してください。この項目が表示されるかどうかは、macOSのバージョンやブロックの理由によって異なります。
  3. 設定を読み込み、コアが起動したことを確認してから、クライアントの「システムプロキシ」を有効にします。
  4. 「システム設定 → ネットワーク → 現在のネットワーク接続 → 詳細 → プロキシ」で、HTTP、HTTPS、SOCKSの項目を確認します。アドレスは通常127.0.0.1で、ポート番号はクライアントの設定と一致している必要があります。

「アプリが破損しているため開けません」と表示された場合は、まずOSに対応したインストーラーを再入手し、プロジェクトの説明を確認してください。出所のわからないターミナルコマンドをそのまま実行したり、アプリを起動するためにシステム全体のセキュリティ機能を無効にしたりしないでください。組織で管理されているMacでは、デバイスのポリシーによってアプリの実行やネットワーク拡張が制限されていることがあります。管理者に相談してください。

TUNの許可と通常のシステムプロキシ設定は分けて考える

システムプロキシの設定に、通常TUNの作成と同等の権限は必要ありません。TUNを有効にする際は、クライアントによって補助サービスのインストール、管理者パスワードの入力、ネットワーク関連コンポーネントの許可が求められることがあります。具体的な仕組みはクライアントによって異なります。まず許可ダイアログに表示されたアプリ名を確認し、プロジェクトのドキュメントに従ってください。サービスのインストール後もコアのログを確認しましょう。パスワード入力画面が閉じただけで、TUNが通信を取り込んでいるとは限りません。

4. Windows・Android:プロキシ設定とVPNの許可

Windows:ループバックアドレスを確認し、ファイアウォール全体の制限を緩めない

インストールして設定を読み込んだら、まずクライアントのシステムプロキシを有効にします。次にWindows 11の「設定 → ネットワークとインターネット → プロキシ」で、手動プロキシが現在の待ち受けポートを参照しているか確認してください。Windows 10では通常、「設定 → ネットワークとインターネット → プロキシ」から確認できます。自動構成スクリプトを使うクライアントもあります。実際の通信の取り込み方法を確認し、無理に手動プロキシへ変更しないでください。

  • ループバックプロキシのアドレスには127.0.0.1を使います。0.0.0.0で待ち受ける設定は、すべてのIPv4インターフェースにバインドするという意味です。ブラウザーの接続先として指定しないでください。
  • ファイアウォールの許可を求められた場合は、用途に応じてネットワークの範囲を選択します。自分のPCだけで使う場合、LANにプロキシの接続口を公開する必要はありません。
  • TUNやサービスモードを使う場合は、クライアントの説明に従ってサービスをインストールするか、必要な権限に昇格してください。通常のシステムプロキシを使うために、常に管理者として実行する必要はありません。

Android:VPN接続を許可し、バックグラウンド動作を確認する

プロキシを初めて起動すると、通常はAndroidのシステムからVPN接続の許可を求められます。アプリの提供元を確認して許可すると、ステータスバーにVPNアイコンが表示されます。ただし、アイコンが示すのはVPNインターフェースが確立したことだけです。サブスクリプションのノードが使えること、ルールが正しいこと、目的のサービスへ接続できることまでは確認できません。

別のVPNや、ローカルVPNを使うファイアウォール・フィルタリングアプリが動作している場合は、停止してからテストしてください。同じユーザー環境では、通常、同時に利用できるVPNサービスは1つだけです。画面ロック後に接続が切れる場合は、「設定 → アプリ → 対象のクライアント → バッテリー」でバックグラウンド制限を確認します。設定画面の場所は端末によって異なります。必要に応じてバックグラウンド動作を許可し、アプリごとの振り分け設定で対象のブラウザーがプロキシ対象から外れていないかも確認してください。

5. 設定の読み込みとポート:コアの起動を確認する

クライアントの「設定」または「サブスクリプション」画面でリモート設定の追加を選び、プロバイダーから提供されたClash/mihomoのサブスクリプションURLを貼り付けてダウンロードします。ダウンロード後、その設定を選択して有効にしてください。設定名がリストに表示されるだけでは不十分です。現在使用中の設定になっていることを確認し、ログに設定の解析失敗、未対応プロトコル、ポートのバインド失敗がないかチェックしましょう。

サブスクリプションURLにはアクセス認証情報が含まれていることがあります。公開スクリーンショットや問い合わせ本文、コマンド履歴に載せないでください。ローカルのYAMLファイルを読み込む場合は、クライアントのファイル読み込み機能を使い、アプリのインストール先を直接編集しないでください。サブスクリプションの更新でリモート設定が上書きされる場合があります。ローカルの変更は、クライアントが対応するオーバーライドやマージ設定に記述してください。

基本的な共通設定の例

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

これは設定項目を説明するための抜粋であり、ノード、プロキシグループ、ルールが含まれていないため、完全なサブスクリプションとしては使えません。mixed-portは、1つのポートでHTTPとSOCKSのプロキシリクエストを受け付けます。allow-lan: falseはLANからのアクセスを制限します。mode: ruleは、ルールに基づいて通信先を選択する設定です。クライアントがこれらの項目を上書きする場合もあるため、最終的には実行時の設定と待ち受け状態を確認してください。

ポートが使用中の場合は、まずプロセスを確認する

ログにaddress already in useやバインド失敗が表示されたら、まずほかのプロキシツールを終了してください。macOSではターミナルから次の読み取り専用コマンドを実行できます。

lsof -nP -iTCP:7890 -sTCP:LISTEN

Windowsではコマンドプロンプトで待ち受け状態を確認し、出力されたPIDをタスクマネージャーで照合します。次の絞り込み結果には関連する別の接続が表示される場合もあるため、ローカルアドレスと待ち受け状態も確認してください。

netstat -ano | findstr ":7890"

ポートを使用しているアプリを確認したら、通常の方法で終了するか、新しいクライアントの混合ポートを空いている番号(例:7891)に変更します。変更後はシステムプロキシを再度有効にし、OSが新しいポートを参照するようにしてください。PIDだけを見て、正体の分からないシステムプロセスを終了しないでください。

6. システムプロキシとTUN:最初はどちらか一方で確認する

システムプロキシは、その設定に従うアプリにプロキシアドレスを伝えます。ブラウザーは比較的テストしやすい一方、一部のコマンドラインツールやゲーム、独自のネットワーク処理を使うソフトはシステムプロキシに従わない場合があります。TUNは仮想ネットワークインターフェースを使って、より多くのIP通信を取り込みます。ルーティング、DNS、権限にも関わるため、トラブルシューティングの範囲が広がります。

  • デスクトップ版の最初のテスト:TUNは無効のままシステムプロキシを有効にし、ブラウザーで接続先を決めて確認します。
  • 次の段階:システムプロキシに従わないアプリがある場合はTUNを有効にし、ルートの設定状況とDNSログを確認します。
  • Android:VPNが起動しているか、対象アプリがプロキシの対象になっているか、選択中のプロキシグループが正しいかを先に確認します。

システムプロキシとTUNは、必ずしも同時に使えないわけではありません。多くのクライアントは併用に対応しています。初期設定で主な通信取り込み方法を1つに絞るのは、問題の範囲を特定しやすくするためです。また、TUNはグローバルプロキシを意味しません。ルールモードでは、通信ごとにルールに従って直結、プロキシ、拒否が選択されます。

7. 接続の確認:通信の取り込み・ルール・ノードの問題を切り分ける

クライアントの「接続」画面を開き、接続先を明確にしたうえで再アクセスし、ドメイン名、適用されたルール、最終的なアウトバウンドを確認します。ページが開けるかどうかだけでは、ブラウザーのキャッシュやもともと直結できる通信と、プロキシ経由の接続を区別しにくいためです。ノードの遅延テストに成功しても、そのテストリクエストが成功したことを示すだけで、目的のサービスへの接続確認にはなりません。

症状まず確認する項目次に行うこと
接続一覧に対象のリクエストが表示されないシステムプロキシ、アプリごとのプロキシ設定、Androidのアプリ振り分けリクエストが実際に使用中のクライアントに届いているか確認します。
接続は表示されるがDIRECTになる現在のモードと適用されたルールそのドメインが直結対象か確認し、必要に応じてルールやポリシーを調整します。
プロキシ経由の接続がタイムアウトするプロキシグループの選択状況、ノードの状態、ネットワークへの到達性利用可能と分かっている別のノードに切り替え、エラーログを確認します。
ドメイン名の名前解決エラー有効なDNS設定と上流DNSへの到達性ログを保存し、複数のDNS設定を一度に変更しないでください。
クライアントを終了するとインターネットに接続できないシステムプロキシの設定残り、別のVPN、ルーティング状態使用できなくなったプロキシ設定を解除し、ネットワークが復旧するか確認します。

ブラウザーの設定とコアの問題を切り分けるには、ローカルHTTPプロキシを明示してテストできます。以下のコマンドでは、アドレスとポートを実際の設定に合わせてください。テスト用ドメインは例であり、結果が示すのはそのリクエストの成否だけです。

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

Windowsではcurl.exeを使うと、一部のPowerShell環境で同名のエイリアスが使われる問題を避けられます。プロキシを明示したリクエストが成功してブラウザーだけ失敗する場合は、ブラウザー拡張機能、個別のプロキシ設定、システムプロキシの参照先を確認してください。接続拒否のエラーが出る場合は、リモートノードを切り替える前にローカルポートで待ち受けているか確認しましょう。

8. 初回起動後の設定チェックリスト

  1. 現在の設定を記録する。クライアントとコアのバージョン、使用中の設定、混合ポート、通信の取り込み方法を控えておくと、アップデート後の比較に役立ちます。
  2. 設定の更新を確認する。サブスクリプションを手動で更新し、正常に読み込めることを確認してから、プロバイダーの推奨に沿って自動更新の間隔を設定します。
  3. 必要に応じて自動起動を有効にする。デスクトップ版では、アプリの自動起動と、起動後に通信を自動で取り込む設定を区別してください。Androidではシステムのバックグラウンド制限も考慮します。
  4. LANからのアクセスは無効のままにする。ほかの端末からこのPCのプロキシを使う必要がある場合に限り有効にし、認証、待ち受けアドレス、ファイアウォールの範囲も確認してください。
  5. 正常に終了できるかテストする。システムプロキシまたはVPNを無効にしてからアプリを終了し、ブラウザーで通常の直結通信に戻ることを確認します。
  6. 再現に必要な情報を残す。問い合わせ時には、プラットフォーム、バージョン、エラー発生時刻、個人情報を伏せたログを共有してください。サブスクリプションの認証情報、ノードのパスワード、個人のアクセス履歴は隠します。

初回インストールの完了条件は、設定が有効になっていること、コアがポートを待ち受けていること、対象アプリのリクエストが接続一覧に表示されること、ルールとアウトバウンドが想定どおりであること、終了後にネットワークが復旧することです。これらを確認してからカスタムルールやTUN、複雑なDNS設定を追加すると、問題を切り分けやすくなります。具体的な操作手順はインストール・設定ガイドを、権限やネットワークのトラブルはヘルプセンターをご覧ください。