Windows版Clashクライアント導入完全ガイド:インストールからシステムプロキシ設定、よくあるエラー対策まで

WindowsでのClashクライアントの導入、ファイアウォール設定、設定ファイルの読み込み、システムプロキシの有効化を順に解説。UWPループバック、ポート競合、サービスモードの失敗にも対応します。

インストール前に確認:Windowsのバージョン、クライアント形式、設定ファイルの入手先

Windowsで使われるClashクライアントは、通常、グラフィカルインターフェース、Clashまたはmihomoコア、設定管理機能、システムプロキシ制御機能で構成されています。画面ではサブスクリプションの読み込み、ノードの切り替え、ログの確認を行い、コアはローカルポートの待ち受け、ルール照合、DNS処理、接続の転送を担当します。インストールが完了しても、プログラムが起動できるだけです。実際に使うには、設定の読み込み、コアの起動、システムプロキシの有効化、接続確認まで完了させる必要があります。

サポート対象のWindows 10 22H2、Windows 11 23H2、またはWindows 11 24H2の利用をおすすめします。Windows 7、Windows 8.1、古いWindows 10では、新しいWebView2、ランタイム、ドライバーインターフェース、システムコンポーネントが不足する場合があります。インストーラーが起動しても、コアの起動、画面の表示、TUNの有効化に失敗する可能性があります。

インストーラーとポータブル版を区別する

  • EXEインストーラー:通常はセットアップウィザード、スタートメニューの項目、アンインストール情報が含まれ、長期利用に適しています。
  • MSIインストーラー:Windows Installerで管理しやすく、一括導入にもよく使われます。
  • ZIPアーカイブ:解凍後に直接実行できますが、更新時は手動でファイルを置き換える必要があります。設定フォルダーがプログラムと一緒に移動するかどうかは、クライアントの実装によって異なります。
  • x64とARM64:IntelやAMDのパソコンの大半はx64を選択します。SnapdragonなどのARMプロセッサを搭載したWindowsデバイスでは、ARM64を優先してください。

「設定」→「システム」→「システム情報」で「システムの種類」を確認できます。「x64ベースのプロセッサ」と表示される場合はx64、「ARMベースのプロセッサ」と表示される場合はARM64を選択します。Windows 11という名称だけでアーキテクチャを判断しないでください。

Clashクライアントをインストールし、Windowsのセキュリティ警告に対応する

現在のプロセッサアーキテクチャに合ったインストーラーをダウンロードしたら、まず旧バージョンのクライアントを終了します。タスクバーの通知領域に旧クライアントのアイコンが残っている場合は、メニューから「終了」を選び、タスクマネージャーで画面プロセスとコアプロセスが終了していることを確認してください。旧プロセスが7890、7891、9090などのポートを使い続けていると、新バージョンの起動直後にポート競合が発生します。

標準的なインストール手順

  1. EXEまたはMSIインストーラーをダブルクリックし、セットアップウィザードに表示されるバージョンとインストール先を確認します。
  2. 一般的な個人用デバイスでは既定のフォルダーをそのまま使えます。企業ポリシーで管理されているデバイスでは、管理者が指定したフォルダーにインストールしてください。
  3. インストール完了後、スタートメニューからクライアントを起動します。初回起動から管理者として実行する必要はありません。
  4. Windowsファイアウォールがネットワークアクセスを許可するか尋ねた場合、自宅または信頼できる職場ネットワークでは「プライベートネットワーク」にチェックを入れられます。パブリックネットワークで許可するかどうかは、実際の用途に応じて判断してください。
  5. 画面の読み込みが完了するまで待ち、ステータス画面に「Core failed」「コアの起動に失敗しました」や再起動を繰り返す表示がないことを確認します。

Clashは通常、ローカルのループバックアドレスでプロキシポートを待ち受けるだけで十分です。設定のallow-lan: falseは、LAN上のデバイスにプロキシを提供しないことを意味し、現在のパソコンだけで使う場合に適しています。スマートフォンや別のパソコンから接続する必要がある場合は、LANアクセスを手動で有効にし、ファイアウォールの受信範囲、認証、信頼できるネットワーク帯域も設定してください。すべてのネットワークインターフェースにポートを公開するだけでは不十分です。

初回起動後に確認したいフォルダー

クライアントによってフォルダー名は異なります。一般的なデータ保存先は%APPDATA%%LOCALAPPDATA%、またはユーザーフォルダー内の専用フォルダーです。Win+Rを押し、%APPDATA%%LOCALAPPDATA%をそれぞれ入力して確認できます。設定ファイル、ログ、コア、キャッシュは通常インストール先とは別に保存されるため、画面上のクライアントをアンインストールしてもユーザー設定が残る場合があります。

サブスクリプションを読み込み、Clash設定が読み込めるか確認する

