オープンソースカーネル · 全プラットフォームのクライアントを継続メンテナンス

Clash クライアント全プラットフォームのダウンロードと設定

mihomo カーネルをベースにしたクライアントのインストーラーと設定ガイド。Windows、macOS、Android、iOS、Linux の 5 プラットフォームに対応し、サブスクリプションの読み込み、プロキシモードの切り替え、ルール振り分け、TUN モードまで一通り解説します。

  • 完全無料
  • オープンソース
  • 日本語ドキュメント
  • mihomo カーネル

対応プラットフォーム

PLATFORM

プラットフォーム別に Clash クライアント を入手

5 つのプラットフォームにはそれぞれ最適化された GUI クライアントがあり、インストーラー、システム要件、カーネル版のアーカイブはダウンロードページでプラットフォーム別にまとめています。下のカードをクリックすると該当セクションへ移動します。どのクライアントを入れるか迷う場合は、先に選び方ガイドをご覧ください。

  • Windows

    Clash Plus、Clash Verge Rev、FlClash などのクライアントに対応。システムプロキシと TUN モードで通信を取り込み、Windows 10 1809 以降の x64 および ARM64 デバイスで動作します。

    ダウンロードへ
  • macOS

    Apple Silicon 版と Intel 版の 2 種類のインストーラーを用意。メニューバーに常駐して動作し、拡張モードを有効にすると、システムプロキシを参照しないコマンドラインツールや開発環境の通信も取り込めます。

    ダウンロードへ
  • Android

    スマートフォンとタブレットで共通の APK インストーラー。アプリ単位のプロキシと VPN モードに対応し、デバイスの CPU アーキテクチャに合わせて ARM64 版か ARMv7 版を選べば導入できます。

    ダウンロードへ
  • iOS

    Clash Plus は App Store で公開中。ストアページから直接インストールでき、オンデマンド接続やショートカットとの連携に対応します。公式サイトは clashplus.io です。

    ダウンロードへ
  • Linux

    .deb と .rpm の 2 形式のパッケージを用意し、主要なデスクトップディストリビューションに対応。サーバーやルーター用途ではカーネル版のアーカイブを使い、アーキテクチャに合ったバージョンを選んでください。

    ダウンロードへ

すべてのクライアントを見る →

CORE FEATURES

カーネル機能と設定項目の解説

mihomo カーネルの動作は config.yaml で決まります。以下の 6 項目は日常の使用で変更が多く、設定を間違えやすい部分です。それぞれ対応する設定キーと値の指定方法を説明します。

システムプロキシを参照しない通信を仮想アダプターで取り込む

カーネルレベル

TUN モードはシステム内に仮想ネットワークアダプターを作成し、システムプロキシの設定に従わない通信もまとめて取り込みます。ゲームクライアント、ターミナルのコマンドラインツール、コンテナ環境といった場面に向いています。有効にするとカーネルが L3 の通信を直接処理し、auto-route と auto-detect-interface によってルーティングテーブルが自動的に仮想アダプターを指すため、ゲートウェイを手動で書き換える必要はありません。システムプロキシだけを変更する方式に比べて適用範囲は広く、その代わり管理者または root 権限が必要で、Windows では Wintun ドライバーのインストールも求められます。

tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true

QUICKSTART

3 ステップで初回設定を完了

インストールから実際に通信できるようになるまで、操作は 3 つだけです。各ステップにはクライアント画面の対応する入口があり、プラットフォーム別の詳しい手順はチュートリアルページにまとめています。

サブスクリプションを読み込む

クライアントの設定ページを開き、サブスクリプションの URL を入力欄に貼り付けてダウンロードをクリックします。一覧に新しい項目が表示されたらそれを選択すると、クライアントが設定を再読み込みしてカーネルを起動します。一覧が空のままの場合は、まずブラウザでサブスクリプションの URL を開き、内容がそのまま返ってくるかを確認し、そのうえでクライアントのログにどの種類のエラーが出ているかを見てください。

プロキシモードを選ぶ

普段はルールモードを選びます。中国本土のドメインと IP はダイレクト、それ以外の通信は rules に従ってプロキシ経由になります。特定のサイトがルールで誤判定されていないか確認したいときは、一時的にグローバルモードに切り替えてすべての通信をプロキシ経由にし、確認が済んだら戻します。グローバルモードではすべてのリクエストがプロキシを通るため、長時間有効にすると通信量が明らかに増えます。

システムプロキシまたは TUN を有効にする

設定でシステムプロキシを有効にすると、ブラウザなどシステムプロキシに従うプログラムはすぐに効果が出ます。コマンドラインツールやゲームクライアントのようにシステムプロキシを読まないプログラムは、TUN モードを有効にしないと取り込めません。有効にしたら任意のサイトにアクセスして接続を確認し、接続ページで一致したルールと出口ノードを見て、振り分けが想定どおりか確認します。

チュートリアルをすべて見る →

OPEN SOURCE

オープンソースカーネルとコミュニティによる保守

クライアントの画面とプロキシカーネルは別々のプロジェクトです。この関係を理解しておくと、問題が起きたときにどちらのログを確認すべきか判断できます。

プロジェクトの沿革

