Windows
トレイからの操作、システムプロキシ、設定の切り替えが必要なデスクトップユーザーに適しています。Clash for Windowsの代替を探す場合は、Clash PlusとClash Verge Revを比較し、OSのアーキテクチャ、サービスの権限、TUN対応を確認しましょう。移行前に元の設定を保存し、新しいクライアントに読み込んで動作を確かめてから切り替えてください。
ダウンロードOSに合わせてクライアントを選び、YAML設定を項目ごとに確認。DNSからルールまで、通信の振り分け経路を理解できます。
この例は設定項目の階層を示すもので、完全なプロキシ設定ではありません。PROXYに含まれるのは現在DIRECTのみです。実際に使うには、有効なノードを読み込み、プロキシグループに追加してください。
まずOSとプロセッサのアーキテクチャを確認し、GUIクライアントを選びましょう。Clash PlusはWindows、macOS、Android、iOS向けのダウンロード一覧で最初に紹介しています。LinuxではClash Verge Revから検討できます。クライアントは設定管理やシステム連携を担い、設定項目の解析や接続を行うのはコアです。画面が似ていても、対応する設定項目が同じとは限りません。
トレイからの操作、システムプロキシ、設定の切り替えが必要なデスクトップユーザーに適しています。Clash for Windowsの代替を探す場合は、Clash PlusとClash Verge Revを比較し、OSのアーキテクチャ、サービスの権限、TUN対応を確認しましょう。移行前に元の設定を保存し、新しいクライアントに読み込んで動作を確かめてから切り替えてください。
ダウンロードシステム情報でApple SiliconかIntelかを確認し、対応するインストーラーを選びましょう。システムプロキシやネットワーク拡張の許可方法はクライアントによって異なる場合があります。初回起動時は画面の案内に従って設定してください。既存の設定は移行できますが、起動時の自動実行、プロキシの適用、ローカルパスなどは新しいクライアントで再確認が必要です。
ダウンロードモバイル端末では通常、システムのVPN機能を使って通信を取り込みます。インストール前に端末のアーキテクチャを確認し、接続時にはシステムの許可を与えてください。画面ロック後に接続が切れる場合は、バッテリー最適化やバックグラウンド動作の制限を確認します。アプリごとのプロキシ設定はクライアントの機能であり、YAMLのドメインや宛先アドレスに基づくルールとは別の設定です。
ダウンロードダウンロードページからClash PlusのApp Storeページに移動できます。公式サイトはclashplus.ioです。サブスクリプションを読み込んだら、ノードとプロキシグループが認識されていることを確認してから、VPN構成の追加を許可してください。デスクトップで使える一部の低レベルネットワーク設定は、モバイル端末ではシステム側が管理する場合があります。実際の対応範囲はクライアントで確認してください。
ダウンロードデスクトップではClash Verge RevとFlClashを比較し、ディストリビューションに合ったパッケージを選べます。サーバーやルーターで使う場合は、mihomoコアの入手先を確認し、サービスと設定ファイルのパスを自分で管理してください。透過プロキシを有効にする前に、ルーティング、DNS、権限の関係を把握しましょう。リモート操作時は、復旧に使える管理用の接続を確保してください。
ダウンロードインストーラーに含まれるのはクライアントのみで、利用可能なプロキシサービスは付属しません。サブスクリプションURLには通常、アクセス用の認証情報が含まれています。信頼できる端末で管理し、設定やログを共有する前に機密情報を削除してください。すべてのクライアントを見る →
通信の経路は、入口、モード、名前解決、ノード、プロキシグループ、ルールの6層に分けて考えられます。以下では各層の結論を確認してから、対応するYAMLを見ていきます。例は個別の断片であり、つなぎ合わせても完全なサブスクリプションにはなりません。項目を手動で選ぶと、自動切り替えは停止します。
mixed-port: 7890allow-lan: false
bind-address: 127.0.0.1ポート項目はローカルの待ち受け口を指定するもので、リモートノードのポートではありません。portはHTTPプロキシ、socks-portはSOCKSプロキシを受け付けます。mixed-portでは同じポートで両方の接続を受け付けられます。上の例はローカル端末からの接続のみを待ち受ける設定です。アプリ側で、プロキシの接続先をローカルアドレスと該当ポートに指定してください。よくある設定ミスは、コアを起動しただけでアプリ側のプロキシ設定を忘れることです。また、2つのクライアントが同じポートを使っている場合もあります。LANからのアクセスを許可する前に、バインドアドレス、ファイアウォール、認証を確認してください。スイッチを1つ変えるだけでは不十分です。
mode: rulelog-level: info
rules:
- GEOIP,CN,DIRECT
- MATCH,PROXY普段のサイト別振り分けには、通常ruleを使います。コアがルールの順に接続先を決めます。globalはGLOBALプロキシグループを使用し、directは直接接続します。モードが制御するのはコアに入った接続であり、すべてのアプリが自動的にプロキシへ接続されるわけではありません。グローバルモードでも、必ずリモートノードを経由するとは限りません。GLOBALの現在の選択を確認してください。ルールを調べる際は、一時的にモードを切り替えて比較できますが、元の設定を記録しておきましょう。クライアントが実行時インターフェース経由でモードを変更する場合、設定ファイル上の値と現在の有効値が異なることがあります。
dns:
enable: true
enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.alidns.com/dns-queryfake-ipはアプリにマッピング用のアドレスを返し、後続の接続で元のドメイン名をコアに関連付けます。redir-hostは実際に名前解決したアドレスを返します。この2つのモードはドメイン名の識別やアプリとの互換性に影響しますが、ノードを高速化するスイッチではありません。例ではコアのDNSを有効にしていますが、システムのDNS問い合わせがここに届くかどうかは、クライアントのDNS取り込み設定にも左右されます。LAN内の機器や特定のアプリで問題が起きた場合は、まず問い合わせ経路とキャッシュを確認し、必要に応じて除外するドメインを検討してください。拡張モードだけを変更しても、システムDNSを確認しなければ実際の名前解決経路は変わらないことがあります。
proxies:
- name: example-socks
type: socks5 server: 127.0.0.1
port: 1080proxiesには個々のプロキシ接続先の設定を記述し、サブスクリプションURLからは設定やノードの一覧を取得します。ノードには通常、名前、プロトコル、サーバー、ポートが必要です。認証や通信方式の項目はプロトコルによって異なります。例はローカルのSOCKSサービスを指定しており、構造を示すだけで利用可能なリモートノードではありません。よくある設定ミスには、サブスクリプションURLをサーバー項目に入力する、ポートの形式を誤る、現在のコアが対応していないプロトコルを使う、などがあります。ノードを定義した後、実際の接続先にするには、プロキシグループやルールから参照する必要があります。
proxy-groups:
- name: PROXY
type: select proxies:
- example-socks
- DIRECTproxy-groupsでは、ノードやほかのプロキシグループをまとめ、参照可能な接続先として定義します。selectは手動選択、url-testはテスト結果に基づく選択、fallbackは上から順に利用可能な項目を選択、load-balanceは設定した方式で接続を振り分けます。自動選択グループのテスト先は、実際の用途を反映するものにしてください。1回の計測で応答時間が短くても、すべての通信が速くなるとは限りません。この例は、前に定義したexample-socksを参照します。名前は正確に一致させ、グループ間の参照ループを避けてください。また、グループ名をプロトコル名と取り違えないようにしましょう。
rules:
- DOMAIN-SUFFIX,example.com,PROXY - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,PROXYrulesは上から順に照合され、一致した時点で指定されたポリシーが適用されます。後続の、より具体的なルールには進みません。そのため、特定のドメインやLAN内アドレスのルールは、広範なルールより前に配置し、MATCHは最後のフォールバックにします。適用先には、存在するノード、プロキシグループ、または組み込みアクションを指定してください。アプリの接続結果が想定と異なる場合は、ルールを重複して追加し続けるのではなく、接続の詳細でドメイン、宛先アドレス、一致したルールを確認しましょう。ドメインを識別できるかどうかは、DNSや通信の取り込み方法にも左右されます。ルールの構文が正しくても、必ず一致するとは限りません。
初めて使うときは、設定を読み込める、接続先を選べる、アプリから通信できる、という最短の経路をまず確認しましょう。ポート、DNS、TUN、ルールを同時に変更しないでください。一度に1つの層だけを変えれば、問題が起きたときに原因を特定しやすくなります。以下では、基本的な3ステップを紹介します。
クライアントの設定またはサブスクリプション管理画面を開き、信頼できる提供元のサブスクリプションURLを追加するか、ローカルのYAMLファイルを読み込みます。更新後、設定が選択されているか、ノードとプロキシグループが表示されているかを確認してください。解析エラーが出た場合は、エラー行の周辺にあるインデント、コロン、リスト構造を確認します。設定内容の誤りは、クライアントを何度も再インストールしても解決しません。サブスクリプションの取得に成功しても、すべてのノードに接続できるとは限りません。
まずはルールモードを使い、ルールから参照されている主要なプロキシグループを見つけて、有効なノードを1つ選びます。デスクトップではシステムプロキシを有効にし、ポートが現在のクライアントと一致するか確認してください。モバイル端末では、案内に従ってVPN接続を許可します。システムプロキシを使わないアプリの通信も取り込む場合はTUNが適していますが、ルーティングや権限に関わります。通常のプロキシ接続を確認してから有効にし、通信の取り込み失敗とノードの接続失敗を混同しないようにしましょう。
対象のサイトを開き、クライアントの接続一覧でアプリ、宛先ドメイン、一致したルール、最終的な接続先を確認します。ページが開けても、想定どおりに振り分けられたとは限りません。速度テストに成功しても、対象サイトが使えるとは限りません。ブラウザーは使えるのにターミナルから接続できない場合は、プロキシ環境変数が設定されているかを確認してください。すべてタイムアウトする場合は、まずローカルネットワークとノードの状態を確認します。検証が終わったら、一時的に有効にした詳細ログを元に戻してください。
動作確認済みの設定を1つ保存してから、アプリ別の振り分けや自動選択ポリシーを少しずつ追加しましょう。基準となる設定に戻せば、新しい変更が原因か、ネットワーク環境の問題かを切り分けやすくなります。セットアップの全手順を見る →
設定を使えるかどうかは、クライアント名だけでなく、コアと設定項目の対応状況で判断してください。このサイトではダウンロード先と設定項目の日本語解説を掲載していますが、いずれかのクライアントの開発チームを名乗るものではありません。機能の動作を確認するには、オープンソースコード、プロジェクトのドキュメント、実際の実行ログを参照してください。
Clashエコシステムでは、元プロジェクトの開発終了後も、コミュニティによるフォークの開発が続いています。元のクライアントに保存したYAML、プロキシの選択、ローカル設定を、新しいクライアントへそのまま移行できるとは限りません。mihomoは関連する設定機能を引き継ぎ、拡張していますが、古いコアでは新しいプロトコルや設定項目を認識できない場合があります。サンプルを参照する際は、どのコアを対象にしたドキュメントかを確認し、現在の環境で使えるか判断してください。
Clash for WindowsとClashX Metaは、ダウンロード一覧で開発終了のアーカイブ項目として表示しています。新しい端末では、現在もメンテナンスされている選択肢を優先してください。古い環境でどうしても必要な場合は、使い慣れた画面だけで判断せず、OSとの互換性と必要なプロトコルを確認しましょう。クライアント選びのポイントを見る →
クライアントは、設定の読み込み、トレイメニュー、サブスクリプションの更新、システムプロキシなどの操作を担います。コアは設定の読み込み、名前解決、ルールの照合、外部への接続を担当します。サービス提供元はリモートサーバーとサブスクリプションの内容を管理します。この3つは、それぞれ別の原因で問題が起きる可能性があります。画面に「接続済み」と表示されても、確認できるのはローカル側の状態にすぎません。リモートサービスが利用可能か、すべてのアプリの通信が取り込まれているかまでは判断できません。
同じノードでもクライアントによって動作が異なる場合は、コア、プロトコルの設定、DNSの取り込み方法を比較してください。同じクライアントでもネットワークによって結果が異なる場合は、通信事業者のネットワーク、ルーティング、サーバー側の制限も考慮します。設定をすべて一度に変えるより、問題を層ごとに切り分けるほうが再現性のある結論を得やすくなります。
mihomoはGPL-3.0のオープンソースライセンスを採用しています。ソースコード、コミット履歴、課題の議論はプロジェクトのリポジトリで確認できます。コアのライセンスが、すべてのGUIクライアントにも適用されるわけではありません。配布や改変を行う場合は、該当するプロジェクトの説明を確認してください。ソースコードが公開されていれば実装を確認できますが、インストール元、操作権限、ネットワーク上の挙動を判断する代わりにはなりません。
設定項目の動作を調べるときは、該当するドキュメントを確認し、ログと照らし合わせて検証してください。問題を報告する際は、OS、クライアント名、コアの情報、最小限の設定、再現手順を記載します。サブスクリプションURL、認証情報、個人を特定できる接続記録は公開しないでください。再現に必要な情報を絞ることで、設定の問題かプログラムの不具合かを見分けやすくなります。
クライアント、コア、サブスクリプション、ルール用リソースの更新は、それぞれ別の操作です。クライアントの更新でコアも切り替わる場合があります。サブスクリプションを更新するとノードやプロキシグループが置き換わることがあり、ルール用リソースの更新は対応するルールセットにのみ影響します。更新前に、どの層が変更されるかを確認し、元に戻せる設定とカスタム内容を保存してください。
長期的に管理する場合は、リモートのサブスクリプションとローカルのオーバーライドを分け、ルールの用途を記録しておきましょう。プロキシグループ名が変更されたら、カスタムルールが有効な接続先を参照しているか確認してください。DNSモードを変更した後は、必要に応じて関連キャッシュを消去してからテストします。古いマッピングが判断に影響するのを防げます。設定を読み込めたら、実際の接続で更新結果を確認してください。
Gitをインストール済みの方は、次のコマンドを実行すると公開リポジトリをローカルに取得して閲覧できます。ソースコードをクローンしても、クライアントがインストールまたは起動されるわけではありません。通常の利用では、ダウンロードページからGUIクライアントを選んでください。
git clone https://github.com/MetaCubeX/mihomo.git
設定項目リファレンスは個別の項目を調べるのに適しています。一方、記事では1つの問題について判断の流れを解説します。以下に公開日の新しい順で3本を掲載します。システムプロキシの適用、ログから得られる手がかり、複数設定の管理など、利用時の異なる疑問を取り上げています。
システムプロキシを有効にしてもWebページやコマンドラインがプロキシを経由しない場合に、ブラウザーの拡張機能とプロキシ設定、ターミナルの環境変数http_proxy、代替手段となるTUNモードなどを個別に確認します。
log-levelごとの出力の違いを解説し、dial tcpのタイムアウト、i/o timeout、ルールの不一致など、よくあるログの意味を説明します。ログから問題の原因を探る方法も紹介します。
クライアントにおけるProfileの意味を解説し、リモートのサブスクリプションとローカルのYAML設定を区別します。複数の設定の命名、更新、切り替え方法と、カスタムルールの保持についても説明します。