クライアントの起動後、「設定」「Profiles」「サブスクリプション管理」などのページを開きます。プロジェクトによってメニュー名は少し異なりますが、一般的には「設定」→「新しいサブスクリプション」、または「Profiles」→「Download from URL」から進みます。サブスクリプションURLを入力欄に貼り付け、識別しやすい名前を付けてから、ダウンロードまたは読み込みを実行します。

サブスクリプション読み込み後の4項目チェック

  1. 更新時刻:直前に更新が完了した時刻が表示され、古いキャッシュの時刻のままになっていないことを確認します。
  2. 設定の状態:現在の設定が選択され、YAMLの解析エラーがないことを確認します。
  3. プロキシグループ:「プロキシ」「Proxy」などのポリシーグループに、選択可能なノードがあるか確認します。
  4. ログ:コアの起動時に、ポートのバインド、DNSの初期化、ルールの読み込みに関するエラーが出ていないか確認します。

ローカルのシステムプロキシに使う基本設定には、通常、プロキシポート、プロキシグループ、ルールを記述します。次の断片は構造だけを示したもので、完全なサブスクリプションの代わりにはなりません。

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

proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - Node-A
      - DIRECT

rules:
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

mixed-port: 7890は、HTTPとSOCKSのリクエストを同じ混合ポートで受け付けることを示します。古い設定の一部では、port: 7890socks-port: 7891を別々に使用します。実際のポートは現在の設定とクライアントのステータス画面を基準にし、よくある既定値だけで決めないでください。

YAMLの解析に失敗したときの対処

YAMLはインデントに敏感です。リスト項目の前に置くスペース数は統一し、Tab文字も解析エラーの原因になることがあります。サーバー側で生成されたサブスクリプションは、クライアント内でファイル全体を書き換えないでください。まずサブスクリプションを再更新し、ダウンロード中断やキャッシュの異常を切り分けます。手動設定では、コロンの後のスペース、リストのハイフン、引用符の対応、プロキシグループが参照するノード名の存在を重点的に確認します。

ノードとルールモードを選び、Windowsのシステムプロキシを有効にする

設定の読み込みが完了したら、「プロキシ」「Proxies」またはポリシーグループのページを開きます。まず主要なプロキシグループでノードを1つ選び、遅延テストを実行します。遅延の数値はテストURLへの接続時間であり、継続的なダウンロード速度を示すものではありません。85 msと表示されたノードは、テスト時点で速かったことを示すだけです。Timeoutは、クライアントに設定された制限時間内にテストが完了しなかったことを意味します。

Rule、Global、Directの違い

  • Rule:設定内のrulesを上から順に照合し、直接接続、プロキシ、拒否を決定します。日常利用に適したモードです。
  • Global:Clashに入る大半の接続を、指定したグローバルポリシーに渡します。ルールによる誤った振り分けを一時的に調べる場合に適しています。
  • Direct:Clashに入る接続をプロキシノード経由にせず、宛先へ直接アクセスします。比較テストによく使います。

モードを切り替えても、Windowsのプロキシスイッチは自動で変わりません。ノードとモードを選択したら、クライアントのホーム画面または設定画面で「システムプロキシ」「System Proxy」を有効にします。一般的なメニューは「設定」→「システムプロキシ」→「有効化」ですが、メイン画面の上部にスイッチがあるクライアントもあります。

有効化後、Windows 11の「設定」→「ネットワークとインターネット」→「プロキシ」で確認できます。クライアントは通常、手動プロキシのアドレス127.0.0.1と、HTTPまたはmixedポート(例:7890)を書き込みます。クライアントが値を管理している場合、Windowsの設定で別のポートに手動変更しないでください。クライアントの状態とシステム上の実際の値が一致しなくなる可能性があります。

システムプロキシが実際に有効か確認する

  1. クライアントのログを開き、ログレベルをinfoに設定します。
  2. ブラウザーを完全に終了して再起動し、古い接続が再利用されないようにします。
  3. 通常のHTTPSページにアクセスし、ログに該当ドメインと適用されたポリシーが表示されるか確認します。
  4. ルールモードとDirectモードをそれぞれテストし、接続元やページの到達性を比較します。
  5. システムプロキシを無効にしてもう一度テストし、結果がスイッチの状態に応じて変わることを確認します。

ブラウザーでアクセスできても、すべてのWindowsアプリが自動的にプロキシを使うとは限りません。WinINETまたはシステムプロキシ設定に従うプログラムは通常動作しますが、独自のネットワークスタックを実装したプログラム、常に直接接続するプログラム、環境変数だけを参照するプログラム、特殊なプロトコルを使うプログラムはシステムプロキシを回避する場合があります。その場合はアプリ自身のプロキシ設定を確認するか、影響範囲を理解したうえでTUNモードを使用してください。

