使い方に合わせて選び、カーネルのバージョンを確認
WindowsでClashクライアントを選ぶときは、まず役割を2つに分けて考えましょう。クライアントは画面表示、サブスクリプション管理、システムプロキシ、バックグラウンドサービスを担い、mihomoカーネルは通信プロトコル、ルール判定、DNS、TUN経由の通信処理を担います。画面側が更新されても、カーネルが同時に更新されるとは限りません。また、どちらもmihomoを使っていても、生成される実行時設定が完全に同じとは限りません。
この記事では、Clash Plus、Clash Verge Rev、FlClashを比較します。Clash Verge RevはTauri、FlClashはFlutterを採用し、どちらもmihomoをGUIで管理できます。Clash Plusのカーネル、サービスの実装、設定のオーバーライド機能は、ダウンロードページにある各リリースの説明と実際の動作で確認してください。名称だけで判断することはできません。未確認の機能を対応済みとして扱ったり、バージョンを問わず通用する性能ランキングを示したりはしません。
- ブラウザーのプロキシだけ使いたい:サブスクリプションの読み込み、プロキシグループの切り替え、システムプロキシのオン・オフ、終了後に設定が元に戻るかを確認しましょう。
- より多くのアプリの通信を通したい:TUNの権限、DNS、ルーティング、会社のVPNとの併用を重点的に確認しましょう。
- ルールを頻繁に編集する:永続的なオーバーライド、設定のプレビュー、エラー箇所の特定方法を確認し、サブスクリプション更新でローカルの変更が消えないようにしましょう。
- 旧クライアントから移行する:まず同じサブスクリプションで動作を確かめ、ルールを一つずつ移行してください。設定フォルダー全体をそのままコピーするのは避けましょう。
3つのクライアントの違いと確認ポイント
まずは次の表で候補を絞り込みましょう。「要確認」はインストール前後に確認すべき項目であり、機能がないという意味ではありません。メニュー名はバージョンによって変わることがあります。具体的な設定場所は、使用中の画面と該当バージョンのドキュメントで確認してください。
| 比較項目 | Clash Plus | Clash Verge Rev | FlClash |
|---|---|---|---|
| カーネルの確認 | リリースノートと起動ログでカーネル名・バージョンを確認 | mihomoを使用。実際にインストールしたパッケージのカーネルバージョンは別途記録 | mihomoを使用。実際にインストールしたパッケージのカーネルバージョンは別途記録 |
| 画面と実行環境 | 使用するリリースのシステム要件とインストール形式を確認 | Tauri製のデスクトップ画面。WindowsではWebView2の要件に注意 | Flutter製の画面。WebView2への依存はなし |
| サブスクリプション管理 | 読み込み、更新、ローカルルールの保持方法を確認 | サブスクリプション設定を管理でき、マージやスクリプトなどの設定処理にも対応 | 設定サブスクリプションを管理可能。オーバーライドの範囲と操作方法はバージョンごとに確認 |
| TUNの利用 | リリースにTUNの設定項目があるか、必要な権限は何かを確認 | TUNとサービスモードを管理可能。サービスの状態を確認 | TUNの設定項目あり。使用中のバージョンで昇格権限とバックグラウンド動作を確認 |
| おすすめの利用シーン | ダウンロードページの推奨候補から選び、基本動作を確認してから決定 | Windowsでの設定管理、マージ、スクリプト処理を重視するユーザー | Flutter製クライアントに慣れており、似た操作感を使い続けたいユーザー |
Clash Plus:実際のリリースで動作を確認
Clash Plusを選ぶ場合は、まずクライアントのダウンロードページで対応プラットフォームとリリース情報を確認し、インストール後にバージョンを記録してください。最低限、「サブスクリプションを読み込める」「ルールモードを使える」「システムプロキシを元に戻せる」の3点をテストしましょう。TUN、ルールセット、スクリプトによるオーバーライドが必要なら、それぞれの機能も個別に確認してください。ほかのClashクライアントの説明を、そのままClash Plusに当てはめないでください。
Clash Verge Rev:設定処理とWindowsサービスを確認
設定を細かく調整したい場合、Clash Verge Revは候補の一つです。サブスクリプションの内容が、マージ、スクリプト、画面上の設定を経て、最終的にどのような設定としてカーネルに渡るかを確認しましょう。TUNで権限の問題が起きた場合は、「画面を開ける」ことと「バックグラウンドサービスがインストールされ、動作している」ことを切り分けてください。画面が真っ白になる、表示されないといった問題は別の原因が考えられます。DNSを変更する前に、WebView2などの実行環境を確認しましょう。
FlClash:操作手順と設定の移行しやすさを確認
FlClashのFlutter製画面は、Clash Verge Revのデスクトップ実装とは異なります。ほかのプラットフォームでの操作に慣れている場合は、設定の選択、ノードの切り替え、ログの確認が使いやすいかをまず試してください。ただし、画面の操作感が似ていても、設定フォルダー、プラットフォームごとの権限、ローカルのオーバーライドをそのまま相互にコピーできるとは限りません。WindowsではTUN、スタートアップ、終了後のシステムプロキシの状態を個別に確認しましょう。
カーネルとプロトコル:実行情報から互換性を判断
「同じサブスクリプションなのに、一方では正常で、もう一方ではエラーになる」場合は、両方のクライアントのバージョン、実際に使われているカーネルのバージョン、エラー行を記録しましょう。インストーラーの公開日だけを比べても判断できません。新しいプロトコルパラメーター、ルールの動作、DNS項目は、特定のmihomoバージョンを必要とする場合があります。古いカーネルでは新しい設定を解析できないことがあります。
- クライアントの「バージョン情報」「カーネル情報」または起動ログを開き、完全なバージョン文字列を記録してください。「最新版」とだけ記録するのは避けましょう。
- サブスクリプションの応答が、Clash/mihomoで使えるYAMLであることを確認してください。Webページ、ログイン画面、別クライアント専用の形式ではないかも確認しましょう。
- エラーが設定の解析中に発生したのか、ノードへの接続中に発生したのかを確認します。前者は項目名やデータ型を、後者は回線、認証、プロトコルパラメーターを調べましょう。
- 最終的な実行設定を開き、サブスクリプションのノード、プロキシグループ、
rule-providers、rulesが、クライアントのオーバーライドによって意図せず置き換わっていないか確認しましょう。
たとえば、mixed-portはHTTPとSOCKSで共用する待ち受けポートです。external-controllerはカーネルの制御用インターフェースであり、ブラウザーのプロキシ用ポートではありません。ブラウザーに制御用ポートを設定しても、クライアントが起動中と表示されるだけで、通常のプロキシ通信はできません。項目の説明はルール構文ガイド、DNSの問題はDNS設定ガイドを参照してください。
システムプロキシとTUN:2段階で動作を確認
システムプロキシは、Windowsのプロキシ設定に従うアプリで使います。TUNは仮想ネットワークアダプターとルーティングで通信を処理するため、通常はより多くの通信を対象にできますが、すべての通信が必ずプロキシノードを経由するわけではありません。通信の行き先はルーティング、除外設定、ルール、DNSの処理方法によって異なります。ゲーム、会社のVPN、LAN機器へのアクセスは、スイッチの有無だけで判断せず、実際にテストしましょう。
第1段階:システムプロキシだけを確認
- 旧クライアントのシステムプロキシとTUNをオフにし、旧クライアントを完全に終了してください。候補のクライアントは一度に1つだけ起動します。
- サブスクリプションを読み込み、ノードを1つ選んでルールモードにします。まずTUNをオフにしたまま、システムプロキシをオンにしてください。
- Windows 11の「設定」→「ネットワークとインターネット」→「プロキシ」を開き、手動プロキシのアドレスとポートが現在のクライアントの設定と一致しているか確認します。
- テスト用のWebサイトにアクセスしながら、クライアントの接続ログも確認してください。ページが開けるだけで判断せず、通信が想定したルールに一致したことを確かめます。
- クライアントを終了し、Windowsのプロキシ設定が元に戻ったか確認します。残ったプロキシ設定によって通常の通信が妨げられていないことも確かめましょう。
第2段階:TUNとネットワークの復旧を確認
通常のプロキシ動作を確認した後、クライアントの案内に従ってサービスをインストールするか必要な権限を付与し、TUNを有効にします。仮想ネットワークアダプター、デフォルトルートの変化、ログに記録されたDNSエラーを確認してください。ブラウザー、システムプロキシに従わないアプリ、LAN内のアドレス、スリープ復帰後の接続を順にテストします。会社の端末では管理者のポリシーに従い、権限の昇格を繰り返したり、セキュリティソフトを無効にしたりして制限を回避しないでください。
ドメイン名では接続できず、IPアドレスなら接続できる場合は、まずDNSの経路を確認します。すべての接続に失敗する場合は、サービス、ルーティング、ポートを確認しましょう。fake-ipを有効にするだけでは、DNS漏えいを完全に防げません。アプリ独自の暗号化DNS、ブラウザーの設定、実際のネットワーク出口も確認してください。
サブスクリプションとオーバーライド:更新後の動作を重点確認
一度読み込めたとしても、確認できたのは現在の内容が使えたことだけです。長期運用では、更新後もローカルルールが残るか、プロキシグループの選択が意図どおりか、オーバーライドの失敗箇所を特定できるかが重要です。Clash Verge Revのマージとスクリプト処理、FlClashの現行バージョンでのオーバーライド設定、Clash Plusの該当リリースにおける設定処理は、それぞれのドキュメントに従って設定してください。
- リモートサブスクリプション:配信元のURLと更新間隔を控え、更新日時やエラーを確認しましょう。サブスクリプションURLに認証情報が含まれる場合、公開スクリーンショットやオンライン変換サイトに載せないでください。
- ローカルルール:クライアントが対応する永続的なオーバーライド機能を使いましょう。次回の更新で置き換えられるサブスクリプションのキャッシュを直接編集しないでください。
- ルールの順序:優先して判定したいルールは、最終的なルールより前に配置します。編集画面上の位置だけで判断せず、最終設定を確認してください。
- スクリプトの移行:旧クライアントのParsersと新しいクライアントのスクリプトAPIは異なる場合があります。関数の入口、渡されるオブジェクト、実行タイミングを確認してください。
次のYAMLはルールの順序を示す例であり、サブスクリプション全体を置き換えられる設定ではありません。LAN内のドメインとプライベートアドレスを先に直接接続し、最後に「プロキシ選択」というプロキシグループへ振り分けます。このグループはあらかじめ作成しておく必要があります。配列へのルールの挿入方法はクライアントによって異なるため、特に既存のMATCHが先に判定を終了させないよう注意してください。
rules:
- DOMAIN-SUFFIX,lan,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,プロキシ選択
設定後、サブスクリプションを手動で一度更新し、最終的なルール、プロキシグループ、ログを確認してください。ルールが消える場合は、永続化の方法を見直しましょう。「更新のたびに貼り直す」運用は避けてください。初回の読み込み手順はサブスクリプション設定ガイドを参照してください。
リソース使用量と更新状況:条件をそろえて比較
TauriやFlutterを採用しているというだけで、特定のクライアントのメモリ使用量が少ないとは判断できません。GUI、カーネル、バックグラウンドサービス、WebView2の子プロセスでは集計方法が異なります。ルールセットの規模、接続数、ログレベルによっても結果は変わります。信頼できる比較には、テスト条件をそろえて個別に記録することが大切です。
同じPCで比較する手順
- 3つの候補で同じサブスクリプション、同じノード、同じプロキシモードを使います。余計な通信が発生しないよう、自動ノード速度測定はオフにしてください。
- 起動後5分間は操作せず、タスクマネージャーでクライアント、カーネル、関連プロセスのメモリ使用量を記録します。画面のプロセスだけを記録しないようにしてください。
- 同じブラウザーのページとファイル転送を使って10分間動かし、CPU使用率、ピークメモリ、切断回数、エラーログを記録します。
- 終了、再起動、スリープからの復帰をそれぞれ試し、プロキシとネットワークが正常に戻るかを記録します。テスト時間は推奨条件であり、性能測定値ではありません。
ポートの競合が疑われる場合は、PowerShellで確認できます。ここでの7890は例です。実際にクライアントが待ち受けているポートに置き換えてください。検索結果が表示されない場合、該当するTCPの待ち受けがないことを示しますが、UDPや別のポートも使われていないという意味ではありません。
Get-NetTCPConnection -State Listen -LocalPort 7890 -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, OwningProcess
更新状況はリリース回数だけで判断しないでください。直近90日間の正式リリース、カーネルの更新内容、既知の問題、以前のバージョンに戻す方法を確認しましょう。「クライアントのバージョン」と「カーネルのバージョン」は分けて記録し、自分が直面している問題の修正情報があるかも確認してください。すぐ古くなる「現時点の最新版」はこの記事では固定して掲載しません。ダウンロード前に、その時点のリリース情報を確認してください。
用途に合わせて選び、メインのクライアントを1つに絞る
Webサイトや一般的なデスクトップアプリのプロキシが必要な場合、まず3つの候補それぞれで、サブスクリプション、ルールモード、システムプロキシの復旧をテストしてください。手順が分かりやすく、ログを確認しやすく、更新後も設定を保てるものを選びましょう。Clash Plusは対応するリリースを使って評価できますが、TUNや高度なオーバーライドが必要な場合は、実際の機能確認も必要です。
カスタムルールや設定スクリプトを長期的に管理するなら、Clash Verge Revを優先して試し、現行バージョンのマージ順とサービスモードを確認しましょう。FlClashの操作に慣れている場合は、Windows版を試してから、プラットフォームごとの権限やオーバーライドの違いを確認してください。ほかの比較項目はクライアント比較ページを参照できます。画面の違いだけを理由に、複数のクライアントを同時に自動起動させる必要はありません。
移行完了前に確認する5項目
- 旧設定のバックアップは残しつつ、複数のクライアントが同じ待ち受けポートを使ったり、システムプロキシを変更したりしないようにしてください。
- サブスクリプションを更新できること、ローカルのオーバーライドが失われないこと、ログに解析やダウンロードのエラーが繰り返し記録されていないことを確認します。
- 直接接続するサイト、プロキシ経由のサイト、LAN内の機器に接続し、実際に適用されたルールを確認します。
- TUNを無効にしたとき、クライアントを終了したとき、PCを再起動したときに、ネットワークの動作が想定どおりか確認します。
- 接続テストが完了してから、旧クライアントの自動起動を無効にしてください。元に戻せる設定は早まって削除しないようにしましょう。
最終的な選択では、次の3点を明確にできることが大切です。実際に動作しているカーネルのバージョン、設定の更新後も保持される変更、終了後にシステムプロキシとルーティングがどう復旧するか。画面のスクリーンショットやソフト名だけで判断するより、この3点を確認するほうが確実です。