プロジェクトの変遷:名称とメンテナンス状況
Clashはルールベースのプロキシコアとして知られるようになり、その後、さまざまなOS向けのGUIクライアントが登場しました。Clashの元プロジェクトや一部の初期クライアントが開発を終了した後も、エコシステムでは異なる方針の派生プロジェクトが続いています。Clash Metaは後にmihomoという名称で開発が続けられました。そのため、古いガイドにあるClashやMetaと、現在のドキュメントにあるmihomoは、異なる時期のプロジェクトを指す場合があります。ガイドを読む際は、コア、クライアント、設定形式のどれを説明しているか確認してください。
Clash for Windowsは過去のデスクトップクライアント名であり、Windows向けClashクライアント全般を指す名称ではありません。旧インストーラーは既存環境の調査には利用できますが、開発終了後のOS互換性、プロトコル対応、問題修正は保証されません。新規インストールでは、現在もメンテナンスされているクライアントを比較しましょう。移行時は元の設定を保存し、プログラムファイルを置き換えるだけでなく、ルール、DNS、プロキシグループの互換性も確認してください。
オープンソース:ライセンスとサービス提供元は別々に確認
mihomoのソースコードはGPL-3.0ライセンスで公開されており、公開リポジトリで実装、変更履歴、課題の議論を確認できます。コードが公開されていれば設定の挙動を調べられますが、GUIクライアントの機能、パッケージ方法、メンテナンス状況は各プロジェクトの説明を確認してください。スターの数から通信品質を推測したり、コミュニティでの人気をすべての機器に適した根拠にしたりはしません。選ぶ際は、対応OS、必要な権限、日々のメンテナンス方法を重視しましょう。
オープンソースのコア、クライアント、接続サービスはそれぞれ異なるものです。ソフトウェアライセンスはコードの利用や配布条件を定め、サブスクリプションサービスは接続情報と利用条件を提供します。両者を混同しないでください。公開ノードはいつ使えなくなるかわからず、共有ページだけでは運営者も判断できません。アカウントへのログインや決済など重要な操作では接続先の提供元を慎重に確認し、利用するアプリ自体の暗号化通信も引き続き使用してください。
コアの関係:画面上の設定は全プラットフォーム共通とは限らない
GUIクライアントは通常、設定管理、システムプロキシの切り替え、サービスのインストール、ログ表示を担当し、コアが実際の通信を処理します。この記事の設定構文はmihomoを前提としています。iOSなど他のプラットフォームでは、各クライアントのドキュメントで対応範囲を確認してください。同じYAML形式でも、コアの機能、OSのネットワーク機能、クライアントのオーバーライド方法によって項目の動作が異なる場合があります。設定をインポートできても、ファイルが読み込まれたことを示すだけです。実際の通信経路も確認しましょう。
システムプロキシ、TUN、ルールモードはそれぞれ異なる層の仕組みです。システムプロキシはアプリがプロキシ設定を利用することで機能し、TUNはネットワークルートを通じて通信を取り込み、ルールモードは取り込み後の通信に適用するポリシーを決めます。この3つを分けて考えると、「ブラウザーは使えるのに他のアプリは使えない」「グローバルモードを有効にしても通信が直接出ていく」といった問題を切り分けやすくなります。まず通信がコアに届いているか、次に適用されたルール、最後に選択した接続先へ到達できるかを確認しましょう。
更新の仕組み:アプリ・サブスクリプション・ルールデータを個別に確認
クライアントの更新では画面やOS連携が変わることがあり、コアの更新ではプロトコルや設定の挙動が変わる場合があります。サブスクリプションの更新は接続情報を置き換え、ルールセットや地理情報データの更新は分類結果に影響します。これらが同時に行われるとは限りません。アップグレード前に使用中の設定とローカルのオーバーライドを記録し、変更内容を確認してください。アップグレード後は、よく使うサイト、LAN機器、スリープ復帰後の接続をテストしましょう。ネットワーク設定を一度にすべて変更するのは避けてください。
ダウンロードページに各プラットフォームの配布先とインストール方法をまとめています。トップページでは特定のリリース番号を固定表示していません。アップグレード後の問題は、まず最小構成で再現し、ルールセット、DNSポリシー、TUNを順に戻して確認しましょう。プロジェクトに報告する際は、OS、クライアント名、コアの情報、再現手順を記載し、サブスクリプションURL、アカウント情報などの機密情報は削除してください。「インターネットに接続できない」という情報だけでは、名前解決の失敗、ルートの競合、接続先の問題を切り分けられません。