CLASH設定ガイド・よくある質問
Clashのよくある質問とトラブル対処。
サブスクリプションの取り込みから設定、接続確認まで、症状に合わせて確認箇所を見つけられます。原因を調べるときは設定を一度に1つだけ変更し、元の設定を残したうえで接続ログを確認してください。
基礎知識
クライアント、コア、サブスクリプション、通信の取り込み方式の違いを確認してから、変更する設定を選びましょう。質問をクリックすると回答が開きます。
Clash、mihomo、GUIクライアントの違いは?
Clashはもともと、プロキシ接続とルールによる通信の振り分けを担うコアでした。mihomoはClash.Metaから発展したコアプロジェクトです。GUIクライアントには、サブスクリプション管理やモード切り替え、システム通信の取り込みなどを操作する画面が用意されています。クライアント名が似ていても、同じコアを使っているとは限らず、対応する設定項目も異なります。トラブル対処の前に、「バージョン情報」やコア情報の画面でクライアント名、コア名、バージョンを確認し、それぞれのドキュメントと照らし合わせてください。古い設定で未対応の項目が見つかった場合は、クライアントを何度も再インストールするのではなく、まずコアとの互換性を確認しましょう。
Clashクライアントをインストールしたのに、サブスクリプションも必要なのはなぜ?
クライアントは設定を読み込んで接続を確立するもので、インストールしただけではプロキシサービスを利用できません。サブスクリプションは通常、サービス提供元から発行され、ノードやプロキシグループ、ルールなどが含まれています。クライアント側で変換が必要なノード情報だけが提供される場合もあります。インポートする前にサービスが有効か、形式がクライアントに対応しているかを確認し、リンクを安全に保管してください。リンクに含まれる識別情報を使って、第三者がサブスクリプションにアクセスできる場合があります。有効なノードがなくローカルルールしかない状態では、システムプロキシを有効にしてもプロキシ経由で通信できません。サブスクリプションリンクを公開コメントやスクリーンショットに載せたり、見知らぬ変換サイトに入力したりしないでください。
ルール・グローバル・ダイレクトの各モードは、どんなときに使う?
ルールモードは、現在の設定にあるルールの照合順に沿って接続先を決めるため、普段使いに適しています。グローバルモードでは、コアに届いた接続をグローバルプロキシグループで処理するため、短時間の比較テストに便利です。ダイレクトモードでは、コアに届いた接続が宛先へ直接アクセスします。グローバルモードにしても、端末全体の通信が取り込まれるわけではありません。システムプロキシを使わず、TUNにも取り込まれていないアプリは、コアを経由せず通信することがあります。グローバルモードを試す際は、グローバルプロキシグループで有効なノードを選択してください。比較が終わったらルールモードに戻し、接続ログを見ながらルールを調整しましょう。
システムプロキシとTUNの違いは?両方を有効にする必要はある?
システムプロキシは、OSのプロキシ設定に従うアプリにローカルのプロキシ接続先を提供します。まずブラウザーで動作確認するときに便利です。TUNは仮想ネットワークインターフェースを使って、ルーティング条件に合う通信を取り込みます。システムプロキシ設定を参照しないアプリでよく使われます。初めて設定するときは、まずシステムプロキシで動作を確認し、必要に応じてTUNを有効にしましょう。複数の設定を同時に変えると原因を切り分けにくくなります。両方を有効にできるクライアントもありますが、実際の動作はルーティングやバイパス設定によって異なります。有効にする項目が多いほど通信を網羅できるとは限りません。通信が途切れる、接続がループする、アプリと競合するといった場合は、ほかのプロキシツールを終了し、取り込み方式を1つだけにして再確認してください。
インストールと設定
サブスクリプションの取り込み、設定の有効化、通信の取り込みの順に確認しましょう。設定のダウンロード成功と接続確認の成功は別です。
Clashのサブスクリプションリンクはどこからインポートし、何を確認すればいい?
クライアントの「設定」「サブスクリプション」「Profiles」などの画面でリモート設定を追加し、サービス提供元から案内されたリンクを省略せずに貼り付けて保存します。ダウンロードが完了したら、現在の設定として選択してください。ボタン名はクライアントによって異なりますが、サブスクリプションの追加と有効化は別の操作です。リストに表示されただけでは、コアに読み込まれたとは限りません。次に、プロキシグループが表示されるか、ノードを選択できるか、ログに解析エラーがないかを確認してから、システムプロキシを有効にして接続をテストします。YAMLの解析エラーが表示された場合は、取得した内容がログインページやエラーページではないか、またはサブスクリプション形式の変換が必要ではないかを確認してください。
Clashのサブスクリプションを更新できない、または無効と表示される場合の確認手順は?
まず端末がインターネットに接続できるか、システム時刻が正しいかを確認します。次にサービス提供元のアカウントページで、サブスクリプションの有効期限や通信量、リンクが再発行されていないかを確認してください。その後、更新ログを確認します。401や403は認証やアクセス制限、404はURLの変更が原因の可能性があります。タイムアウトする場合は、サブスクリプションのドメインへの接続経路を確認しましょう。クライアントにプロキシ経由で更新する設定がある場合、利用可能なノードがあれば比較テストできます。使えるノードがない場合は、サブスクリプションにアクセスできる別のネットワークを試してください。古い設定を残したまま再試行し、最初からすべてのノードを削除するのは避けましょう。公開の場で質問するときは、サブスクリプションURLとパラメーターを必ず隠してください。
TUNを有効にすると権限不足や仮想ネットワークインターフェースの作成エラーが出る場合は?
まずTUNを無効にし、現在のクライアントが使用中のOSで仮想ネットワークインターフェースによる通信の取り込みに対応しているか確認します。そのうえで、クライアントの案内に従ってサービスモードをインストールするか、補助コンポーネントを許可してください。Windowsではサービスのインストールに管理者権限が必要なことが多く、macOSでは補助ツールやネットワーク拡張の承認が必要な場合があります。AndroidではOSのVPN接続許可を確認してください。ほかのVPNや古いサービス、セキュリティソフトが干渉している場合も作成に失敗することがあります。最初に表示された具体的なエラーを確認し、許可操作を何度も繰り返さないでください。必要に応じてほかのVPNを終了し、サービスを再起動します。権限を修正したら、まず既定のTUN設定で試してください。それでも失敗する場合は、仮想ネットワークインターフェースのドライバーとOSの対応状況を確認しましょう。
システムプロキシを有効にしてもブラウザーがClashを経由しない場合、どこを確認すればいい?
まずクライアントのコアが起動していることを確認し、システムプロキシに設定されたローカルアドレスとポートが現在の設定と一致しているか確認します。よく使われる混合ポートは7890ですが、実際の設定を優先してください。次に、ブラウザーのプロキシ拡張機能、ほかのプロキシクライアント、自動プロキシスクリプトを終了します。ブラウザーを開き直してアクセスし、クライアントの接続ログを確認してください。ログに記録がなければ、リクエストがそのプロキシ接続先に届いていない可能性があります。記録があるのにダイレクト接続になる場合は、適用されたルールとプロキシグループを確認します。ブラウザーやアプリによっては独自のプロキシ設定を使うため、個別の設定が必要です。システムプロキシのスイッチだけでは、すべてのアプリの接続経路は判断できません。
使い方
速度テスト、ルール、自動更新にはそれぞれ適用範囲があります。設定が有効かどうかは、実際のリクエストとログで確認しましょう。
ノードの遅延テストには数値が出るのに、Webページを開けないのはなぜ?
遅延テストで確認できるのは、テスト時に指定された確認先へのリクエストが完了したことだけです。接続先のWebサイトや、すべてのポート・プロトコルが利用できるとは限りません。まずノードを1つ固定し、アクセスできることが分かっているWebページを開いてから、問題のWebサイトを試します。接続ログでドメイン、ルール、プロキシグループ、エラー内容も確認してください。特定のサイトだけ開けない場合は、接続先の制限、DNS、ルールを優先して確認します。すべてのサイトに接続できない場合は、通信の取り込み方法とノードの認証を確認しましょう。遅延の数値をダウンロード速度と混同しないでください。また、ノードを一斉に何度もテストしてすぐに結果を比較するのも避けましょう。短時間にテストを集中させると、接続が混雑したり、サーバー側でアクセスが制限されたりすることがあります。
カスタムルールはどこに追加する?サブスクリプション更新後に消えるのはなぜ?
リモートサブスクリプションでは、更新時にダウンロードした設定ファイルが置き換わることが一般的です。そのファイルを直接編集すると、変更が上書きされる可能性があります。クライアントに上書き設定、設定のマージ、拡張スクリプトなどの機能があれば、それを使い、ローカルルールとサブスクリプションの内容を分けて管理しましょう。ルールは通常、記述順に照合されます。特定ドメイン向けのルールは、より広範なルールや最後のフォールバックルールより前に置き、参照先のプロキシグループが存在することも確認してください。変更後に設定を再読み込みし、接続ログで実際に適用されたルールを確認します。エディターで保存できただけでは不十分です。マージ順、項目の型、プロキシグループ名が間違っていると、ルールが適用されなかったり、設定の読み込みに失敗したりします。
サブスクリプションの自動更新を設定するには?更新頻度は高いほどいい?
クライアントのサブスクリプション設定で定期更新を有効にし、サービス提供元の推奨に合わせて間隔を設定します。設定にproxy-providersを使用している場合は、クライアントによるサブスクリプション全体の更新と、コアによるノードプロバイダーの更新を区別してください。これは別々の処理です。更新間隔が短すぎると、ネットワークリクエストやモバイル端末のバッテリー消費が増え、サブスクリプションサービスのアクセス制限にかかる可能性もあります。変更後は最終更新時刻とログを見て、更新が完了したことを確認してください。端末がスリープ中だったり、スマートフォンのバックグラウンド動作が制限されていたりすると、定期更新が遅れることがあります。ノードに変更があった場合は手動で一度更新すれば十分です。リアルタイム性を求めて、更新間隔を常に短くする必要はありません。
スマートフォンをロックすると接続が切れる、またはバッテリー消費が増える場合の調整方法は?
まず、OSがバックグラウンドプロセスを終了しているのか、Wi-Fiからモバイルデータ通信に切り替わった後に接続が復帰しないのかを切り分けます。Androidでは、OSの設定で必要なバックグラウンド動作を許可し、ほかのVPNが接続を奪っていないか確認してください。iOSでは、クライアントが対応しているオンデマンド接続の設定を試します。バッテリー消費が増えた場合は、頻繁な速度テストや、サブスクリプション・ルールセットの過度な更新を減らし、同じネットワークと使用時間で変化を見ましょう。バッテリー制限をすべて解除したり、常時接続の設定をすべて有効にしたりするのは避けてください。実際に必要な設定だけを残し、OSのバッテリー使用状況から、消費の原因がクライアント、ほかのアプリ、または電波状況の変動のどれかを確認します。
トラブル対処
まず、問題が1つのWebサイト、1つのアプリ、1台の端末、すべてのネットワークのどこまで起きているか確認しましょう。範囲が分かると原因を絞り込みやすくなります。
Clashのノードがすべてタイムアウトする場合、ノード側と端末側の問題をどう切り分ける?
まずプロキシを無効にして、通常のネットワーク接続が使えることを確認します。次に、サブスクリプションの有効期限、ノード一覧が更新された直後かどうか、端末の時刻が正しいかを確認してください。ノードを1つ選んで接続ログを確認し、ドメインの名前解決失敗、認証失敗、接続拒否、応答待ちのタイムアウトを区別します。エラーごとに対処方法が異なります。次に、別のネットワークから同じノードを試すか、同じネットワークから利用可能と分かっている別のノードを試してください。一度に変える条件は1つだけにします。この端末だけで失敗する場合は、ファイアウォール、ほかのVPN、ローカルポートを確認します。複数の端末とネットワークで失敗する場合は、クライアントを何度も入れ替えるのではなく、サービス提供元にノードの状態を確認しましょう。
Microsoft StoreなどのUWPアプリがネットにつながらない場合、ループバック制限を確認するには?
まず通常のブラウザーがシステムプロキシ経由でアクセスできることを確認し、特定のUWPアプリだけで問題が起きるかを調べます。一部のUWPアプリはネットワーク分離ポリシーの影響で、ローカルのプロキシ接続先に接続できません。クライアントにUWPループバックの除外ツールがある場合は、案内に従って管理者権限を許可し、必要なアプリだけを対象にしてください。その後、アプリを完全に終了してから開き直します。関係のないアプリまでまとめて変更したり、Microsoft Storeの接続エラーをすべてループバックの問題と決めつけたりしないでください。それでも解決しない場合は、システム時刻、アカウントの状態、接続ログを確認します。クライアントが対応していれば、TUNによる通信の取り込みも比較テストできます。
fake-ipを有効にすると一部のWebサイトやLAN内の機器にアクセスできない場合は?
まず、問題がLAN内のドメイン名、プリンター、または実際の名前解決結果を必要とするアプリだけで起きているか確認します。fake-ipが返すのは、ドメイン名との対応付けに使う仮想アドレスです。通常のインターネット上のアドレスと同じようには扱えません。重要なのは、その後の接続も同じコアで正しく処理されることです。DNSのリクエストが実際にクライアントを経由しているか、TUNのルートに漏れがないか、ほかの暗号化DNSが設定を迂回していないかを確認してください。互換性のないドメインには、現在のコアの構文に従ってfake-ip-filterを追加するか、適切な名前解決方法を設定できます。変更後はOSとアプリのDNSキャッシュを消去し、影響を受けるアプリを再起動してからテストします。古いキャッシュを新しい設定の不具合と取り違えないようにしましょう。
Clashを終了したら端末全体がネットにつながらなくなった場合、どう復旧する?
まずOSのネットワーク設定を開き、ローカルアドレスを指す手動プロキシ設定が残っていないか確認してください。クライアントの終了後にローカルの待ち受けが停止すると、残ったプロキシ設定に従うアプリは接続できなくなります。使わなくなったプロキシ設定を無効にし、TUNの仮想ネットワークインターフェースや補助サービスが動作し続けていないかも確認します。以前DNSを手動で変更した場合は、元のネットワーク設定に戻すか自動取得にしてから再接続してください。企業ネットワークや固定IPなどの設定が消えるおそれがあるため、最初からネットワーク設定全体をリセットするのは避けましょう。復旧後はクライアントを起動し、通信の取り込みを無効にしてから終了する手順で再テストします。異常終了や複数のツールの競合が原因かどうかを確認してください。