clash / オープンソースハブ / faq
よくある質問
20の質問と回答を4つのカテゴリーに分けて整理:概念はまず明確に、導入はプラットフォーム別に、テクニックはコマンド付きで、エラーは順番通りに切り分けます。折りたたみ項目はクリックで展開、カテゴリーナビからも直接移動できます。ここで解決しない場合は完全ドキュメントまたは入門ガイドをご覧ください。
faq/basic.md
基礎知識
Clash と mihomo コアの関係は?
Clash はルールベースのプロキシツールの総称です。オリジナルの Clash コアは2023年に開発が停止し、現在活発に開発が続く後継コアが
mihomo(旧名 Clash Meta)です。既存の設定形式と互換性を保ちつつ、より多くのプロトコルに対応しています。普段使う Clash Verge Rev、FlClash などの GUI クライアントは、実質的に mihomo コアに画面を被せたもので、サブスクリプション管理・ノード切り替え・システムプロキシ設定を担います。ルールモード・グローバルモード・ダイレクトモードの違いは?
ルールモード(Rule)は設定内のルールを1件ずつ照合し、マッチした条件に従って振り分ける、普段使いに推奨されるモードです。グローバルモード(Global)は全通信を現在選択中のノードに送り、振り分けを行わないため、一時的なテストによく使われます。ダイレクトモード(Direct)は全通信がどのノードも経由せず直接送信され、プロキシを一時停止した状態と同じです。3つのモードはクライアントのメイン画面で切り替え可能で、即時反映され再起動は不要です。
クライアントの種類が多すぎる、どれを入れればいい?
まず Clash Plus がおすすめです。全プラットフォームに対応し、メンテナンスも活発です。Clash Verge Rev と FlClash も定番の選択肢で、コアは同じ mihomo のため設定を共通利用でき、クライアントを乗り換えてもサブスクリプションの変更は不要です。Clash for Windows と ClashX Meta は開発が停止しアーカイブとして残されているのみなので、新規インストールは推奨しません。各クライアントの適用範囲とインストーラーはダウンロードページをご覧ください。
サブスクリプションリンクとは?なくても使える?
サブスクリプションリンクはサービス提供者が生成する HTTP(S) アドレスで、アクセスするとノードとルールを含む設定内容が返ってきます。クライアントが定期的にこのアドレスを取得することで、ノード一覧が自動更新されます。サブスクリプションがない場合でも、ローカルの
config.yaml ファイルを手動で読み込んだり、設定内に自前で用意したノードの接続パラメータを1件ずつ入力したりできるため、クライアントの機能自体は制限されません。config.yaml には何が書かれている?手書きする必要はある?
config.yaml はコアの唯一の設定ソースで、主にポート(
mixed-port)、動作モード(mode)、DNS、ノード(proxies)、ポリシーグループ(proxy-groups)、ルール(rules)の6つの要素で構成されます。サブスクリプションを使う場合、このファイルはサブスクリプション内容から生成されるため手書きは不要です。カスタムルールの追加やポート変更といった高度な用途のときだけ手動編集し、保存後にクライアント側で設定を再読み込みすれば反映されます。
faq/install.md
導入設定
Windows でインストール後、プロキシが有効になっているか確認する方法は?
3ステップで確認します。1つ目、クライアント内でシステムプロキシのスイッチをオンにする。2つ目、Windows の設定の「ネットワークとインターネット」内のプロキシページを開き、手動プロキシが
127.0.0.1:7890 を指しているか確認する。3つ目、クライアントの接続またはログページで任意のWebページを更新し、新しい接続記録が表示されれば通信がコアを経由していることになります。3つとも問題ないのにページが開かない場合は、トラブル解決カテゴリーの質問を参照してください。macOS で「開発元が未確認のため開けません」と表示される場合は?
これは Gatekeeper による App Store 外アプリへのデフォルトのブロックです。対処方法:システム設定の「プライバシーとセキュリティ」を開き、ページ下部にあるブロック済みの通知から「このまま開く」をクリックする。あるいはターミナルで
xattr -cr /Applications/クライアント名.app を実行して隔離属性を解除してから再起動してください。Apple Silicon と Intel 搭載機はチップの種類に合わせたインストーラーをダウンロードしてください。アーキテクチャを誤ると起動できません。Android で初回起動時に必要な権限は?
2つあります。1つ目は VPN 接続権限です。Android 版クライアントは VpnService を通じて通信を制御するため、初回起動時にシステムの許可ダイアログが表示されたら必ず許可してください。2つ目はバックグラウンド動作とバッテリー最適化の除外設定です。MIUI や ColorOS などの国産 ROM はデフォルトでバックグラウンドプロセスを強制終了するため、システム設定でクライアントを自動起動許可とバッテリー最適化対象外に追加してください。設定しないと画面ロック後しばらくでプロキシが切断されます。
iOS ではどうやってインストールする?
iOS では App Store から Clash Plus をインストールします。ストアで検索するか、ダウンロードページの iOS 欄のストアリンクから直接アクセスできます。初回起動時はシステムのポップアップで VPN 設定の追加を許可する必要があり、その後アプリ内でサブスクリプションを読み込めば利用できます。
設定ファイルはどのディレクトリに保存される?
Windows では通常
%USERPROFILE%\.config\ 内のクライアント用ディレクトリ、またはインストールディレクトリ内の profiles サブディレクトリです。macOS では ~/Library/Application Support/クライアント名/、Linux では ~/.config/クライアント名/ です。各クライアントの設定ページには「設定ディレクトリを開く」という項目が用意されているので、パスが分からない場合は画面から開くのが確実です。
faq/usage.md
活用テクニック
ノードの遅延はどう測る?数値の意味は?
プロキシページでポリシーグループ右上の測定アイコンをクリックすると、クライアントは設定内の測定用アドレス(デフォルトは多くの場合
http://www.gstatic.com/generate_204)へ HTTP リクエストを1回送信します。表示されるミリ秒数はリクエストの往復にかかった時間です。数値は現在の通信状況を反映しているだけで、数十〜300ミリ秒程度なら利用可能な範囲です。timeout と表示された場合のみ、そのノードが現在到達不能であることを意味します。TUN モードはいつ有効にすればいい?
システムプロキシはプロキシ設定を明示的に読み取るアプリケーションにしか適用できず、コマンドラインツール、ゲーム、一部のクライアントソフトはこの仕組みに従いません。TUN モードは仮想ネットワークカードを作成し、ネットワーク層で全通信を制御するため、アプリ側の対応は不要です。ただし要求される権限は高くなります:Windows では管理者権限での実行またはシステムサービスのインストールが必要、macOS と Linux では root 権限が必要です。普段のブラウジングはシステムプロキシで十分で、プロキシを経由しないプログラムに遭遇したときだけ TUN を有効にしてください。
特定のサイトを強制的にダイレクト接続にしたい、ルールはどう書く?
在
rules リストの最上部に DOMAIN-SUFFIX,example.com,DIRECT を1行追加すれば実現できます。強制的にプロキシを経由させたい場合は DIRECT をポリシーグループ名に置き換えてください。ルールは上から順に照合され、最初にマッチした条件が適用されるため、カスタム項目はサブスクリプションに付属するルールより前に配置する必要があります。Clash Verge Rev ではグローバル拡張設定の prepend 記法で追加すれば、サブスクリプション更新時に上書きされるのを避けられます。サブスクリプションを自動更新に設定するには?
各クライアントのサブスクリプションまたは設定ページには更新間隔の設定項目があります。よくある方法はサブスクリプション項目を編集し、更新間隔に
1440 分(=1日に1回)を入力することです。設定ファイルの proxy-provider 内で interval フィールドを設定することもできます。更新に失敗しても既存のノードには影響せず、クライアントはローカルにキャッシュされた前回の設定を使い続けます。mixed-port 7890 とは何?コマンドラインツールをプロキシ経由にするには?
mixed-port はコアがリッスンする混合ポートで、HTTP と SOCKS5 の両プロトコルを同時に受け付け、デフォルトは 7890 です。コマンドラインツールを最も簡単にプロキシ経由にする方法は環境変数の設定です:export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890。設定後は git、curl、pip などが自動的に読み込みます。環境変数は現在のターミナルセッションにのみ有効なので、長期的に有効にしたい場合は shell の設定ファイルに記述してください。
faq/debug.md
トラブル解決
サブスクリプション更新失敗や読み込みエラーはどう切り分ける?
順番に確認します。1つ目、サブスクリプションリンクをブラウザに直接貼り付けて開き、base64 または YAML 形式のテキストが返るか確認します。エラーページが表示される場合はリンクが無効か期限切れなので、提供元にリセットを依頼してください。2つ目、正常に返るのにクライアントが解析エラーを出す場合は形式の不一致が多いので、サブスクリプションが他クライアント専用形式ではなく Clash 形式であることを確認し、必要であればサブスクリプション変換サービスで Clash 形式に変換してください。3つ目、更新リクエスト自体が無効なノードを経由してタイムアウトしている場合は、更新方式をダイレクト更新に切り替えて再試行してください。
プロキシのスイッチはオンなのに、Webページが開けない?
簡単な項目から順に確認します:現在のノードの遅延を測定し、タイムアウトしていればノードを切り替える;グローバルモードに切り替えてルールの誤判定を除外する;システムプロキシのポートと
mixed-port が一致しているか確認する(デフォルトはどちらも 7890);ブラウザに SwitchyOmega などのプロキシ拡張機能が入っている場合は先に無効化し、二重プロキシの競合を避ける;ログページに大量の DNS エラーが出ている場合は、設定の dns セクションで fallback を有効にする。順番に確認していけば問題の箇所をほぼ特定できます。起動時に bind: address already in use と表示される場合は?
7890 ポートが他のプログラムに使われていることを示しています。別のプロキシクライアントを同時に起動している、または前回のプロセスが正しく終了していない場合によく起こります。特定方法:Windows では
netstat -ano | findstr 7890 を実行して PID を確認し、タスクマネージャーでプロセスを終了します。macOS と Linux では lsof -i :7890 を実行します。プロセスを終了しづらい場合は、クライアントの設定で mixed-port を 7891 など空いているポートに変更すれば、システムプロキシのポートも自動的に追従します。システムプロキシは有効なのに、ストアアプリや一部のソフトがプロキシを経由しない?
Windows の UWP アプリはデフォルトでローカルループバックアドレスへの接続が禁止されているため、システムプロキシが適用されません。解決策は2つあります。1つ目は管理者権限で
CheckNetIsolation LoopbackExempt -a -n=パッケージ名 を実行して個別のアプリを許可する方法で、一部のクライアントの設定には UWP ループバック除外ツールが内蔵されています。2つ目は TUN モードを有効にし、ネットワーク層で通信を制御することでループバックに依存しない方法です。UWP 以外のソフトがプロキシを経由しない場合は、そのソフト自身に独立したプロキシ設定があることが多いので、ソフト側で 127.0.0.1:7890 を手動指定してください。ノード一覧が全てタイムアウトと表示される?
一覧全体がタイムアウトする場合、単一ノードの問題であることは少ないです。まずダイレクトモードに切り替えて本体のネットワークが正常か確認します。次にサブスクリプションが期限切れになっていないか確認します。トラフィックを使い切ったり期限が切れたりするとサーバー側が全接続を拒否します。測定用アドレスが汚染されていても全滅表示になるため、測定用 URL を
http://cp.cloudflare.com/generate_204 に変更して再測定してください。システム時刻のずれが大きいと一部の暗号化プロトコルのハンドシェイクが失敗するため、時刻を補正してから再試行してください。