Clash初心者向けFAQ 10選:サブスクリプションの追加、ルールモードとグローバルモード、Webページが開けない場合
Clash初心者がつまずきやすい10の疑問を解説。サブスクリプションの入手先、ルールモードとグローバルモードの選び方、システムプロキシとTUNの違い、接続済みなのにWebページが開けない場合の確認方法を紹介します。
1. Clashクライアント、コア、サブスクリプションとは?
クライアントは操作画面、コアは接続処理、サブスクリプションはノードや設定を提供します。クライアントをインストールしただけでは、実行環境が整ったにすぎず、利用可能なプロキシサービスを使えるわけではありません。まずこの3つの役割を区別すれば、以降のトラブルを切り分けやすくなります。
- GUIクライアント:Clash Verge Revなど。サブスクリプションの管理、ポリシーの選択、ログの確認、システムプロキシの切り替えなどを画面から操作できます。
- コア:mihomoなど。Clash Metaコアとも呼ばれ、プロトコル接続、ルール照合、DNS、TUNなどの実処理を担います。
- サブスクリプション:利用権限のあるサービス提供者や、自分で管理するサービスから取得するURLです。返される内容は、YAML形式の完全な設定ファイルの場合も、ノード一覧のみの場合もあります。
Clashという名称のクライアントでも、対応する設定項目やプロトコルは異なる場合があります。設定の解析に失敗したら、まずクライアント名とバージョン、コア名とバージョンを確認し、設定の要件と照らし合わせてください。「Clash」という名前だけで設定をそのまま使い回せるとは限りません。
2. サブスクリプションの入手先は?リンクを他人に共有してもよい?
サブスクリプションURLは、利用権限のあるサービスの管理画面か、自分で運用する設定サービスから取得します。Clashクライアントはサブスクリプションの提供元ではありません。クライアントのダウンロードページとサブスクリプション管理ページも別の場所です。
- サービスの管理画面でサブスクリプションの項目を開き、Clash、Clash Meta、mihomo向けと明記された設定を探します。
- クエリパラメーターも含め、サブスクリプションURL全体をコピーします。アカウントを識別するトークンが含まれている場合があります。
- プランの状態、有効期限、残りの通信量を確認してから、クライアントに追加します。
ブラウザーでサブスクリプションを開いたときに長いテキストが表示されても、必ずしもエラーではありません。設定が直接返されるURLもあります。ログイン画面や認証画面が表示される場合、または401 Unauthorized、403 Forbiddenが返る場合は、ローカルのポートを何度も変更するのではなく、権限やサーバー側の制限を確認してください。
3. サブスクリプションの追加方法と形式エラーの対処
まず形式を確認してから追加し、有効化します。Clash Verge Revの場合、サイドバーの「サブスクリプション」を開き、入力欄にURLを貼り付けて追加したあと、そのサブスクリプションを選択して現在の設定として有効にします。ボタンの表示はバージョンによって異なりますが、「設定のダウンロード」と「設定の有効化」はそれぞれ確認が必要です。
初回追加時の確認手順
- 追加後は、更新日時や成功メッセージを確認します。サブスクリプションのカードが表示されただけで判断しないでください。
- 「プロキシ」を開き、ポリシーグループとノード名が表示されることを確認します。
- 利用できるノードを選び、「システムプロキシ」を有効にしてブラウザーで接続を確認します。
- 設定エラーが表示されたら、まずログに記録された項目名と行番号を確認します。
完全なClash YAMLには通常、proxies、proxy-groups、rulesが含まれます。proxy-providersでノードを読み込むこともできます。単一のss://やvmess://のリンク、Base64形式の一覧、完全な設定ファイルはそれぞれ別のものです。そのまま追加できるかどうかは、クライアントのインポート機能によります。
yaml: unmarshal errorsが表示されたら、まず取得した内容がWebページのHTMLではないか確認し、そのあとインデント、項目の型、コアとの互換性を確認します。YAMLのインデントにはスペースを使い、Tabは混在させないでください。形式の変換が必要な場合は、サブスクリプション情報を不明なサービスに渡さず、提供元が用意する該当形式の設定画面を利用してください。
4. ルールモード、グローバルモード、DIRECTはどう使い分ける?
普段はルールモードを使い、グローバルモードは目的を絞ったテストに利用します。汎用的なトラブル解決スイッチではありません。モードが決めるのは、コアに届いた接続の出口です。アプリの通信がコアに届くかどうかを決めるものではありません。
| モード | 動作 | 用途 |
|---|---|---|
rule ルール | ルールを上から順に照合し、該当するポリシーに振り分ける | 日常的な振り分け。直接接続とプロキシ通信を使い分ける |
global グローバル | コアに届いた接続を、通常はGLOBALポリシーで選択する | 問題がルールの選択に関係するか、一時的に確認する |
direct 直接接続 | コアに届いた接続を、プロキシを経由せず宛先へ接続する | プロキシ経由の接続と比較テストする |
ルールは通常、最初に一致したものが適用されます。フォールバック用のMATCHは末尾に置いてください。以下はルールの一部であり、単体では完全な設定として動作しません。PROXYは完全な設定内で、利用可能なポリシーグループまたはプロキシ名として定義する必要があります。
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY
グローバルモードではWebサイトを開けるのに、ルールモードでは開けない場合、その接続に適用されたルールとポリシーを確認してください。すぐにすべてのルールを削除したり、グローバルモードを「PC上の全アプリの通信をすべて処理するモード」と捉えたりしないでください。
5. システムプロキシとTUNモードの違い
システムプロキシは、OSのプロキシ設定に従うアプリ向けです。TUNは仮想ネットワークインターフェースを使い、ルーティング条件に合う通信を取り込みます。初心者はまずシステムプロキシでブラウザーが接続できるか確かめてから、TUNが必要か判断しましょう。
- システムプロキシ:通常は、システムのHTTP/HTTPSプロキシをローカルの待受ポートに設定します。多くのブラウザーはこの設定に従いますが、一部のゲームやコマンドラインツール、独自のネットワーク処理を使うアプリは従わない場合があります。
- TUN:利用には適切なシステム権限とルーティング設定が必要です。システムプロキシに従わない通信も取り込めますが、有効にすればすべての通信がプロキシ経由になるわけではありません。
- モバイル端末:Androidクライアントは通常、OSのVPNインターフェースを使って通信を取り込みます。デスクトップの「システムプロキシ」と同じ操作ではありません。
Clash Verge Revでは、まず「システムプロキシ」が有効か確認し、必要に応じて「TUNモード」を有効にします。サービスのインストールや権限の許可を求められたら、使用中のバージョンの案内に従ってください。別のVPN、仮想NIC、セキュリティソフトがルーティングやDNSの競合を起こすこともあります。テストでは通信を取り込む機能を一度に1つだけ有効にしてください。
TUNを有効にしても、使えなくなったノードが復旧したり、誤ったサブスクリプションが有効な設定になったりするわけではありません。有効化後にネット接続が切れた場合は、まずTUNを無効にしてシステムプロキシでテストし、権限、ルーティング、DNSのログを確認します。ノードの変更、DNSの変更、TUNの有効化を同時に行うと、原因を特定しにくくなります。
6. ポリシーグループの選び方と、低遅延でも接続できない理由
速度測定の結果だけでなく、ポリシーグループで実際に選ばれている項目を確認します。手動選択グループのselectと、自動測定グループのurl-testでは動作が異なります。前者はユーザーが出口を選び、後者は設定されたテストに基づいて自動選択します。
次の3点を確認
- アクセス先のサイトに適用されたポリシーグループはどれか。確認中のグループと一致しているか。
- そのグループで最終的に選ばれているのは、ノード、別のポリシーグループ、
DIRECT、REJECTのどれか。 - ノードの速度測定と、実際のWebページへの接続がそれぞれ成功したか。別々に記録します。
画面に80 msと表示されても、その測定リクエストで応答があったことを示すだけです。すべてのサイトに接続できることや、ダウンロード速度を保証するものではありません。使われたテストURL、リクエストのタイムアウト、ノードの出口、接続先サイトの制限によって結果は変わります。timeoutも「ノードが永久に使えない」ことを示す十分な根拠ではありません。ローカルネットワークとテストURLの問題も確認してください。
特定のサイトだけ開けない場合はモードを変えず、ノードを1つだけ切り替えて比較します。すべてのノードで失敗するならルールとDNSを確認し、1つのノードだけ失敗するなら、そのノードや出口を優先して調べます。まずクライアントを再インストールする必要はありません。
7. 接続済みなのにWebページが開けないとき、まず確認すること
「コアが動作中」でも、「ブラウザーのリクエストが正常に通った」とは限りません。通信の入口、ルール、ノード、DNSの順で確認すると、クライアントのオン・オフを繰り返すより効率的に原因を絞り込めます。
- 直接接続で比較:システムプロキシとTUNを無効にし、通常のネットワークが使えるか確認します。直接接続でも失敗する場合は、Wi-Fi、ゲートウェイ、OSのネットワーク設定を先に確認してください。
- 通信の入口を確認:システムプロキシを再度有効にし、ブラウザーを1つだけ使ってテストページを開きながら、「接続」または「ログ」を確認します。新しい記録がない場合は、ブラウザー独自のプロキシ設定、拡張機能、システムプロキシのポートを確認してください。
- 出口を確認:接続の詳細で、適用されたルール、ポリシーグループ、最終的なノードを確認します。誤って
REJECTに一致している場合は、DNSを変更するのではなくルールを修正します。 - ノードを切り替える:同じテストURLを使い、ノードを1つだけ変更して結果を比較します。
- 具体的なエラーを確認:
connection refused、i/o timeout、名前解決の失敗など、エラーが発生した宛先を記録します。「開けない」とだけ記録しないでください。
ブラウザーで証明書エラーが表示されたら、まずシステムの日付、時刻、タイムゾーンを確認してください。証明書の検証を無効にしてはいけません。社内ネットワークのHTTPS検査、パケットキャプチャツールの証明書、名前解決の問題も、それぞれ分けて調べる必要があります。詳しくはヘルプセンターをご覧ください。
8. DNS、Fake-IP、「一部のサイトが開けない」問題の関係
DNSはドメイン名の名前解決を担い、プロキシルールは通信経路を決めます。互いに影響しますが、代わりになるものではありません。mihomoのfake-ipモードでは、ドメイン名に仮想アドレスを割り当て、コアがその接続を元のドメイン名に関連付けます。
たとえば設定で198.18.0.1/16をFake-IPのアドレスプールに使っている場合、この範囲のアドレスが名前解決の結果に表示されても、必ずしも異常ではありません。一方、クライアント終了後もアプリが仮想アドレスをキャッシュしていたり、通信が取り込み経路を迂回したりすると、名前解決できても接続に失敗することがあります。
- ログで
DNS resolve failedやno such hostなどの記録を探し、名前解決に失敗したドメインを確認します。 - ブラウザーの「セキュアDNS」やアプリ独自のDoH設定を確認します。想定している名前解決の経路が変わることがあります。
- 別のVPN、OSの暗号化DNS、ローカルネットワークのDNS設定の影響を切り分けます。一度に変更するのは1項目だけにしてください。
- DNSを変更したらアプリで再試行し、必要に応じて関連するキャッシュを消去します。Windowsではコマンドプロンプトで
ipconfig /flushdnsを実行できますが、ブラウザー独自のキャッシュが残る場合もあります。
DNSの問題をすべてFake-IPのせいにしたり、出所の分からないDNS設定一式をそのままコピーしたりしないでください。まず、サブスクリプションの既存のdns設定とクライアント側の上書き内容を確認し、詳細設定を参考に項目ごとに調整します。
9. ポート7890、7897とは?ポート競合の対処法
ポートはローカルサービスの接続口を示す番号で、ノードや回線の番号ではありません。設定に7890や7897が使われていることはありますが、すべてのClashクライアントで共通のポート番号はありません。有効な設定とクライアントの画面に表示された値を確認してください。
mixed-port: 7890
allow-lan: false
mixed-portはHTTPとSOCKSで共用する待受ポートを指定します。上の例は項目の役割を示すもので、ノード、ポリシーグループ、ルールは含まれていません。別のプログラムが7890を使用中の場合、ログにbind: address already in useと表示されることがあります。競合しているプログラムを終了するか、空いている別のポートに変更し、システムプロキシやアプリのプロキシ設定もあわせて更新してください。
ローカルプロキシの接続を具体的に確認する
実際のHTTPプロキシの待受アドレスが127.0.0.1:7890の場合は、次のコマンドでテストできます。Windowsではcurlが別のコマンドとして解釈されるPowerShell環境があるため、curl.exeを使います。macOSとLinuxではcurlを使ってください。
curl.exe -I --proxy http://127.0.0.1:7890 --connect-timeout 10 https://example.com
ローカルポートへの接続がすぐに失敗する場合は、待受状態とポート番号を確認します。リクエストがログに記録されたあとタイムアウトする場合は、その後の通信経路を調べてください。PC上のブラウザーを直すためだけにallow-lan: trueを有効にしないでください。LAN内で共有するには、待受アドレス、ファイアウォール、アクセス制御、認証も別途設定する必要があります。
10. サブスクリプション更新で設定は上書きされる?終了前にすることは?
サブスクリプションから取得した設定を直接編集すると、次回の更新で変更が失われる場合があります。ルール、DNS、ポートの設定を継続して使うには、使用中のクライアントが対応する上書き、マージ、スクリプトの仕組みを利用し、最終的に生成された設定を確認してください。
- 変更前:クライアントとコアのバージョンを記録し、ローカルルール、上書き設定、必要な設定をバックアップします。バックアップファイルにもサブスクリプション情報が含まれる場合があるため、安全に保管してください。
- 更新後:設定が引き続き選択されているか、ポリシーグループの選択が維持されているか、追加したルールが実際に適用されているかを確認します。サブスクリプションの更新日時だけで判断しないでください。
- クライアントを乗り換えるとき:ポート、システムプロキシ、TUN、DNS、自動起動の設定をあらためて確認します。旧クライアントのデータフォルダー全体をそのままコピーしないでください。
- 終了時:まずシステムプロキシを無効にしてから、クライアントを通常の手順で終了します。TUNを使っている場合は、通信の取り込みも停止したことを確認してください。異常終了後にブラウザーが接続できなくなった場合は、ローカルプロキシを指す設定が残っていないか確認します。
Windows 11では「設定」→「ネットワークとインターネット」→「プロキシ」で手動プロキシを確認できます。macOSでは「システム設定」→「ネットワーク」→現在のネットワークサービスの「詳細」→「プロキシ」を開きます。終了したクライアントが残した設定だと確認できた場合に限り、該当する項目を無効にしてください。職場のネットワークで組織が設定したプロキシは、むやみに削除しないでください。
初回設定では、まず一つの接続経路を確立しましょう。有効なサブスクリプションを追加し、設定を有効にしてノードを選び、システムプロキシを有効にしてブラウザーで確認します。安定してからTUN、カスタムルール、DNSを調整してください。操作手順はサブスクリプションの追加と基本設定ガイド、設定項目の意味は用語集をご覧ください。