Clashとは何か、どんな問題を解決できるのか
簡単に言うと、Clashは「ルールに基づいて通信を振り分ける」ネットワークプロキシクライアントです。各通信リクエストの宛先をチェックし、設定済みのルールに従ってその処理方法を決定します——国内・地域内のよく使うサービスはそのまま直接接続し、速度への影響はまったくありません。プロキシが必要なサービスは対応するノードに転送され、広告や悪質なドメインはローカルで直接ブロックされ、リクエスト自体が送信されることもありません。この処理はすべて自動で行われるため、普段「切り替え」を意識することはなく、どのサイトがどの経路を通るかはあらかじめルールで決まっています。
Clashは完全にオープンソースでクロスプラットフォームなプロジェクトで、Windows、macOS、Linux、Android、iOSに対応するクライアントまたはコアが用意されています。設定ファイルの形式は統一されているため、デバイスを変えても新しく使い方を覚える必要はありません。使い始めるにあたって理解しておくべき役割は3つだけです:
- クライアント —— インストールするプログラム(グラフィカル版またはコマンドライン版)で、設定の読み込み、ノードへの接続、現在の状態表示を担います;
- サブスクリプションリンク —— 利用しているプロキシサービス提供元から提供される、ノードリストを含むURLで、クライアントが定期的に更新を取得します;
- 設定ファイル —— すべてのルーティングルールとプロキシグループのロジックを定義する
config.yamlファイルです。多くの場合サブスクリプションから自動生成されるため、自分で書く必要はありません。
3ステップでかんたんスタート
クライアントをインストールしてから実際にプロキシを使い始めるまで、実はたったの3ステップです。すべてマウス操作で完了し、設定ファイルに触れる必要はありません:
クライアントをダウンロードしてインストール
お使いのOSに合わせてグラフィカルクライアントを選ぶのが最も簡単です。全プラットフォーム対応のインストーラーと詳しい手順はダウンロードページに掲載されているので、それに従ってインストールしてください。
サブスクリプションリンクを貼り付けて読み込む
クライアントの「サブスクリプション管理」に、プロキシサービス提供元から受け取ったサブスクリプションURLを貼り付けて保存してください。クライアントは即座にノードリストを取得します。https://example.com/api/v1/subscribe?token=xxxのようなURLはそのまま全体をコピーしてください。途中で切らないようにご注意ください。
ノードを選んでシステムプロキシを有効化
ノードリストからプロキシグループを1つ選び(クライアントが自動で速度測定して最適なノードを選んでくれる場合が多いです)、「システムプロキシとして設定」を有効にしてプロキシが必要なサイトにアクセスしてみてください。表示されれば設定は成功です。使わないときはオフに戻すだけです。
この5つを理解すればコア概念はOK
日常的な利用ではこれらを深く理解する必要はありませんが、自分でルールを微調整したい、あるいは問題の原因を知りたいという場合には避けて通れない概念です。ポイントを絞って分かりやすく解説します:
プロキシグループ(Proxy Group)
プロキシグループは複数のノードを1つの単位としてまとめて扱う仕組みです。一般的なタイプは3種類あります:「自動選択」は定期的に速度測定を行い、遅延が最も低いノードに自動で切り替えます。「手動切り替え」は使用するノードを自分で決められます。「フォールバック」はメインのノードが使えなくなった場合に自動でバックアップノードに切り替え、通信の切断を防ぎます。多くのサブスクリプションで生成される設定にはすでに適切なプロキシグループが組み込まれており、通常は手動で調整する必要はありません。
ルールとルールセット(Rules)
ルールは順番に1件ずつ照合され、一致した時点で即座に適用され、それ以降のルールは照合されません。そのため順序がとても重要です——より具体的で、よく使われるルールほど上位に配置すべきです。ルールセット(Rule-Set)は、同種の大量のルールを1つのリモート更新可能なファイルにまとめる仕組みで、1件ずつ手動でメンテナンスする必要がなく、サブスクリプション更新時にルールセットも一緒に更新されます。
GeoIP / GeoSite
GeoIPはIPアドレスと地理的位置を対応させるデータベースで、GeoSiteはドメインとその分類を対応させるデータベースです。両方とも、ルールエンジンが「自分の地域内のアドレスかどうか」を判断する際に最も一般的に使われる基準です。ルールセットには通常これらのデータがすでに組み込まれているため、追加のダウンロードや設定は不要です。
DNS漏洩防止
通信だけをプロキシ経由にしてDNSクエリを引き継いでいない場合、ドメイン解決のリクエストがローカルの回線業者のDNSに直接送られ、実際にアクセスしているドメインが漏れてしまうことがあります。これが「DNS漏洩」と呼ばれるものです。クライアントはDNSクエリもルールに従って振り分けます(国内・地域内ドメインはローカルDNS、それ以外は安全なリモートDNSを使用)。これにより根本的にこの問題を回避できます。多くのクライアントではデフォルトで有効になっており、追加の設定は不要です。
TUNモード
システムプロキシは、システムのプロキシ設定に従うプログラムにのみ有効です。一部のゲーム、コマンドラインツール、システムレベルのリクエストはシステムプロキシを経由しません。TUNモードは仮想ネットワークアダプターを作成し、ネットワーク層ですべての通信を引き継ぐため、より完全なカバレッジが得られますが、その分システム権限(管理者/Root権限)が必要になります。日常的なWebブラウジングであればシステムプロキシで十分で、特別な用途があるときだけTUNモードを有効にしてください。
実際の設定の書き方を見てみたい方は、こちらの例を開いてください
proxy-groups:
- name: 自動選択
type: url-test
proxies: [ノードA, ノードB, ノードC]
url: http://www.gstatic.com/generate_204
interval: 300
- name: 手動切り替え
type: select
proxies: [自動選択, ノードA, ノードB, DIRECT]
rules:
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-KEYWORD,youtube,PROXY
- GEOIP,JP,DIRECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
- MATCH,PROXY
これらのルールは順に次のことを意味します:google.comで終わるドメインはプロキシ経由、youtubeを含むドメインもプロキシ経由、日本国内のIP(お住まいの国コードに置き換えてください)は直接接続、広告ドメインは直接ブロック、そして残りの一致しなかった通信はすべて最終的にプロキシ経由でフォールバック処理されます。
こんなシーンもClashにお任せ
基本的な使い方を理解したら、次は日常でよく聞かれる実用的なシーンを見てみましょう:
アプリ単位のプロキシ
特定のアプリ(動画やチャットアプリなど)だけをプロキシ経由にし、それ以外は直接接続にしたい場合は、クライアントの「アプリ単位のプロキシ」設定で対象のアプリをリストに追加してください。それ以外のアプリはデフォルトで直接接続となり、互いに影響せず、不要な通信量も抑えられます。
広告とトラッカーのブロック
ルールファイルに広告ドメインのルールセットを追加すると、一致したリクエストはREJECTとして直接破棄されます。これはネットワーク層で広告フィルタリングを行っているのと同じことで、ブラウザやアプリ内の一部の広告やトラッキングスクリプトは読み込みに失敗して表示されなくなります。
複数のサブスクリプションを組み合わせて使う
複数のサービス提供元のサブスクリプションを同時に持っている場合、多くのクライアントでは複数のサブスクリプションリンクを追加し、異なる提供元のノードをプロキシグループ内で混合して編成できます。「設定の統合」機能を使って複数の設定を1つの最終的な設定にまとめ、切り替えの手間を省くこともできます。
LAN内の他のデバイスと共有する
クライアントのネットワーク設定で「LANからの接続を許可」を有効にし、本機のLAN内IPアドレスとプロキシポートを確認してください。同じネットワーク上の他のデバイス(テレビボックス、ゲーム機など)にこのプロキシアドレスを手動で入力すれば、同じルールを共有できます。個別にクライアントをインストールする必要はありません。
慣れてきたら試したい上級テクニック
リモートルールセットの自動更新 —— ルールセットをRule Providerのリモートリンクとして設定すると、内容がサブスクリプションの更新周期に合わせて自動的に更新され、ファイルを手動で置き換える必要がなくなります。
設定の上書きと統合 —— 一部のクライアントは「上書き」または「統合」機能に対応しており、サブスクリプション本来の設定を変更せずにカスタムルールを重ねて適用できます。サブスクリプションが更新されてもカスタム部分は上書きされません。
複数デバイス間で設定を同期する —— 同じサブスクリプションリンクを使っていれば、異なるデバイスで読み込んだ後もノードとルールは一致します。カスタムの上書きルールを設定している場合は、その部分を別途バックアップしておくと、デバイスの変更や再インストール後にすぐ復元できます。
省電力・省リソース —— 消費電力やパフォーマンスが気になる場合は、速度測定の間隔を長めにしたり、詳細な接続ログをオフにしたりすると効果的です。特に古いデバイスやルーターで有効です。
さらに深く学びたい方(自分でルール構文を書く、Providerによる遠隔管理を設定する、DNS/TUNの高度なパラメータを調整するなど)は、上級者向けドキュメントをご覧ください。
よくある質問
サブスクリプションリンクとは何ですか?どこで入手できますか?
サブスクリプションリンクは、プロキシサービス提供元が生成するURLで、利用可能なノードリストとおすすめのルールが含まれています。Clash公式サイトはノードを提供していないため、ご利用中のサービス提供元からサブスクリプションURLを入手する必要があります。
サブスクリプションを読み込んだ後、利用可能なノードが表示されない場合は?
まず、サブスクリプションリンクの有効期限が切れていないか、デバイス数の上限に達していないかを確認してください。クライアント下部のログパネルで、サブスクリプション取得時にネットワークエラーや形式解析の失敗が表示されていないかも確認できます。
システムプロキシとTUNモードはどちらを選ぶべき?
日常的なWebブラウジングやアプリの利用にはシステムプロキシで十分です。設定が簡単で互換性も高いです。ゲームやコマンドラインツールなど、システムプロキシ設定に従わないプログラムをプロキシ経由にしたい場合は、TUNモードを有効にして全体を引き継ぐことをおすすめします。
どの通信がプロキシ経由で、どれが直接接続かを確認するには?
多くのグラフィカルクライアントには「接続」や「ログ」パネルが用意されており、各リクエストが一致したルールと最終的な処理結果(DIRECT / PROXY / REJECT)をリアルタイムで表示します。振り分けが正しく機能しているかを直感的に確認できます。
サブスクリプションリンクを変更した後、古いノード情報が残っている場合は?
「サブスクリプション管理」で古いサブスクリプションを削除して新しいリンクを追加し直すか、クライアント標準の「サブスクリプションを更新」機能で強制的に上書きしてください。新旧のノードリストが混在するのを防げます。
設定を誤って変更してしまった場合、元に戻すには?
サブスクリプションを再度読み込むことで、ほとんどのカスタム変更は上書きされます。上書きや統合機能を使用している場合は、事前にカスタム部分をバックアップしておくか、クライアントの設定ディレクトリを削除してから再度読み込んでください。
スマートフォンで使うと電池や通信量を多く消費しますか?
通常の使用であれば電池と通信量の増加はごくわずかです。主な消費はバックグラウンドでの速度測定とログ記録によるものです。設定で測定頻度を下げたり、詳細ログをオフにすることでさらにリソースを節約できます。
設定ファイルは通常どこに保存されていますか?
パスはクライアントによって多少異なりますが、通常は設定パネルに「設定ディレクトリを開く」といった項目があります。手動で編集やバックアップを行いたい場合は、そこからconfig.yamlがあるフォルダを見つけてください。
仕組みと設定の構文を理解したら、あとはクライアントをダウンロードしてサブスクリプションを読み込むだけで、すぐに使い始められます。