Clashのよくある質問とトラブル解決
基礎概念、インストール設定、システムプロキシ、TUN、DNS、ノード接続まで、問題が起きた場所に沿って段階的に確認します。各回答では、まず判断方法を示し、次に実行できる対処手順を説明します。
基礎知識
まずコア、クライアント、プロキシモード、ポリシー構造を区別し、設定の問題をノードの問題と誤認しないようにします。
Clash、Mihomo、グラフィカルクライアントの関係は?
Clashは通常、ルールベースのプロキシプロジェクトとそのエコシステムを指します。MihomoはClashの設定形式に対応し、機能を継続的に拡張しているコアです。Clash Verge Rev、Clash Plus、FlClashなどはグラフィカルクライアントに分類されます。グラフィカルクライアントは設定のインポート、ポリシーの切り替え、システムプロキシの制御を担当し、実際の接続やルール照合は通常、内蔵コアが処理します。クライアントを選ぶ際は、メンテナンス状況、対応OS、使用コアをあわせて確認してください。
ルールモード、グローバルモード、ダイレクトモードの違いは?
ルールモードでは、設定ファイルのルール順に従って、接続をダイレクト接続、プロキシ、またはブロックへ振り分けます。日常利用に適したモードです。グローバルモードでは、ほとんどの通信を現在選択しているプロキシポリシーへ渡すため、ノードが利用できるかを一時的に確認する際に便利です。ダイレクトモードはプロキシを経由せず、障害がプロキシ経路に起因するかを確認するために使います。トラブル解決では、まずグローバルモードでノードを検証し、その後ルールモードに戻ってルールのヒット状況を確認してください。
システムプロキシとTUNモードの違いは?
システムプロキシは、OSのプロキシ設定に従うアプリだけに影響します。多くのブラウザーや一部のデスクトップソフトが該当しますが、コマンドラインツール、ゲーム、独自のネットワークスタックを使うプログラムは設定を読み取らない場合があります。TUNモードは仮想ネットワークインターフェースを通じて、より広範な通信を取り込みます。適用範囲が広い一方、管理者権限が必要で、セキュリティソフト、仮想マシン、他のネットワークフィルターと競合することがあります。
プロキシグループ、プロキシノード、ルールはどう連携する?
プロキシノードにはサーバーへの接続パラメータを保存し、プロキシグループには複数のノードや他のポリシーをまとめます。ルールはドメイン、IP、ネットワーク種別などを指定したプロキシグループへ振り分けます。通常、接続はルールを上から順に照合し、該当すると対応するプロキシグループへ進みます。その後、手動選択、自動速度テスト、フォールバックのロジックによって最終ノードが決まります。名前を変更する際は、プロキシグループからの参照とルールの振り分け先も確認してください。
ローカル設定とサブスクリプション設定はどう選ぶ?
サブスクリプション設定は、サービス提供者がノードや基本ルールを一元管理する場合に適しており、更新も簡単です。ただし、再更新時にサブスクリプションファイルへ直接加えた変更が上書きされることがあります。ローカル設定は、カスタムDNS、ルール、プロキシグループを長期的に保持したい場合に向いています。併用する場合は、クライアントが対応する上書き、拡張スクリプト、設定マージ機能を優先し、サブスクリプション更新で置き換えられる元ファイルを直接編集しないでください。
インストール設定
初回インポート、サブスクリプション更新、YAML解析、権限の許可、Windowsアプリのループバック問題に対処します。
サブスクリプションを初めてインポートした後、必要な設定は?
インポート後は、設定が有効になっていることを確認し、プロキシノードとプロキシグループが正常に表示されるか確認します。次に利用可能なノードを選び、システムプロキシを有効にして、ブラウザーで普段使うWebサイトへアクセスし接続を確認します。コマンドラインツール、ゲームなどより多くのアプリを取り込む場合は、プラットフォームの権限に応じてTUNを有効にしてください。基本プロキシを検証する前にDNS、ルール、ポートを同時に変更すると、原因を特定しにくくなります。
サブスクリプションURLが無効、または更新に失敗した場合は?
まずブラウザーでサブスクリプションURLを開き、ログインページやエラーページ、空ファイルではなく内容が返ることを確認します。次に、システム時刻、ネットワーク接続、クライアントログのHTTPステータスを確認してください。古い設定で接続できる場合は、利用可能なノードへ切り替えてから再度更新します。URLがサービス提供者によってリセットされている場合は、新しいサブスクリプションURLを取得する必要があります。サブスクリプションURLにはアクセス認証情報が含まれるため、スクリーンショット、ログ、公開テキストに載せないでください。
YAMLのインポート時に解析エラーが出る場合の対処法は?
まず、インデントがスペースで統一されているか、コロンの後にスペースがあるか、リスト項目のハイフンの階層が正しいかを確認します。proxies、proxy-groups、rulesなどのフィールドが正しい階層にあり、参照されるプロキシグループ名が完全に一致していることも確認してください。最後に読み込めた設定へ戻し、変更を部分ごとに追加します。保存するたびに再読み込みすれば、エラーのある箇所を特定できます。
WindowsまたはmacOSでTUNを有効にすると権限不足になる場合は?
Windowsでは、まずクライアントを終了し、管理者権限で起動してサービスモードを再インストールまたは有効化します。macOSでは、システムの確認画面でネットワーク拡張を許可し、管理者認証を完了してください。権限を許可しても失敗する場合は、旧バージョンのサービスが残っていないか、仮想ネットワークアダプターが無効になっていないか、セキュリティソフトがドライバーの読み込みを阻止していないかを確認します。処理後にクライアントを再起動し、必要に応じてシステムも再起動して古いネットワークコンポーネントを解放します。
Windowsストアアプリが接続できないとき、UWPループバックはどう処理する?
一部のUWPアプリは、既定ではローカルプロキシの待受ポートへアクセスできません。そのためブラウザーが正常でも、ストアアプリだけ通信できないことがあります。クライアントに用意されたUWPループバックツールで対象アプリを選択して保存してください。内蔵の入口がない場合は、Windowsのループバック除外管理機能を使って処理します。完了後に対象アプリを再起動し、Clashのローカル待受アドレスとポートが変更されていないことを確認してください。
使い方
モード選択、ノード切り替え、プロキシプロバイダー、起動時の自動起動、ターミナル接続の操作方法をまとめます。
日常利用ではルールモードとグローバルモードのどちらを選ぶべき?
日常利用では通常、ルールモードを選び、ドメインやIPに応じて通信を振り分けます。不要なプロキシ通信を減らせるためです。グローバルモードは、特定ノードの短時間の検証、ルールの誤判定の切り分け、まだルールに追加していない一時的な接続に適しています。グローバルモードでは使えるのにルールモードで失敗する場合は、グローバルモードを使い続けるのではなく、接続ログのヒットルールとプロキシグループを確認してください。
ノードがタイムアウトと表示された場合、どの順番で確認する?
まず同じサブスクリプション内の別ノードへ切り替え、単一ノードの障害か、全ノードが利用できない状態かを判断します。次にサブスクリプションを更新し、正確な時刻が証明書接続に必要なためシステム時刻を確認してください。すべてのノードがタイムアウトする場合は、一時的にTUNを無効にし、DNSを既定値へ戻し、ローカルファイアウォールがクライアントを遮断していないか確認します。速度テスト用URLの失敗が、すべてのWebサイトへアクセスできないことを意味するとは限りません。実際の接続ログもあわせて判断してください。
プロキシプロバイダーを更新してもノードが変わらない場合は?
まず、更新したのが現在の設定で実際に参照されているプロキシプロバイダーであり、無効な別設定にある同名項目ではないことを確認します。プロバイダーの更新時刻とログのダウンロード結果を確認し、設定を再読み込みしてください。キャッシュが更新されない場合は、そのプロバイダーのローカルキャッシュを削除して再取得します。サブスクリプション変換で生成した設定では、変換側が新しい内容を返しており、古いキャッシュを返し続けていないことも確認してください。
Clashを起動時に自動起動し、ネットワークを自動的に取り込む設定は?
まずクライアント設定で起動時の自動起動を有効にし、OSのスタートアップ管理でクライアントが無効になっていないことを確認します。ネットワークを自動的に取り込む場合は、システムプロキシまたはTUNの有効状態も個別に保存してください。WindowsのサービスモードとmacOSのネットワーク拡張には、別途許可が必要な場合があります。設定後に一度システムを再起動してテストし、クライアント起動後に想定した設定が読み込まれ、空の設定画面で止まっていないことを確認します。
ブラウザーは接続できるのに、ターミナルのコマンドが失敗するのはなぜ?
ブラウザーは通常システムプロキシを読み取りますが、ターミナルのプログラムは設定を無視することがあります。現在のターミナルセッションでHTTP_PROXY、HTTPS_PROXY、ALL_PROXY環境変数を設定し、ポートをClashのHTTP、混合、またはSOCKS待受ポートに合わせてください。TUNで通信を取り込む方法もあります。設定後は新しいターミナルを開いて再テストし、ツール自体に個別のプロキシ設定がないか確認して、複数の設定が上書きし合わないようにします。
トラブル解決
リクエストの入口、DNS、仮想ネットワークアダプター、ローカルポート、ポリシーのヘルスチェックから接続異常の原因を特定します。
システムプロキシを有効にしても効果がない場合は?
まずクライアントが起動しているか、設定が有効か、ローカル待受ポートのアドレスがシステムプロキシと一致しているかを確認します。次に、他のプロキシソフトやブラウザー拡張機能を無効にし、システム設定が繰り返し書き換えられないようにします。クライアントの接続ログを開き、リクエストがClashへ入っているか確認してください。記録がまったくない場合はアプリがシステムプロキシを使っていない可能性が高く、記録があるのに失敗する場合はルール、プロキシグループ、ノードを引き続き確認します。
DNS解決に失敗したり、Webサイトが誤ったアドレスを開いたりする場合は?
まずクライアントのDNS設定を既定値へ戻し、OSのDNSキャッシュを削除して古い記録の影響を除外します。fake-ipを使用している場合は対象プログラムとの互換性を確認し、LAN機器、プリンター、特殊なドメインをフィルター対象外に追加してください。nameserverとfallbackへ現在のネットワークからアクセスできることも確認します。特定のドメインだけに問題がある場合は、DNSログとルールのヒット結果を確認し、複数のDNSサーバーを同時に変更しないでください。
TUNを有効にした後、システム全体がネットワークに接続できなくなった場合は?
まずTUNを無効にしてクライアントを終了し、ダイレクト接続が復旧するか確認します。次にTUNスタック、自動ルート、DNSハイジャックの設定を確認し、他の仮想ネットワークアダプター、VPN、通信フィルターソフト、仮想マシンのネットワークを一時的に無効にします。クライアントの異常終了後にルートが戻らない場合は、システムを再起動して残存ルートを削除します。再有効化する際は、まず既定設定でテストし、その後カスタム項目を一つずつ戻してください。
ローカルポートが使用中と表示された場合の対処法は?
ポートの競合は、別のプロキシクライアント、古いプロセス、またはClashの重複起動によって発生することが多いです。まず関連プログラムを完全に終了し、OSのネットワークツールでmixed-port、port、socks-portを使用しているプロセスを探します。競合プロセスを終了するか、Clashを未使用のポートへ変更してください。変更後は、システムプロキシ、ブラウザー、ターミナルの環境変数に設定されたポートも更新します。
設定を有効にすると接続が繰り返し切断されたり、ノードが頻繁に切り替わったりする場合は?
まず現在のプロキシグループが自動速度テストやフォールバックを使っているか、検出間隔が短すぎないかを確認します。ネットワークの揺らぎによって複数ノードの順位が何度も変わり、接続の再確立が発生することがあります。一時的に安定したノードを手動選択し、問題が解消するか確認してください。同時に、ヘルスチェックURL、タイムアウトしきい値、クライアントログも確認します。固定したノードでも切断する場合は、ローカルネットワーク、システムのスリープ、サーバーの状態を調べます。
問題を特定できない場合
まず使い方のページで基本操作を確認し、次にインストール大全でOSごとの権限、ネットワークインターフェース、プラットフォーム固有の設定を確認してください。クライアントを変更する場合は、ダウンロードページでプラットフォーム別の選択肢を確認できます。