ポート競合、コアの起動失敗、ローカル接続の拒否

ログにbind: Only one usage of each socket addressaddress already in use、「ポートが使用中」などの表示がある場合、別のプロセスが同じアドレスとポートを待ち受けています。よくある原因は、古いClashコア、別のプロキシソフト、開発・デバッグツール、画面を閉じた後もバックグラウンドで動作するサービスです。

7890ポートの使用プロセスをコマンドで確認する

netstat -ano | findstr :7890
tasklist /FI "PID eq プロセス番号"

1つ目のコマンドの末尾にPIDが表示されます。実際の数字を2つ目のコマンドに入力すると、該当プロセスを確認できます。PowerShellでは、次のコマンドでローカルの待ち受けが確立しているか確認することもできます。

Test-NetConnection 127.0.0.1 -Port 7890
Get-NetTCPConnection -LocalPort 7890 -ErrorAction SilentlyContinue

TcpTestSucceededFalseの場合、まず設定で指定されている実際のポートを確認します。ポートが本当に7890なら、コアが起動しているか、設定が正常に読み込まれているか、セキュリティソフトがプロセスを終了させていないかを確認してください。設定のポートとWindowsのプロキシポートを同時に変更して、すぐ何度もテストするのは避けましょう。まず7890や7892など空いているポートを1つ決め、クライアントにシステムプロキシを再設定させます。

コアの起動に失敗したときの確認順序

  1. ログの最初のエラーを確認し、後から繰り返される再試行メッセージだけを見ないでください。
  2. クライアント付属の基本設定に切り替え、問題がコアにあるのかサブスクリプションファイルにあるのかを切り分けます。
  3. コアファイルが移動されておらず、クライアント設定のコアパスが有効であることを確認します。
  4. 同種のプロキシプログラムを終了し、ポートやサービス名の競合を除外します。
  5. Windowsを再起動し、残留プロセスと解放されていないドライバーの状態を整理します。
  6. それでも失敗する場合は必要なログを出力し、サブスクリプションURL、ノードの認証情報、公開アドレスを削除してから共有します。

UWPループバック制限:ストアアプリがプロキシに接続できない

一部のMicrosoft StoreアプリやAppContainerで分離されたプログラムは、既定ではローカルのループバックアドレスにアクセスできません。そのため、ブラウザーは127.0.0.1:7890に正常接続できるのに、特定のストアアプリだけがオフラインと表示されることがあります。多くの場合、これはノードの障害ではなく、UWPのループバックアクセス制限が原因です。

まずクライアント付属のループバックツールを使う

一部のWindows版Clashクライアントには、「設定」→「UWPループバック」または「Settings」→「UWP Loopback」に管理画面があります。リストを開いたら、ローカルプロキシを通す必要があるアプリだけを選択し、保存してから対象アプリを完全に終了・再起動します。すべてのパッケージを一度に選択すると、システムコンポーネントやバックグラウンドアプリの通信まで変わる可能性があるため避けてください。

クライアントにGUIツールがない場合は、PowerShellでアプリのPackage Family Nameを確認できます。

Get-AppxPackage | Select-Object Name, PackageFamilyName

対象アプリのパッケージファミリー名を確認したら、管理者のコマンドプロンプトでループバックの例外を追加できます。

CheckNetIsolation LoopbackExempt -a -n=実際のPackageFamilyName
CheckNetIsolation LoopbackExempt -s

1つ目のコマンドは指定したアプリを追加し、2つ目のコマンドは現在の例外を一覧表示します。アプリをアンインストールして再インストールすると、パッケージIDが変わる可能性があるため、再確認が必要です。アプリ自体がWindowsのシステムプロキシを読み取らない場合、ループバック例外を設定しても接続できません。その場合はアプリ内でプロキシを設定するか、より広い範囲を制御できるネットワーク方式を使用してください。

サービスモードの失敗、起動時実行、権限の扱い

一部のクライアントには「サービスモード」「Service Mode」「システムサービス」があります。これはWindowsサービスとして特定のネットワーク機能を動かし、TUN、システムプロキシの常駐制御、コアの起動を前面画面に依存させないための機能です。サービスモードは通常のシステムプロキシに必須ではありません。ブラウザーやシステムプロキシに従うソフトだけを使うなら、クライアントを起動してシステムプロキシを有効にするだけで十分です。

サービスのインストールに失敗する主な原因

  • クライアントのフォルダーを移動したため、サービスの登録が古いパスを指している。
  • 旧バージョンのサービスがアンインストールされず、サービス名が競合している。
  • サービスのインストール時に、Windowsユーザーアカウント制御の確認を完了していない。
  • 企業のグループポリシーにより、一般ユーザーによるシステムサービスの作成や起動が制限されている。
  • セキュリティポリシーによって、ドライバー、サービスプログラム、コアファイルの起動がブロックされている。

