オリジナル版、Meta、mihomoの関係
Clashでは当初、YAMLを中心とする設定方式が採用されました。入口がアプリからのリクエストを受け付け、ノードが利用可能な出口を定義し、ポリシーグループがノードをまとめ、ルールが接続先を決めます。Clash Metaはこれを基にプロトコルやネットワーク機能を拡張し、後続プロジェクトはmihomoの名称で開発が続いています。そのため、解説に登場するClash Metaとmihomoには歴史的なつながりがありますが、Clashの名を冠したソフトウェアがすべて同じ機能を備えているとは限りません。見慣れない項目を見つけたら、サブスクリプションを何度も再読み込みするより、まず実行中のカーネル名を確認し、対応するドキュメントを参照しましょう。
オリジナル版Clashの主要な公開実装はすでにメンテナンスが終了しており、古い解説に記載されたデフォルト値、プロトコル一覧、導入方法が現在のクライアントに当てはまらない場合があります。移行時は、使用中のプロトコル、DNSモード、ルールセット、ローカルのオーバーライドを記録し、新しい環境で対応しているか一つずつ確認してください。基本的なYAML構造を読み込めることは互換性の第一歩にすぎません。ノードの接続パラメーター、ルールプロバイダーの動作、OSとの連携には違いがあることがあります。以前の設定をバックアップしておけば、移行やトラブル対応の際に比較できます。
GUIとネットワーク処理の役割分担
デスクトップクライアントは通常、サブスクリプションの読み込み、設定の切り替え、トレイメニュー、自動起動、システムプロキシの切り替えを担当します。カーネルは設定を解析し、実際の接続を処理します。画面上で起動済みと表示されていても、対象アプリがプロキシ経由で接続しているとは限りません。また、カーネルが正常に動作していても、システムプロキシやDNSが正しく設定されているとは限りません。特にUbuntuでは、GNOMEデスクトップのプロキシ、ターミナルの環境変数、TUNルートを区別する必要があります。それぞれ適用範囲が異なるため、対象アプリに合った経路を選ぶと、二重の通信取り込みやルートの競合を避けやすくなります。
コマンドラインのみの導入は、単独での実行、サービス管理、リモート保守が必要な場合に適しています。その一方で、GUIが担っていた作業は自分で行うことになります。設定ファイルの配置場所、サービスの実行アカウント、ログの確認方法、障害時の停止手順をあらかじめ決めておきましょう。systemdの作業ディレクトリは相対パスに影響し、アクセス権限はルールファイルの読み込みに影響します。まずフォアグラウンドで設定を読み込めることを確認してからバックグラウンドサービスを構成すると、設定の誤りとサービス管理の問題を切り分けやすくなります。
更新、サブスクリプション、個人ルール
クライアント、カーネル、サブスクリプションの更新は、それぞれ異なる操作です。クライアントの更新では画面やシステム連携が変わることがあり、カーネルの更新では設定項目の挙動が変わる場合があります。サブスクリプションの更新では通常、ノードやルールの内容が更新されます。変更前に何を更新するのかを確認し、現在の設定を記録してください。設定のマージに対応するクライアントでは、ダウンロード済みのサブスクリプションファイルを直接編集するより、専用のオーバーライド層に個人ルールを置くほうが管理しやすい場合があります。ただし、マージの順序を確認し、個人のDNS設定がほかの設定元に上書きされないようにしてください。
オープンソースライセンスは、コードの利用や再配布の条件を定めるものであり、クライアント間でライセンスや配布方法が完全に同じであることを意味しません。本サイトは設定解説とダウンロード先をまとめたもので、各プロジェクトのリリース情報に代わるものではありません。問題の議論を参照するときは、タイトルが似ているかだけでなく、OS、カーネルの種類、再現手順を照らし合わせてください。ログや設定を共有する際は、サブスクリプションURL、認証情報、個人のネットワーク情報を削除しましょう。項目の構造とエラー発生時の状況が残っていれば、多くの場合、技術的な議論に十分です。
接続の問題を層ごとに切り分ける
アプリに最も近い層から確認しましょう。まずアプリがシステムプロキシ、手動プロキシ、TUNのどれを使っているかを確かめ、次にローカルポートとカーネルの状態、ルールの一致状況、ポリシーグループの選択、ノードへの接続性、最後にDNSと接続先サービスを確認します。ブラウザーでページを開けても、そのアクセス経路が機能していることしか確認できず、ほかのプログラムやプロトコルの検証にはなりません。一度に変更する項目を1つにし、変更前後のログを残すと、設定と現象の因果関係を把握しやすくなります。
DNSの問題では、「名前解決に失敗する」場合と「名前解決は成功するが接続できない」場合を区別することが特に重要です。前者はリクエストの入口、上流DNSへの到達性、名前解決モードを確認します。後者ではさらにルール、出口、接続先アドレスを調べます。HTTPSの証明書警告も、単純にプロキシが原因とは限りません。システム時刻、証明書チェーン、パケットキャプチャツール、接続先サービスが関係することもあります。ページを表示するために証明書検証を無効にせず、エラーを記録して層ごとに調査してください。プロトコルの違いやカーネルの選び方はプロトコルリファレンスを参照し、手順に沿って始める場合は入門ガイドをご覧ください。