Clash カーネルは Go 言語で書かれ、当初はルール駆動のローカルプロキシプログラムとして登場しました。設定を 1 つの YAML ファイルに集約する設計で、これは現在も受け継がれています。原作者がプロジェクトをアーカイブした後、コミュニティが Clash Meta ブランチで開発を続け、現在の mihomo カーネルになりました。新しいプロトコルの対応や DNS の実装はこのブランチで更新されています。

エコシステムの役割分担

カーネルと主要な GUI クライアントはオープンソースライセンスで公開され、コードは公開リポジトリで管理されています。ルールセット、サブスクリプション変換ツール、Web コントロールパネルはそれぞれ別のチームがメンテナンスしており、標準の config.yaml と RESTful API を介して連携します。どのプロジェクトも他プロジェクトのリリースサイクルを待たずに、独立して新バージョンを公開できます。

カーネルと画面の関係

GUI クライアント自体はプロキシプロトコルを実装しておらず、設定の編集、ノードの表示、オン/オフの操作を担当します。実際の接続は mihomo カーネルが確立します。同じ config.yaml を別のクライアントで使っても動作はほぼ同じです。逆に、画面が固まっていてもカーネルは正常に動いていることが多く、問題を調べるときは画面よりカーネルログを見るほうが正確です。

更新の仕組み

カーネルとクライアントのバージョンはそれぞれ独立して更新されます。一部のクライアントでは内蔵カーネルのバージョンを差し替えられるため、カーネルのアップグレードにアプリ全体の再インストールは不要です。ルールセットと GeoIP データは provider 経由で定期的に取得され、インストーラーには含まれません。そのためルールベースの鮮度は設定内の更新間隔に依存します。間隔を短くすれば、新しいルールをより早く反映できます。

mihomo カーネルのソースコードをクローン

git clone https://github.com/MetaCubeX/mihomo.git

FAQ

よくある質問まとめ

以下は初回設定の段階でもっとも多い 4 つの質問です。展開すると原因と対処の順序が確認できます。その他の項目はチュートリアルページにプラットフォーム別で掲載しています。

サブスクリプションを読み込んだのにノード一覧が空になる場合は?
まずブラウザでサブスクリプションの URL を開き、内容がそのまま返るか確認します。ブラウザでも開けない場合は、リンクの期限切れか現在のネットワークが通っていないことを意味します。開けるのにクライアントでの取得に失敗する場合は、ログのエラー種別を確認します。証明書の検証エラーなら HTTP の URL に切り替えるか、システムのルート証明書を更新します。返ってきた内容を解析できない場合は、そのサブスクリプションが Clash 形式かどうかを確認してください。
システムプロキシを有効にしたのに、ブラウザは通信できてターミナルのコマンドは通らない?
ターミナルツールの多くはシステムプロキシの設定を読まず、http_proxy と https_proxy の 2 つの環境変数だけを参照します。まずシェルでこの 2 つの変数を 127.0.0.1:7890 に向けて一時的に export して検証し、使えることを確認してからシェルの設定ファイルに書き込みます。長期的な解決策は TUN モードを有効にし、カーネルにコマンドラインの通信を直接処理させる方法です。ツールごとに設定する必要がありません。
ルールモードで特定のサイトがプロキシ経由になっている。ダイレクトにしたい場合は?
rules の前方に DOMAIN-SUFFIX を DIRECT に向けるルールを挿入します。位置は既存の同種のルールより前でなければ、先にそちらへ一致してしまいます。変更後に設定を再読み込みし、接続ページでその接続が新しいルールに一致しているか確認します。それでもプロキシ経由になる場合は、IP-CIDR や GEOIP のルールに先に一致していないかを確認してください。
ポートが使用中で起動に失敗し、ログに listen error が出る?
mixed-port で指定したポートが別のプログラムに使われている状態です。まずシステムのコマンドで使用中のプロセスを特定して終了するか、ポートを 7891 などの空いている値に変更してカーネルを再起動します。ポートを変えたら、ブラウザの拡張機能やターミナルのプロキシ設定も忘れずに更新してください。古いポートにつないだままだと、カーネルは起動しているのに通信できないように見えます。

NOTES

技術ノート

設定中に気になった細かい疑問と調査の記録を、公開日の新しい順に並べています。全件の一覧はノートのアーカイブページにあります。

Clash のカスタムルール構文と優先順位:DOMAIN-SUFFIX、IP-CIDR、MATCH の照合順序

rules の書き方と照合順序を 1 つずつ解説します。DOMAIN、DOMAIN-SUFFIX、IP-CIDR から GEOIP、MATCH の受け皿まで、上から順に評価される短絡マッチの仕組みとよくある書き間違いを取り上げます。

全文を読む →

Clash のマルチデバイス設定同期:サブスクリプションリンク、ホスト型設定、手動エクスポートの 3 つの方法

スマホ、PC、タブレット間で設定を揃える方法:サブスクリプションリンクによる自動同期、自前の設定ホスティング、手動でのエクスポート/インポートという 3 つの方式について、用途、維持コスト、競合時の対処を比較します。

全文を読む →

Clash のノードがタイムアウトして接続できない:順番に確認する 7 つのポイント

ノードのタイムアウトは、ノード自体が原因とは限りません。サブスクリプションの更新、DNS 解決、ポートの競合、システムプロキシ、ルールの一致、カーネルログ、ネットワーク環境の 7 段階を順に確認し、本当の原因をすばやく特定します。

全文を読む →

すべての記事を見る →