Clash利用ガイド

Clashのよくある質問とトラブルシューティング

クライアント、コア、設定の基本的な関係から始め、サブスクリプションの追加、TUN権限、システムプロキシ、ノード接続、DNS、ログの問題を順番に解決します。まず障害がどの層で発生しているかを特定してから、該当する設定を変更してください。

基礎知識

クライアント、コア、動作モード、設定の取得元を整理し、誤った箇所の設定を繰り返し変更しないようにします。

Clash、mihomoコア、GUIクライアントの関係とは

mihomoは設定の解析、プロキシ接続の確立、ルールマッチング、DNS処理を担うコアです。Clash Verge RevやClash PlusなどのGUIクライアントは、サブスクリプション管理、プロキシグループの選択、ログ表示、システムプロキシの切り替えを提供し、バックグラウンドでコアを呼び出します。クライアントの画面が似ていても、使用するコアが同じとは限りません。機能の互換性を確認する際は、クライアントの説明、コアの種類、設定構文を併せて確認してください。

ルールモード、グローバルモード、ダイレクトモードの違いは?

ルールモードでは、設定内のルールを上から順に照合し、各リクエストを指定されたプロキシグループ、DIRECT、REJECTへ振り分けます。日常的な利用に適したモードです。グローバルモードでは通常、すべての通信をGLOBALプロキシグループへ渡すため、ノードの一時的なテストに便利です。ダイレクトモードはプロキシ転送をスキップし、問題がクライアントに起因するかを確認する際に使います。モードを切り替えても、サブスクリプション内のルールが自動的に書き換えられることはありません。

設定ファイルとサブスクリプションURLの違いは?

設定ファイルは、クライアントが実際に読み込むYAML形式の内容で、通常はプロキシ、プロキシグループ、ルール、DNS、ポート設定などを含みます。サブスクリプションURLはリモート設定を取得するためのアドレスで、クライアントが必要に応じてダウンロードし、ローカル設定として保存します。リモート更新によってローカルの変更が上書きされる場合があるため、ルールを長期的にカスタマイズする場合は、オーバーライド、設定のマージ、またはローカルファイルの個別管理を利用してください。

システムプロキシとTUNモードはどちらを選ぶべき?

システムプロキシは、ブラウザーやOSのプロキシ設定を自動的に参照するアプリに適しており、オンとオフを簡単に切り替えられます。TUNモードは仮想ネットワークインターフェースを通じて、より広範囲の通信を引き受けます。システムプロキシに対応しないアプリ、コマンドラインツール、一部のゲームに適しています。初めて使う場合は、まずシステムプロキシが正常に動作することを確認し、必要に応じてTUNを有効にしてください。両方を同時に使う場合は、ルーティング、DNS、ほかのネットワークツールとの競合にも注意が必要です。

インストールと設定

プラットフォームの選択、サブスクリプションの解析、システム権限、Windowsアプリのループバックを確認しながら初期設定を行います。

Windows、macOS、Android、iOS、Linuxではどのクライアントを選ぶべき?

まず、使用するOSに対応し、現在も保守されているクライアントを選んでください。Windowsでは一般的なx64環境、macOSではApple SiliconとIntel、AndroidではARMアーキテクチャ別のパッケージを確認する必要があります。一般ユーザーには、GUI、サブスクリプション管理、システムプロキシ制御を備えたクライアントがおすすめです。サーバーやルーターでは、mihomoコアを直接実行する構成が適しています。

サブスクリプションURLを追加すると無効または解析失敗になる場合は?

まず、サービス提供元のページでURLが有効であり、余分な空白が含まれていないことを確認してください。次に、ブラウザーでURLへアクセスし、内容が返されるか確認します。ログインページ、エラーページ、空の内容が返る場合は、サブスクリプションURLまたはアカウント状態に問題がある可能性があります。内容は返るのにクライアントで解析できない場合は、Clashまたはmihomoが読み込めるYAML形式か確認してください。古いルールによってリクエストが利用できない出口へ送られないよう、プロキシを一時的に無効にして再取得する方法もあります。

TUNモードの有効化時に権限不足と表示された場合は?

TUNモードでは仮想ネットワークインターフェースの作成とシステムルートの変更が必要なため、通常は管理者権限が必要です。Windowsではクライアントの説明に従ってサービスモードをインストールするか、管理者として初回設定を行ってください。macOSではネットワーク拡張の許可やシステム認証情報の入力が必要です。LinuxではCAP_NET_ADMIN、デバイス権限、サービス設定を確認します。権限を付与した後はクライアントを完全に終了して再起動し、仮想インターフェースが正常に作成されたか確認してください。

WindowsのUWPアプリでプロキシを使えない場合は?

一部のUWPアプリには、既定でループバックアクセスの制限があります。そのため、システムプロキシを有効にしていても、ローカルホストの待ち受けポートへ接続できないことがあります。クライアントにUWPループバックツールがある場合は、対象アプリにループバックの免除を設定して保存してください。該当する機能がない場合は、WindowsのCheckNetIsolationツールで設定できます。変更後に対象アプリを再起動し、Clashの混合ポートとシステムプロキシのポートが一致していることも確認してください。

使い方のヒント

設定の更新、テスト結果の読み解き、ルールのマッチ状況を確認し、DNS設定と通信の振り分け経路を一致させます。