まずクライアントの「設定」→「サービスモード」でアンインストールを実行し、クライアントを終了してWindowsを再起動します。クライアントを再び開いてサービスをインストールし、権限確認を完了してください。ボタンが失敗を表示し続ける場合は、services.mscを開いて古いサービスの有無と状態を確認できます。ただし、用途を確認できないサービス項目を不用意に削除しないでください。

起動時実行は1つの入口だけ有効にすることをおすすめします。クライアントの「設定」→「一般」→「起動時に実行」で起動タスクを作成している場合は、ショートカットをshell:startupに入れないでください。二重起動により、画面プロセスが2つ立ち上がり、ポート競合、システムプロキシの切り替えの繰り返し、トレイアイコンの重複が発生する可能性があります。

TUNモードの適用範囲とDNSの確認

システムプロキシは、Windowsのプロキシ設定を自ら読み取るプログラムにだけ影響します。ゲームランチャー、コマンドラインツール、一部のメッセージングアプリ、独自のネットワークスタックを使うアプリは、システムプロキシを経由しないことがあります。TUNモードは仮想ネットワークインターフェースを通じて、より広い範囲のIP通信を取り込みます。個別にプロキシを設定できないプログラムに適していますが、設定の複雑さ、必要な権限、障害時の影響範囲も大きくなります。

TUNを有効にする前に3つの基準テストを行う

  1. システムプロキシモードで、ブラウザーから対象ページに安定してアクセスできる。
  2. ルールモードのプロキシグループで、利用可能なノードが選択されている。
  3. ログにDNSタイムアウト、ポート競合、設定解析エラーが継続して表示されていない。

基準テストが完了したら、「設定」→「ネットワーク」→「TUNモード」に進み、関連するスイッチを有効にします。初回の有効化では、管理者権限や仮想ネットワークアダプター、サービスのインストールを求められることがあります。有効化後は、ローカルネットワーク、プリンター、社内VPN、仮想マシンのネットワーク、ゲームプラットフォームが正常に動作するか確認してください。複数の仮想ネットワークアダプター、VPN、通信フィルタードライバーの間でルーティング優先順位が競合することがあります。

ログで接続先ドメインに対してDNS timeoutno such host、異常な解決結果が繰り返し表示される場合は、まずシステムDNSとClash DNSを切り分けます。TUNとシステムプロキシを無効にしてnslookup example.comを実行し、基本ネットワークで名前解決できることを確認します。次にClashを起動し、コアのDNSモジュールが設定されたアドレスで待ち受けているか確認してください。mihomoの設定では、fake-ipまたはredir-hostの拡張モードが使われることがあります。キャッシュやアプリとの互換性が異なるため、既存のルールを理解しないまま安易に切り替えないでください。

ipconfig /flushdns
nslookup example.com
route print

ipconfig /flushdnsで消去できるのはWindows DNSクライアントのキャッシュだけで、すべてのブラウザーキャッシュやClashコアのキャッシュが消えるわけではありません。route printでは、TUN、企業VPN、物理ネットワークアダプターのルーティング優先順位を確認できます。切り分けでは一度に1つだけ変更し、ノード、ルールモード、DNS、最後にTUNとドライバーの順で確認してください。

インストール完了後のチェックリスト

WindowsでClashを完全に導入するには、プログラム、設定、ポート、システムプロキシ、ルールの5つすべてが正常である必要があります。トレイアイコンや遅延の数値が表示されるだけでは、最終的な判断材料になりません。

  • クライアントのバージョンとWindowsのアーキテクチャが一致し、画面とコアが安定して起動する。
  • サブスクリプションに最新の更新時刻が表示され、現在の設定を正常に読み込める。
  • 主要なプロキシグループでノードが選択され、遅延テストに明確な結果が出る。
  • ローカルのHTTP、SOCKS、mixedポートが待ち受け状態になっている。
  • Windowsのシステムプロキシアドレスと、クライアントが待ち受けるポートが一致している。
  • ページにアクセスした際、ログにドメイン、ルール、最終ポリシーが表示される。
  • システムプロキシを無効にすると、テスト結果が想定どおり変化する。
  • プロキシが必要なUWPアプリにループバック例外が設定されている。
  • 必要な場合に限り、サービスモードとTUNを有効にする。
  • サブスクリプションURL、設定ファイル、ログ内の認証情報を適切に保管する。

障害が発生した場合は、まず最初のログエラーを確認し、次に設定とポート、Windowsのシステムプロキシを確認します。その後にUWP、サービスモード、TUN、DNSを調べるのが効果的です。層ごとに確認すれば、複数のスイッチを同時に変更せずに済み、問題がクライアント画面、Clashコア、Windowsのネットワーク設定、遠隔ノードのどこで起きているかも特定しやすくなります。

Clashクライアントをダウンロード