Clash よくある質問とトラブル対処
コア、サブスクリプション、ノード、システムプロキシ、TUN、DNS、Windowsのループバック制限を網羅しています。まず障害がどの層で発生しているかを確認し、該当する設定を変更してください。
基礎知識
まずコア、クライアント、サブスクリプション、プロキシモードを区別しましょう。概念を混同すると、障害の原因を誤った場所に求めてしまいます。
Clash、mihomoコア、GUIクライアントの関係とは?
mihomoは、設定の読み込み、プロキシ接続の確立、ルールによるトラフィックの振り分け、DNS処理を担うコアです。Clash Plus、Clash Verge Rev、FlClashなどのGUIクライアントは、コアの外側でサブスクリプション管理、ノード選択、ログ確認、システムプロキシの切り替えを提供します。トラブル時は画面の不具合とコアのエラーを分けて考えましょう。画面が開いてもコアが起動しているとは限らず、コアが正常に起動してもシステムの通信が必ずプロキシを通るとは限りません。
サブスクリプションURLはどこで入手できますか?クライアントがノードを自動で提供しますか?
クライアント自体がサブスクリプションURLを生成したり、利用可能なノードを内蔵したりすることはありません。サブスクリプションURLは通常、利用中のネットワークサービス事業者から提供され、アカウント状態、回線、通信量の管理も事業者が行います。導入前に、コピーしたものが完全なサブスクリプションURLであり、WebページのURL、注文番号、単一ノード名ではないことを確認してください。更新料金、アカウント停止、回線メンテナンスについては、該当するサービス事業者に確認する必要があります。
ルール、グローバル、ダイレクトのどれを選べばよいですか?
普段はルールモードを選ぶのが一般的です。通信は設定内のルールに上から順に照合され、プロキシ、ダイレクト、拒否の各ポリシーへ振り分けられます。グローバルモードでは、ほとんどの接続を現在選択しているプロキシノードへ渡すため、ルールがアクセス障害の原因かどうかを一時的に切り分けるのに適しています。ダイレクトモードは、プロキシの効果を停止したり比較テストを行ったりする際に使います。モードを切り替えても、無効なノードが直るわけではなく、サブスクリプション内のルールが自動的に変わることもありません。
システムプロキシとTUNモードの違いは何ですか?
システムプロキシは、OSのHTTPまたはSOCKSプロキシ設定に従うアプリの通信を引き受けます。設定が簡単で、ブラウザーや一般的なデスクトップソフトに適しています。TUNモードは仮想ネットワークインターフェースを作成し、より低い層で通信を処理します。システムプロキシを参照しないアプリ、一部のゲーム、コマンドラインツールにも適用できますが、通常は管理者権限が必要で、他のVPN、仮想NIC、セキュリティソフトと競合する場合があります。
導入と設定
サブスクリプションの導入、設定の解析、ポートの待ち受けは接続前に行われます。ここで発生したエラーを先に解決してこそ、ノードテストを正しく判断できます。
サブスクリプションを導入したのにノードが1つも表示されないのはなぜですか?
まず設定またはサブスクリプションの画面を開き、手動で更新を実行して、ノード一覧だけでなく更新結果を確認してください。それでも空の場合は、URLの先頭や末尾に空白がないか、コピーした内容が完全か、サブスクリプションの期限が切れていないか、現在のネットワークからURLへアクセスできるかを確認します。サーバーがログインページ、エラーページ、空の設定を返している可能性もあります。Web管理画面のURLをそのままサブスクリプションURLとして導入しないでください。通常、両者は別のリンクです。
サブスクリプションの更新に失敗したり、接続がタイムアウトしたりするときは?
まずブラウザーでサブスクリプションURLを開き、設定内容が返るか、ダウンロードが始まるかを確認します。ブラウザーでもアクセスできない場合は、ネットワーク、アカウント状態、サーバーの稼働状況を確認してください。ブラウザーではアクセスできるのにクライアントだけ失敗する場合は、システムプロキシとTUNを一時的に無効にして再試行し、更新リクエストが古い設定を経由し続ける状態を避けます。その後、クライアントの時刻、プロキシポート、証明書関連のエラーを確認してください。ログのステータスコードとエラー行を残しておくと、タイムアウト、接続拒否、認証失敗の判別に役立ちます。
設定ファイルのYAML解析エラーはどのように特定できますか?
YAMLはインデントで階層を表すため、スペースを使い、同じ階層ではインデント幅を統一してください。タブは使えません。まずログに示された行番号を確認し、その行から上に向かって、コロンの不足、リスト項目のハイフン位置、閉じていない引用符、重複したキー名などを調べます。手動で修正する前に元ファイルのコピーを保存してください。サブスクリプション更新が原因なら、生成された長い内容を1行ずつ推測して直すのではなく、設定を再ダウンロードします。
起動時にaddress already in useと表示されたり、ポートが使用中になったりするときは?
mixed-port、port、socks-port、またはコントロールポートを別のプロセスが待ち受けていることを示します。まず重複起動しているClashクライアントを終了し、タスクマネージャーやシステムプロセスにコアの残骸が残っていないか確認してください。Windowsではnetstat -anoで待ち受けポートのプロセスIDを調べ、macOSとLinuxではlsof -iで使用中のプロセスを確認できます。解放できない場合は、設定の待ち受けポートを未使用の値に変更し、プロキシポートを手動入力しているアプリも更新してください。
使い方のコツ
ノードが使えることは出発点にすぎません。通信がコアを通るかどうかは、アプリのプロキシ方式、システム権限、DNS、ルールの照合結果にも左右されます。
すべてのノードがタイムアウトするとき、まず何を確認すべきですか?
まずサブスクリプションを更新し、この端末の基本的なネットワークが正常であることを確認してから、誤判定を避けるため1つのノードだけをテストします。時刻のずれはTLS接続失敗の原因になるため、システム時刻が正確か確認してください。続いて会社のネットワークからスマートフォンのテザリングへ切り替えるなど、別のネットワークでローカル環境の制限を切り分けます。異なるネットワークでもすべてのノードがタイムアウトするなら、サブスクリプションの回線またはアカウント状態が原因の可能性が高くなります。一部のノードだけなら、その回線を避ければ対応できます。
システムプロキシを有効にしても、ブラウザーが直接接続するときは?
まずクライアントのコアが実行中で、現在のプロキシグループに利用可能なノードが選択されていることを確認します。次に、OSのプロキシアドレスがこの端末の正しいポートを指しているか確認してください。ブラウザーのプロキシ拡張機能、企業ポリシー、手動プロキシ設定がシステムプロキシを上書きする場合があるため、一時的に無効にして再テストします。出口アドレスを表示するページにアクセスして比較する方法もありますが、クライアントのボタン表示だけで判断しないでください。ブラウザーがシステムプロキシを明確に無視する場合は、ブラウザー独自のプロキシ設定を使うか、TUNモードを検討します。
TUNモードの有効化で権限不足と表示された場合はどうすればよいですか?
TUNは仮想ネットワークインターフェースを作成してルーティングを変更するため、Windowsでは通常、クライアントを管理者として起動する必要があります。macOSではシステムパスワードの入力やネットワーク拡張機能の許可を求められることがあり、Linuxでは適切なネットワーク管理権限が必要です。許可後も失敗する場合は、古い仮想NIC、他のVPN、コンテナネットワーク、セキュリティソフトがインターフェースを使用していないか確認してください。競合するプログラムを終了してからクライアントを再起動し、デフォルトルートを変更するツールを複数同時に有効にしないでください。
Fake-IPでLAN機器や特定のWebサイトに問題が起きるときは?
Fake-IPはドメインにマッピングされたアドレスを返し、コアが後からドメインを復元してルールを適用します。実際のDNS応答に依存するLANサービス、プリンター検出、企業内ネットワーク、一部のアプリでは問題が起きる場合があります。まず問題がFake-IPモードでのみ発生することを確認し、該当ドメインをfake-ip-filterへ追加するか、LANドメインにダイレクトDNSとダイレクトルールを設定します。範囲の広すぎるワイルドカードを直接追加すると、ドメインルールの照合精度が下がり、DNSリークのリスクも高まるため避けてください。
トラブル対処
基本ネットワークからアプリの通信入口まで、層ごとに範囲を絞り込みます。一度に変更する項目は1つにし、ログに記録された最初のエラーを確認してください。後続の連鎖的なエラーより、原因の手がかりになります。
Clashは接続済みなのに、すべてのWebページを開けないときは?
通信経路を層ごとに確認します。まずプロキシを無効にして基本ネットワークが使えることを確認し、次にコアを起動しますがシステムプロキシは有効にしません。その後、テスト済みのノードを1つ選び、最後にシステムプロキシまたはTUNを有効にします。プロキシを有効にした直後に通信できなくなった場合は、ログでDNS失敗、接続拒否、誤ったプロキシグループへの振り分けのどれかを確認してください。待ち受けポートの競合、設定の読み込み成功、他のVPNの一時停止も確認します。段階的に有効化するほうが、何度も再インストールするより原因を特定しやすくなります。
WindowsのUWPアプリやストアアプリがClashのプロキシを使わないときは?
一部のUWPアプリはWindowsのループバック制限により、ローカルのループバックアドレスで待ち受けるプロキシへ直接アクセスできません。そのためブラウザーは正常でも、ストアアプリだけ接続に失敗することがあります。クライアント付属のUWPループバックツールで対象アプリにチェックを入れて除外を保存するか、WindowsのCheckNetIsolationで該当パッケージを処理してください。完了後はアプリを完全に終了してから再起動します。TUNでアプリが通信できるようになった場合は、通常ループバックの除外設定を重ねて行う必要はありません。
ブラウザーは使えるのに、コマンドラインやゲームなどのアプリが通信できないときは?
ブラウザーがシステムプロキシを読み込んでいる、またはプロキシ拡張機能を使っている一方で、他のプログラムが同じ設定を採用していない可能性があります。コマンドラインツールではHTTP_PROXY、HTTPS_PROXY、またはSOCKSアドレスを個別に設定する必要がある場合があります。ゲームや一部のデスクトップソフトはダイレクト接続しか対応しないこともあります。まずアプリ自体にプロキシ設定があるか確認し、なければTUNで通信を引き受けます。さらに、ルールがそのアプリのアクセス先ドメインやIPを誤ってダイレクトまたは拒否へ振り分けていないか確認してください。
PCのスリープ復帰やネットワーク切り替え後にプロキシが使えなくなった場合の復旧方法は?
スリープからの復帰、Wi-Fiの切り替え、有線ネットワークの再接続によって、インターフェース、DNS、デフォルトルートが変わり、TUNやシステムプロキシが古い状態を保持することがあります。まずシステムプロキシとTUNを無効にし、ネットワークが復旧してから再度有効にしてください。それでも直らない場合は、ウィンドウを閉じるだけでなくコアを再起動します。現在の設定が選択されたままか確認し、ノードを再テストしてください。頻発する場合はクライアントを更新し、複数のネットワーク管理ツールが同時にルートを制御しないようにします。復帰後にサブスクリプションとDNSを手動で更新する方法もあります。