オープンソースプロジェクト・クライアント継続更新中
1匹の猫が、5つのプラットフォームへ通信を振り分ける。永久無料・オープンソースのClashクライアント集、日本語ガイドとトラブル対処マニュアル付き。導入後はそのまま設定するだけで、その日から使える。
T-BOARD・幹線配線図
Clashのコア機能は、幹線ケーブルに取り付けられた端子のようなもの:ルールが通信の行き先を決め、ポリシーグループがどのノードを使うかを決め、サブスクが設定を送り込み、TUNとDNSが漏れた通信を受け止める。端子をクリックしてラベルを確認してみよう。
ルールはClashの骨格だ。各接続はドメイン名・IP・プロセス名に応じてDOMAIN-SUFFIX、GEOIP、MATCHなどのルールに順番に照合され、該当すればプロキシまたは直接接続に振り分けられるため、いちいちスイッチを切り替える必要はない。「日本国内のサイトは直接接続、それ以外はプロキシ経由」といった定番の書き方は十数行で済み、ルールセット(rule-providers)はリモートサブスクと定期自動更新に対応しているため、振り分け方針の運用コストはほぼゼロになる。ブラウザ拡張レベルのプロキシとは異なり、ルールはシステム全体に作用し、ブラウザ・端末アプリ・デスクトップソフトをまとめてカバーする。1つのルールセットでマシン全体を管理できる。
ポリシーグループは複数のノードを1つのスケジュール単位にまとめる仕組みだ。url-testは定期的に速度測定して最速ノードを自動選択し、fallbackは順番にフェイルオーバーを行い、load-balanceは接続を複数の経路に分散する。パラメータはurl・interval・toleranceの3つだけで意味も分かりやすく、入力すればすぐ使える。ルールと組み合わせれば、動画配信は専用グループ、大容量ダウンロードは別グループ、業務用通信は直接接続といった振り分けも可能——あるノードが落ちてもグループ内で自動的に代わりが補われるため、パネルに張り付いて手動で切り替える必要はない。3種類の実測比較は、サイト内の記事で項目別に解説している。
サブスクとは1本のURLで、その裏側にはノードリストとルール設定がまるごと収められている。クライアントにサブスクリンクを貼り付けるだけでインポートでき、定期自動更新にも対応。ノードの追加・削除やルールの調整はサブスク元から配信され、ローカルでYAMLを手動編集する必要はない。複数のサブスクを併存させて切り替えることも可能で、プロバイダーを変えても自前サーバーを追加しても互いに干渉しない。取得したリンクが他クライアント形式の場合は、サブスク変換サービスでClash形式に変換すればインポートできる——変換の仕組みと自前構築の方法は設定ガイドページを参照。サブスク取得失敗時の対処手順は、トラブル対処マニュアルに専用の章がある。
システムプロキシは「素直な」アプリにしか効かない——コマンドラインツールやゲームクライアント、UWPアプリの中にはプロキシ設定を無視して直接通信するものが少なくない。TUNモードはシステム内に仮想ネットワークアダプタを作成し、すべての通信をまずそこに通してからルールに従って振り分けるため、アプリ側が回避することはできない。有効化はクライアント内のスイッチひとつで済み(初回のみ管理者権限またはネットワーク拡張権限の許可が必要)、「プロキシを設定したのに端末が直接接続してしまう」といった典型的な問題に対して、TUNは最も手間のかからない最終手段になる。モバイル版のVpnServiceトンネルは同じ発想のAndroid実装だ。
プロキシが通っていてもDNSがクリーンとは限らない。ドメイン名の解析が依然として地元のプロバイダー経由で行われていれば、アクセス記録はそのまま漏れてしまう。ClashにはDNSモジュールが内蔵されており、enhanced-mode: fake-ipはまず予約セグメントの偽アドレスを返し、実際の解析はプロキシ経路内で完了させる。nameserverとfallbackのグループ分けにより、日本国内向けドメインは国内DNS、それ以外は暗号化DNSを使うよう振り分け、fallback-filterが誤判定を補正する。この設定は設定ファイル上でわずか十数行で済み、漏洩の検出方法と行ごとの設定例は、サイト内の専門記事で実践的に解説している。
SOCKETS・5つのソケット
5つのプラットフォームにはそれぞれメンテナンス中のクライアントがあり、ダウンロードページではプラットフォーム別にインストーラー・システム要件・インストール手順を掲載している。ソケットをクリックすると対応セクションへ直接移動する。
OPEN SOURCE・オープンソースの実態
Clashとはこの種のクライアントの総称であり、その起源は2018年に公開されたGo言語製のオープンソースプロキシコアにある。オリジナルプロジェクトがアーカイブされた後、コミュニティがそのコードを引き継いで開発を続け、現在のmihomoコア(いわゆるClash Meta系)が形成された。プロトコル対応・ルールエンジン・DNSモジュールはいずれもこの本流の上で継続的に更新されており、リポジトリはGPL-3.0ライセンスで公開され、コミット履歴・議論・リリース記録は誰でも確認できる。
今日の「Clashクライアント」は単一のソフトウェアではなく、一つのエコシステムだ。Clash Plus、Clash Verge Rev、FlClash、Clash Meta for Androidなどのグラフィカルクライアントがそれぞれ独自のUIを開発しているが、内部で呼び出しているコアは同じmihomoである。つまりクライアントを乗り換えても設定を覚え直す必要はない——サブスク・ルール・ポリシーグループの書き方はどのクライアントでも共通で、設定ファイルはそのまま流用できる。
バージョン更新は各プロジェクトのリリースチャネルを通じて行われる。コアとクライアントはそれぞれ個別にリリースされ、クライアントは通常コアを内包してバージョンごとに更新を運ぶ。当サイトのダウンロードページのリンクは各プロジェクトの現行リリースを指しており、上流のリリースに合わせて更新される。インストーラーはプラットフォームとアーキテクチャ別に整理されており、誤ったパッケージをダウンロードする心配はない。
コードを直接読んだり、自分でビルドしたい場合は、コアのリポジトリをクローンすればよい。ビルドに必要なのはGoツールチェーンだけで、リポジトリ内にビルド手順が付属しており、各プラットフォーム向けのクロスコンパイルターゲットも揃っている——ルーターで動くMIPS版パッケージも同じソースコードからビルドされたものだ。
git clone https://github.com/MetaCubeX/mihomo.git
QUICK CHECK・よくある質問セレクション