Clash使い方ガイド
ネットワーク技術の知識は不要です。本ガイドはサブスクリプション導入、モード選択、システムプロキシ、動作確認の4つのステップを順に詳しく解説し、各ステップには各プラットフォームの具体的な操作方法とよくある問題のトラブルシューティングを掲載。手順どおりに進めるだけで設定が完了します。
詳細な設定ガイド
各ステップで仕組み、具体的な操作、よくある落とし穴まで詳しく解説。一言で済ませるようなことはしません。
サブスクリプションリンクを導入SUBSCRIBE
サブスクリプションリンクとは、サービス提供者が提供するURLのことで、クライアントがリクエストするとノードリストと振り分けルールを含む設定内容が返されます。クライアントの「プロファイル」ページを開き、サブスクリプションURLを貼り付けてダウンロードをクリックすると、ノードとルールが自動的にローカル設定に書き込まれ、YAMLファイルを手動で編集する必要は一切ありません。URLではなくconfig.yamlファイルを受け取った場合は、同じページで「ファイルから読み込む」を選択すれば同じ効果が得られますが、自動更新はできません。
クライアントには通常「自動更新間隔」の設定があり(例:24時間ごと)、期限が来ると自動的に最新のノードを再取得します。いつでも手動で「更新」をクリックしてリンクを貼り直さずに即時反映することもできます。
動作モードを理解して選択するMODE
クライアントは3種類の通信処理モードを提供します:ルールモードはconfig.yamlのルールと一つずつ照合して自動的に振り分けます。中国本土は直接接続、それ以外はプロキシ経由、広告はブロックとすべて自動で判断され、日常使用に推奨されるモードです。グローバルモードはルールを無視して、すべての通信を同一のプロキシノードに強制的に流すもので、あるノードが本当に使えるかを一時的にテストする際に使うことが多いです。ダイレクトモードはプロキシを完全に無効化し、Clashをインストールする前のネットワーク状態に一時的に戻すのと同じで、比較テストや一時的な通信量節約に使われます。
もう一つ混同しやすい概念がTUNモードです——これは上記の3つのモードとは別の軸で、「通信をどう横取りするか」の選択です。システムプロキシはシステムプロキシ設定に従うアプリ(ブラウザや大半の通常ソフト)にのみ有効ですが、一部のコマンドラインツール、ゲームクライアント、バックグラウンドサービスはシステムプロキシ設定を読み取りません。この場合はTUNモードが必要で、クライアントが仮想ネットワークアダプタを作成し、ネットワーク層ですべての通信を横取りします。より確実に機能しますが、初回有効化時には追加の権限付与が必要です(下記「システムプロキシを有効化」の各プラットフォームの説明を参照)。初心者はまずシステムプロキシだけを使い、どうしてもプロキシを通らないアプリがあれば、その時にTUNの有効化を検討することをお勧めします。
システムプロキシを有効化CONNECT
システムプロキシの基本的な仕組みはどのプラットフォームでも同じです——システムやアプリからの通信リクエストを、Clashがローカルで待ち受けているポート(デフォルト127.0.0.1:7890)に転送します。ただし切り替えの場所や設定ファイルの位置はプラットフォームごとに異なるため、以下でそれぞれ説明します。
Windows タスクトレイのアイコンを右クリックし、メニューから「System Proxy」にチェックを入れると有効化、チェックを外すと無効化されます。TUNモードを使う場合、初回有効化時に管理者権限で一度実行するよう求められます(仮想ネットワークアダプタのドライバー登録のため)。その後は通常起動で自動的に有効になります。設定ファイルはデフォルトで%USERPROFILE%\.config\clash\config.yamlに保存され、テキストエディタで直接確認・バックアップできます。
macOS メニューバーのアイコンをクリックし、「Set as System Proxy」を選択してシステムプロキシを有効にします。TUNモードを使う場合は「システム設定 → プライバシーとセキュリティ → VPNとネットワーク拡張」から該当の拡張機能を許可し、クライアントを再起動して初めて有効になります——これはmacOS側のセキュリティ制限によるもので、初回にこの設定場所が見つからないのが最もよくある詰まりポイントです。設定ファイルのパスは~/.config/clash/config.yamlです。
Android アプリを開き、「プロファイル」ページでサブスクリプションリンクを導入してから、ホーム画面のフローティング「接続」ボタンをタップします。標準のVPN権限確認ダイアログが表示されるので「OK」をタップすればローカルVPNトンネルが確立され、通信の転送が始まります。一部の中国系メーカーのスマートフォン(特にXiaomi、OPPO、vivoなどの独自カスタムシステム)の省電力機能は、バックグラウンドのVPNプロセスを強制終了することがあるため、システム設定のバッテリー最適化リストでClashをホワイトリストに追加することをお勧めします。設定しないと「使っているうちに自動的に切断される」現象が起きやすくなります。
iOS App Storeの審査ポリシーの制限により、iOS向けの公式ネイティブClashアプリはありません。通常はClashのルール形式に対応したサードパーティクライアント(Stash、Shadowrocketなど)を使用します。アプリの「プロファイル」ページでサブスクリプションリンクを追加し、接続を有効にすると、「設定 → 一般 → VPNとデバイス管理」にインストールされたVPN設定が表示され、そこで接続状態の確認や手動切断ができます。アプリによって画面の文言は多少異なりますが、サブスクリプションの導入や接続のオンオフの操作ロジックはほぼ同じです。
Linux GUI版(clash-vergeなど)はWindows / macOSと同じ操作方法で、トレイアイコンを右クリックしてシステムプロキシを有効化できます。コマンドラインのみ / デスクトップ環境がない場合(クラウドサーバーなど)はトレイがないため、設定ファイルを手動で編集し、systemdでサービスをバックグラウンド実行する必要があります。同時にシェルでプロキシ環境変数を設定すれば、コマンドラインツールもプロキシを経由します:
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890
config.yamlを編集した後にsystemctl enable --now clashを実行し、起動時に自動的に立ち上がるバックグラウンドサービスとして設定することをお勧めします。再起動ごとに手動で起動する必要がなくなります。ブラウザで常にプロキシが未適用と表示される場合は、他のVPNやプロキシソフトが同時に動作して競合していないか確認してください。設定が反映されているか確認VERIFY
上記の3ステップを終えたら、設定できたと思い込む前に、1分だけ時間をかけてプロキシが実際に機能しているか確認することをお勧めします:
方法1 · IPチェック:ブラウザで任意のIPチェックサイトにアクセスし、表示される出口IPの所在地が接続しているノードの所在地と一致していれば(例:香港ノードに接続していて香港のIPと表示される)、システムプロキシは正しく機能しています。
方法2 · 接続パネル:クライアントの「接続」パネルを開くと、各通信がどのルールに一致し、どのノードを使用しているかをリアルタイムで確認できます。振り分けが期待どおりに動作しているか調べる最も直接的な方法です。
方法3 · 接続済みなのに特定のサイトが開けない:これは「効いていないように見える」最も一般的なケースで、実際にはプロキシが効いていないわけではなく、そのドメインがルールによってDIRECTと判定されている(新しい・マイナーなドメインがルールセットにまだ含まれていない場合によく見られます)ことが原因です。接続パネルでそのリクエストがどのルールに一致したか確認できます。誤って直接接続と判定されている場合は、カスタムルールにDOMAIN-SUFFIXルールを手動で追加してプロキシ経由に強制できます(下記のルール構文を参照)。すでにプロキシルールに一致しているのに開けない場合は、ノード自体の障害や遅延過大の可能性が高いので、「グローバルモード」に切り替えて他のノードでテストしてみてください。
振り分けルールの仕組みと構文の詳細解説
ルールモードが「スマート」である理由は、設定ファイル内のrulesリストにあります。マッチングの仕組みを理解しておけば、振り分けが期待どおりに動作しなかったときに、どこを直せばいいか分かります。プロキシグループやGEOIPなどの用語が分からない場合は、先に用語集をご覧ください。
rulesは上から下へ順番に処理されるリストで、各行はおおよそタイプ,マッチ内容,ポリシーという形式です。クライアントはリクエストを受け取ると先頭のルールから順に照合し、一致した瞬間にそのポリシーが適用され、マッチングは停止します——それ以降に書かれたルールは、内容が一致していても決して適用されません。ポリシーはDIRECT(直接接続)、REJECT(ブロックして破棄)、あるいはプロキシグループの名前(サブスクリプションのルールセットでは通常PROXYと表記され、あるプロキシグループを指します)のいずれかです。ほとんどのサブスクリプション提供者はすでに完全なルールセットを用意しているため、一般ユーザーはそのまま使えば編集は不要です。下表は上級ユーザーが最もよく追加する6種類の構文パターンです。
DOMAIN,ad.example.com,REJECT
1つの完全なドメインに正確に一致(サブドメインは含まない)
REJECTDOMAIN-SUFFIX,google.com,PROXY
そのドメインとすべてのサブドメインに一致。最もよく使われる書き方
PROXYDOMAIN-KEYWORD,facebook,PROXY
ドメインに指定したキーワードが含まれていれば一致。複数のバリエーションを一度にカバー
PROXYIP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP範囲で一致を判定。プライベートIPアドレスはプロキシを経由せず直接接続。no-resolveはドメインを事前に解決しないことを意味します
DIRECTGEOIP,CN,DIRECT
リクエスト先のIPが属する国・地域によって振り分け。中国本土のIPは直接接続
DIRECTMATCH,PROXY
受け皿ルール。上記のどのルールにも一致しなかった通信すべてに一致。必ずリストの最後の行に配置する必要があります
PROXY上級者向け補足:rulesに直接ルールを書き込む以外に、Clashはrule-providersもサポートしています——コミュニティやサービス提供者が管理し、リモートでホストされているルールの集合(例:「中国本土ドメイン全部」「広告ドメイン全部」)を、ルールリストに一行追加するだけで参照できます。内容はリモートソースに合わせて自動的に更新されるため、一つひとつ自分でメンテナンスする必要はありません。日常使用ではこの層を気にする必要はなく、振り分け動作をカスタマイズしたいのに、デフォルトのルールセットでは要件を満たせない場合にのみ編集が必要になります。編集する際は、カスタムルールをrule-providerの参照よりも前に置くようにしてください。順序が先のルールが優先的に一致するためです。