サブスクリプションを正しく更新し、ローカル設定を保持するには?

設定またはサブスクリプションのページで対象項目を選び、更新を実行してください。ダウンロードが完了してから、その設定へ切り替えるか再読み込みします。ノード、プロキシグループ、リモートルールは通常サブスクリプションとともに更新されますが、クライアント自体の設定は個別に保存されます。サブスクリプションから生成されたYAMLを直接編集すると、次回更新時に上書きされやすいため、長期的に保持したいDNS、ルール、プロキシ設定は、クライアントが対応するオーバーライド、スクリプト、設定マージ機能に記述してください。

遅延テストがタイムアウトすると、ノードは必ず使えない?

必ずしもそうとは限りません。遅延テストは、指定されたテスト先、タイムアウト時間、現在のネットワーク環境に左右されます。テスト先がブロックされている、DNS解決に失敗している、ノードがプローブを拒否している場合もタイムアウトになります。まずそのノードへ切り替え、安定したHTTPSページへアクセスしながら接続ログを確認してください。実際のリクエストが成功するのにテストだけがタイムアウトする場合は、テスト先を変更します。実際の接続も失敗する場合は、ノード情報、端末の時刻、ネットワーク制限を確認してください。

Clashのルールが想定どおりマッチしないのはなぜ?

ルールは設定に記載された順番で上から照合され、通常は最初にマッチした時点で処理が終了します。DOMAIN-SUFFIX、GEOIP、GEOSITEなどの範囲が広いルールを前方に置くと、後続のより具体的なルールが適用されないことがあります。切り分ける際は、接続詳細で対象ドメイン、解決後のアドレス、マッチしたルール、最終的なプロキシグループを確認してから、ルールの順番を調整してください。カスタムルールを追加した場合は、変更後の設定が読み込まれており、古い設定が使われていないことも確認します。

Clash使用時のDNSリークや名前解決エラーを減らすには?

ドメインの名前解決経路とルールによる振り分けを一致させることが重要です。クライアントのDNSを有効にしたら、nameserver、proxy-server-nameserver、fallback、nameserver-policyの役割を明確にし、別のDNSツールが同じリクエストを二重に処理しないようにしてください。TUN環境ではDNSハイジャックと仮想ネットワークアダプターの設定も確認します。名前解決に異常がある場合は、まずOSの解決結果とクライアントログを比較し、その後OSのDNSキャッシュを消去して設定を再読み込みしてください。

トラブルシューティング

リクエストがクライアントに届いているか、ルールにマッチしているか、ノードへ接続できているかの順に確認し、問題の範囲を絞り込みます。

システムプロキシを有効にしてもブラウザーでアクセスできない場合は?

まずクライアントが起動しており、設定が読み込まれ、システムプロキシがクライアントの現在の待ち受けアドレスとポートを指していることを確認してください。次に、ブラウザーが独自のプロキシ設定を使っていないか、拡張機能やセキュリティソフトがシステム設定を上書きしていないか確認します。ローカルポートへ接続して待ち受け状態を確認し、Clashのログにブラウザーからのリクエストがあるか確認することもできます。ログにリクエストがまったくない場合は、ブラウザーとシステムプロキシを重点的に確認します。リクエストはあるのに失敗する場合は、ルール、ノード、DNSを確認してください。

ノードの接続タイムアウトは、どの順番で調べるべき?

まず同じサブスクリプション内の別のノードへ切り替え、特定のノードだけの問題か、すべてのノードが失敗しているかを確認します。次にサブスクリプションを更新し、ノードサーバーのアドレスを解決できるか、端末の日付とタイムゾーンが正しいか確認します。ほかのプロキシやVPNツールも一時的に無効にしてください。すべてのノードがタイムアウトする場合は、別の基本ネットワークでテストします。特定のプロトコルだけが失敗する場合は、クライアントのコアがそのプロトコルとパラメーターに対応しているか確認してください。最後に、ログのDNS、connect timeout、handshakeに関する情報から、どの段階で失敗しているかを特定します。

TUNモードは有効なのに端末がインターネットへ接続できない場合は?

まずTUNを無効にし、基本的なネットワーク接続とシステムプロキシモードが正常か確認してから、再度有効にして範囲を絞り込みます。仮想ネットワークアダプターが作成されているか、既定のルートが別のVPNやセキュリティソフトに書き換えられていないか、DNSが利用可能なリゾルバーを指しているか、LANのサブネットが誤って取り込まれていないかを重点的に確認してください。Windowsではサービスモードの状態も確認し、macOSではネットワーク拡張を再度許可します。設定を変更した後は、関連するネットワークツールを終了してクライアントを再起動してください。

ログからポート競合、DNSエラー、ルールの問題を見分けるには?

起動時にaddress already in useと表示される場合は、通常、混合ポートまたはコントロールポートが別のプロセスに使用されています。使用中のプログラムを終了するか、ポートを変更してください。リクエスト時にDNS timeout、no such host、ネームサーバーエラーが発生する場合は、DNS設定と現在のネットワークを確認します。接続記録にルール名とプロキシグループが表示されていれば、通信が誤った分岐へ進んでいないか判断できます。connect timeoutやhandshake failedが表示される場合は、ノードの接続性、プロトコルパラメーター、端末の時刻を確認してください。

Clashをダウンロード