Clash for Windowsで実現する、快適かつ安全なPC通信:詳細ガイド
はじめに
現代において、インターネットは私たちの生活や仕事に不可欠な基盤となっています。ウェブブラウジング、オンライン会議、動画視聴、ゲーム、リモートワークなど、あらゆる活動がインターネットを通じて行われます。しかし、便利さの裏側には、通信の遅延、地理的な制約、そして何よりもセキュリティリスクという課題が潜んでいます。
PCでのインターネット通信をより快適に、そしてより安全にするために、プロキシツールやVPNといった様々な技術が利用されています。中でも、近年注目を集めているのが「Clash」と呼ばれるルールベースのプロキシコアです。そして、Windows環境でこの強力なClashコアを直感的に操作できるように開発されたGUIクライアントが「Clash for Windows」です。
Clash for Windowsは、単なるプロキシツールとは一線を画します。その最大の特徴は、高度な「ルールベースルーティング」機能にあります。これにより、通信の種類や宛先に応じて、どのプロキシサーバーを使用するか、あるいはプロキシを介さずに直接接続するかを細かく制御できます。この柔軟性が、通信の快適性(特定の通信だけ高速なサーバーを使うなど)と安全性(怪しいサイトへのアクセスはブロックするなど)の両立を可能にします。
本記事では、Clash for Windowsを最大限に活用し、PC通信を快適かつ安全にするための方法を、初心者の方にも理解できるように詳細に解説します。インストールから基本的な設定、そしてルールやプロキシグループといった高度な機能の活用、さらにはセキュリティに関する注意点やトラブルシューティングまで、網羅的に説明します。約5000語を費やし、Clash for Windowsの世界を深く掘り下げていきますので、ぜひ最後までお付き合いください。
第1章:Clash for Windowsとは何か?基本を知る
まずは、Clash for Windowsがどのようなツールであるか、その基本的な概念と役割を理解することから始めましょう。
1.1 Clashコアとは?
Clash for Windowsの名前にも含まれている「Clash」は、元々はGo言語で開発された、ルールベースのネットワークプロキシコアです。これは、それ自体がGUIを持つアプリケーションではなく、ネットワークトラフィックをどのように処理するかを定義するエンジン部分にあたります。Clashコアは、以下のような多様なプロトコルをサポートしています。
- Socks5: 古くからあるプロキシプロトコル。
- HTTP/HTTPS: ウェブ通信で一般的に使用されるプロトコル。
- Shadowsocks(SS): 軽量で比較的高速なプロキシプロトコル。
- VMess/VLESS: 中国で開発された、高度な難読化機能を持つプロトコル。検閲回避に有効な場合があります。
- Trojan: TLSプロトコルに偽装することで検閲を回避しようとするプロトコル。
- Hysteria: UDPベースでTCP通信を効率化し、高速な通信を目指すプロトコル。
- その他、Relayプロトコルなどもサポートしています。
Clashコアの最大の特徴は、その設定がすべてYAML形式のテキストファイルで行われる点です。この設定ファイルには、使用するプロキシサーバーの情報、通信ルール、プロキシグループなどが記述されます。
1.2 Clash for Windowsとは?GUIラッパーの役割
Clash for Windowsは、この強力なClashコアを、Windowsユーザーが簡単に操作できるように開発された「GUIラッパー」です。つまり、Clash for Windows自体がプロキシサーバーとして機能するわけではなく、裏側でClashコアを起動し、その設定や状態をグラフィカルなインターフェースで管理するためのアプリケーションです。
Clash for Windowsを使うことで、ユーザーはYAML設定ファイルを直接編集することなく、プロキシサーバーの追加、ルールの確認・切り替え、接続状況のモニタリングなどを直感的に行うことができます。これは、Clashコアのパワーを誰でも手軽に利用できるようにするための重要な役割を担っています。
1.3 Clash for Windowsの主な機能
Clash for Windowsは、Clashコアの機能を最大限に引き出し、さらに独自の便利な機能を追加しています。主な機能は以下の通りです。
- プロキシ管理: 複数のプロキシサーバー情報を一元管理できます。Subscription URLを登録することで、サーバーリストを自動的に更新することも可能です。
- ルールベースルーティング: 通信先(ドメイン、IPアドレス、地域など)や通信の種類に応じて、使用するプロキシサーバー、プロキシグループ、または直接接続を選択するルールを適用できます。
- プロキシグループ: 複数のプロキシサーバーをグループ化し、遅延テストに基づく最適なサーバーの自動選択(
url-test
)、フェイルオーバー(fallback
)、手動選択(select
)、負荷分散(load-balance
)といった機能を実現します。 - システムプロキシ制御: Windowsのシステムプロキシ設定をClash for Windows経由でオン/オフできます。これにより、PC上のほとんどのアプリケーションの通信をClash for Windows経由にすることができます。
- モード切り替え:
- Ruleモード: 定義されたルールに基づいて通信を振り分けます。これがClashの真髄であり、最も柔軟なモードです。
- Globalモード: すべての通信を特定のプロキシサーバーまたはプロキシグループ経由にします。VPNのような使い方ができます。
- Directモード: プロキシを使用せず、すべての通信を直接行います。一時的にClashを無効にしたい場合に便利です。
- 接続情報のモニタリング: リアルタイムでどのアプリケーションがどの宛先と通信しているか、どのルールが適用されているか、どのプロキシが使用されているかなどを確認できます。
- 遅延テスト: 登録されているプロキシサーバーへの接続遅延(レイテンシ)を測定し、パフォーマンスの良いサーバーを見つけるのに役立ちます。
- YAML設定の編集・インポート・エクスポート: GUIだけでなく、YAML設定ファイルを直接編集したり、外部からインポート・エクスポートしたりすることも可能です。
- DNS設定: セキュアなDNS(DoH/DoT)を利用することで、DNSクエリのプライバシーを保護できます。
- セキュリティ機能: MITM(中間者攻撃)対策としてのTLSハンドリング設定など。
これらの機能により、Clash for Windowsは単に通信を暗号化するVPNや、単純なプロキシとは異なり、ユーザーのニーズに合わせて非常にきめ細やかな通信制御を可能にします。
1.4 VPNとの違い
Clash for Windowsはプロキシクライアントであり、VPN(Virtual Private Network)とはいくつかの重要な違いがあります。
- 動作原理:
- VPN: 通常、OSレベルで動作し、デバイスのネットワークアダプターの挙動を変更します。すべてのトラフィックをVPNサーバーとの間に確立された暗号化トンネルを通してルーティングします。これにより、デバイスのIPアドレスはVPNサーバーのものに置き換えられます。
- プロキシ(Clash): アプリケーションレベルまたはシステムレベルで、特定の通信(HTTP, Socks5など)をプロキシサーバーに中継します。Clashのルールモードでは、通信を選別してプロキシ経由にするか直接接続するかを決められます。すべての通信が強制的にプロキシ経由になるわけではありません(Globalモードを除く)。
- 適用範囲:
- VPN: OSレベルで設定されるため、通常、デバイス上のすべてのアプリケーションの通信に影響します。
- プロキシ(Clash): システムプロキシとして設定すれば広範囲に影響しますが、アプリケーションによっては独自のプロキシ設定を使用するものもあり、Clashのシステムプロキシ設定が無視される場合があります。また、ルールによっては特定の通信のみに適用されます。
- 柔軟性:
- VPN: 通常は一つのVPNサーバーに接続するか、自動選択に任せるかのどちらかです。特定のアプリケーションだけ別のサーバーを使う、といった細かい制御はOSやVPNクライアント側の機能に依存します。
- プロキシ(Clash): ルールベースルーティングにより、ドメインごと、IPアドレスごと、地域ごと、さらにはポート番号やプロセス名など(設定による)で、使用するプロキシサーバーやグループを自由に切り替えられます。これが最大の強みです。
- 用途:
- VPN: 主に通信全体の暗号化によるセキュリティ向上、IPアドレスの秘匿、地理的な制限の回避(特定の国のサーバーに接続するなど)に用いられます。
- プロキシ(Clash): VPNの用途に加えて、特定のサービス(例:海外の動画サービス)には高速な海外プロキシを使い、国内サービスには直接接続することで通信速度を最適化したり、広告サイトやトラッキングサイトへのアクセスをブロックしたり、複数の異なる国のサーバーを柔軟に使い分けたりといった高度なルーティングに優れています。
Clash for Windowsは、VPNのような一括保護よりも、特定の目的に合わせて通信を最適化・制御したい場合に特に威力を発揮します。複数のプロキシサーバー(異なる国、異なるプロトコル、異なるサービスプロバイダなど)を使い分けることが前提となるような用途に非常に適しています。
第2章:Clash for Windowsのインストールと初期設定
Clash for Windowsを使い始めるための最初のステップは、アプリケーションのダウンロードとインストール、そして基本的な初期設定です。
2.1 ダウンロード方法
Clash for Windowsの公式配布元は、GitHubのリリースページです。検索エンジンで「Clash for Windows GitHub」と検索するか、以下のURLからアクセスできます(URLは変更される可能性がありますので、公式サイトや信頼できる情報源から最新のURLを確認してください)。
https://github.com/Fndroid/clash_for_windows_pkg/releases
このページには、様々なバージョンのClash for Windowsがリストされています。最新版を使用するのが一般的ですが、ベータ版や開発版も公開されていることがあります。安定版(Stable)の中から最新のリリースを選択してください。
ダウンロードするファイルは、Windows用の実行可能ファイル(.exe
)です。通常は「Clash.for.Windows.Setup.x.y.z.exe
」(x.y.zはバージョン番号)のような名前になっています。32bit版と64bit版がある場合は、お使いのWindowsのバージョンに合った方を選択してください。現在主流のWindowsは64bit版です。
注意点: 一部のウェブサイトやフォーラムで非公式な配布が行われていることがありますが、セキュリティリスクがあるため、必ずGitHubの公式リリースページからダウンロードするようにしてください。
2.2 インストール手順
ダウンロードした実行可能ファイル(.exe
)をダブルクリックして実行します。
- ユーザーアカウント制御(UAC): 「このアプリがデバイスに変更を加えることを許可しますか?」というUACプロンプトが表示される場合があります。Clash for Windowsはネットワーク関連の設定を変更するため、許可する必要があります。「はい」をクリックして進みます。
- インストール場所: インストール場所を選択できます。特別な理由がなければ、デフォルトの場所(
C:\Program Files\Clash for Windows
など)で問題ありません。 - スタートメニューフォルダー: スタートメニューに作成するフォルダー名を指定します。デフォルトのままで構いません。
- 追加タスク: デスクトップアイコンの作成などを選択できます。必要に応じてチェックを入れます。
- インストール: 「インストール」ボタンをクリックすると、ファイルのコピーが開始されます。
- 完了: インストールが完了すると、「Clash for Windowsを実行」のようなチェックボックスが表示される場合があります。チェックを入れたまま「完了」をクリックすると、Clash for Windowsが起動します。
インストールはこれで完了です。
2.3 初回起動とUI概要
Clash for Windowsを初めて起動すると、メインウィンドウが表示されます。UIは通常、左側にナビゲーションメニュー、右側に選択したメニューの内容が表示される構成になっています。
主なメニュー項目:
- General: 全般設定。システムプロキシ、HTTP/Socksポート、モード、起動時の動作などの設定を行います。
- Proxies: プロキシサーバーとプロキシグループの状態を確認・管理します。遅延テストなどもここで行います。
- Rules: 定義されている通信ルールを確認できます。ただし、GUIでルールを直接編集することは通常できません(設定ファイルで行います)。
- Profiles: プロキシ設定ファイル(Subscriptionやローカルファイル)を管理します。ここから設定をロードするのがClash for Windowsの基本的な使い方になります。
- Settings: アプリケーション自体の設定。UIテーマ、言語、更新設定など。
- Feedback: フィードバックやログの確認。
- Connections: 現在アクティブな通信接続のリストを表示します。どのプロセスがどの宛先に接続し、どのルール・プロキシが適用されているかを確認できます。
初回起動時には、まだ有効なプロキシ設定がロードされていないため、ほとんどの機能は使えません。
2.4 プロキシ設定(プロファイル)のロード方法
Clash for Windowsを使用するには、まずプロキシサーバー情報やルールなどが記述された「プロキシ設定ファイル」(Configuration FileまたはProfile)をロードする必要があります。この設定ファイルは通常、YAML形式(.yml
または.yaml
拡張子)です。
設定ファイルをロードする方法は主に2つあります。
- URL Subscription (購読):
- 多くのプロキシサービスプロバイダは、Clash互換の設定ファイルを生成するURLを提供しています。このURLをClash for Windowsに登録すると、Clash for Windowsが定期的にそのURLから設定ファイルをダウンロードし、自動的に更新してくれます。これが最も一般的で推奨される方法です。
- 手順:
- 左側のメニューから「Profiles」を選択します。
- 上部にある入力欄に、プロキシサービスプロバイダから提供されたSubscription URLを貼り付けます。
- 右側にある「Download」ボタンをクリックします。
- ダウンロードが成功すると、リストに新しいプロファイルが追加されます。
- 追加されたプロファイルをクリックすると、その設定がロードされ、有効になります。
- Local File (ローカルファイル):
- 自分で作成したYAML設定ファイルや、他の場所から入手した設定ファイルをPCに保存し、それをClash for Windowsから読み込む方法です。
- 手順:
- 左側のメニューから「Profiles」を選択します。
- ローカルに保存したYAML設定ファイルを、Clash for Windowsのウィンドウ内のプロファイルリスト表示エリアにドラッグ&ドロップします。または、「Import From File」ボタン(またはアイコン)をクリックしてファイルを選択します。
- リストにプロファイルが追加されます。
- 追加されたプロファイルをクリックすると、その設定がロードされ、有効になります。
プロファイルがロードされると、「Proxies」や「Rules」タブに設定内容が表示されるようになります。
2.5 基本的な設定
プロファイルをロードしたら、通信を開始する前にいくつかの基本的な設定を確認しておきましょう。
- System Proxy: 「General」タブにあります。「System Proxy」のスイッチをオンにすると、Windowsのシステムプロキシ設定が変更され、Webブラウザなどの多くのアプリケーションの通信がClash for Windowsを介するようになります。PC全体の通信をClashで管理したい場合は、これをオンにします。ただし、一部のアプリケーションはシステムプロキシ設定を無視する場合があります。
- Mode: 「General」タブにあります。「Rule」、「Global」、「Direct」の3つのモードから選択します。
- 最初は通常「Rule」モードを選択します。これがClashの強力なルールベースルーティングを利用するためのモードです。
- 特定の目的のためにすべての通信を特定のプロキシ経由にしたい場合は「Global」モードを選択し、「Proxies」タブでGlobalに割り当てるプロキシまたはプロキシグループを選択します。
- プロキシを一時的に完全に無効にしたい場合は「Direct」モードを選択します。
- Startup: 「General」タブにあります。「Start with Windows」をオンにすると、Windows起動時にClash for Windowsが自動的に起動するようになります。「Hide on Startup」をオンにすると、起動時にメインウィンドウを表示せず、タスクトレイに格納されます。常にClash for Windowsをバックグラウンドで実行しておきたい場合に便利です。
これらの設定を終え、「System Proxy」をオンにし、「Rule」モードを選択すれば、Clash for Windowsを使った通信が開始されます。
第3章:プロキシ設定(Subscription)の管理
Clash for Windowsの利便性の中心にあるのが、プロキシ設定ファイルの管理、特にSubscription(購読)機能です。
3.1 Subscriptionとは何か、その重要性
Subscriptionは、プロキシサービスプロバイダが提供する、Clash互換のYAML設定ファイルを生成するURLです。このURLをClash for Windowsに登録することで、以下のようなメリットが得られます。
- 自動更新: サービスプロバイダ側でプロキシサーバー情報(新しいサーバーの追加、古いサーバーの削除、設定変更など)が更新された場合、Clash for Windowsが定期的にSubscription URLにアクセスして最新の設定ファイルをダウンロードし、自動的に適用します。これにより、常に最新かつ利用可能なプロキシリストを手に入れることができます。
- 手軽さ: YAML設定ファイルを自分で管理したり、手動でインポートしたりする手間が省けます。URL一つで設定の全てが管理されます。
- 多様性: 一つのSubscription URLに、様々な国や種類のプロキシサーバー、推奨されるルールセット、プロキシグループ定義などが含まれていることが一般的です。
3.2 Subscription URLの取得方法
Subscription URLは、利用しているプロキシサービスプロバイダのウェブサイトや管理パネルから取得します。多くのサービスでは、ユーザーごとに固有のURLが生成されます。
取得手順の例:
- 利用しているプロキシサービスプロバイダのウェブサイトにログインします。
- 通常、「マイアカウント」「サービス情報」「設定」「ドキュメント」といったメニューの中に、「Clash」「サブスクリプション」「購読」といった項目があります。
- その項目の中に、「Clash (YAML) Subscription URL」のような形でURLが記載されています。このURLをコピーします。
注意点: Subscription URLは個人を特定できる情報を含んでいる場合が多く、非常に重要です。他人と共有したり、公開された場所に貼り付けたりしないでください。
3.3 Subscriptionの追加、更新、削除
Clash for WindowsでのSubscriptionの管理は「Profiles」タブで行います。
- 追加:
- 「Profiles」タブを開きます。
- 上部の入力欄に取得したSubscription URLを貼り付けます。
- 右側の「Download」ボタン(またはアイコン)をクリックします。
- ダウンロードに成功すると、プロファイルリストに新しい項目として追加されます。プロファイル名の隣には更新日時が表示されます。
- 追加されたプロファイルをクリックすると、その設定がロードされ、有効になります。
- 更新:
- Subscriptionによって追加されたプロファイルは、Clash for Windowsが自動的に定期更新します。
- 手動で今すぐ更新したい場合は、「Profiles」タブを開き、更新したいプロファイルの右側にある更新ボタン(円形の矢印アイコン)をクリックします。
- 削除:
- 「Profiles」タブを開きます。
- 削除したいプロファイルの右側にある削除ボタン(ゴミ箱アイコン)をクリックします。
- 確認メッセージが表示されるので、「はい」を選択します。
3.4 複数のSubscriptionの管理
Clash for Windowsでは、複数のSubscription URLを登録しておくことができます。これは、異なるサービスプロバイダを利用している場合や、異なる目的のために複数の設定を使い分けたい場合に便利です。
「Profiles」タブには、登録されているすべてのプロファイル(Subscription、ローカルファイル含む)がリストされます。リストの中から使用したいプロファイルをクリックするだけで、設定を簡単に切り替えることができます。
ただし、同時に有効にできるプロファイルは一つだけです。新しいプロファイルを選択すると、現在有効なプロファイルは自動的に無効になります。
3.5 Subscriptionの設定項目(YAMLファイル)
Subscription URLからダウンロードされるのはYAML形式の設定ファイルです。このファイルには、Clashの動作に関するほぼ全ての情報が含まれています。主な内容は以下の通りです。
port
,socks-port
: HTTP/Socksプロキシとしてリッスンするローカルポート番号。allow-lan
: LAN内の他のデバイスからの接続を許可するかどうか。mode
: デフォルトの動作モード(Rule, Global, Direct)。log-level
: ログの出力レベル。external-controller
: 外部からAPIで操作するための設定。dns
: DNS設定(アップストリームDNSサーバー、DoH/DoT設定など)。proxies
: 利用可能なプロキシサーバーのリスト。各サーバーのタイプ(ss, vmess, trojanなど)、サーバーアドレス、ポート、認証情報などが定義されます。proxy-groups
: プロキシグループの定義。複数のプロキシをどのように組み合わせて使用するか(select, url-test, fallback, load-balance)。rules
: 通信ルール。どの宛先/種類の通信をどのプロキシ/グループ/Direct/Rejectに振り分けるかを定義します。
通常、これらの設定はサービスプロバイダによって事前に最適化されて提供されますが、必要であればローカルファイルを編集するか、Clash for Windowsの「Profiles」タブで有効なプロファイルを右クリックし「Edit」を選択して編集することも可能です(ただし、Subscriptionプロファイルを編集すると、次回更新時に上書きされてしまう可能性があります)。
第4章:ルールベースルーティングの詳細
Clashの最も強力な機能であり、快適・安全な通信を実現する鍵となるのが「ルールベースルーティング」です。
4.1 なぜルールが必要なのか?
インターネット上の通信は多様です。ウェブサイトへのアクセス、アプリケーションのAPI通信、オンラインゲーム、ファイルダウンロードなど、様々な宛先に対して様々な目的で行われます。
もしすべての通信を一つのプロキシサーバー経由で行うと、以下のような問題が発生する可能性があります。
- パフォーマンスの低下: 国内のサイトやサービスにアクセスする際も、遠隔地の海外プロキシを経由すると通信速度が大幅に低下することがあります。
- アクセスの問題: 一部のサービスは、特定の国や地域からのアクセスを制限している場合があります。逆に、国内のサービスは海外からのアクセスをブロックしていることもあります。すべての通信を一つのプロキシでまかなうと、アクセスしたいサービスに接続できなくなる可能性があります。
- セキュリティリスク: すべての通信を信頼できないプロキシサーバー経由で行うことは危険です。
- コスト: 有料のプロキシサービスは通信量や帯域幅に制限がある場合があります。不要な通信までプロキシ経由にすると、制限を超過してしまう可能性があります。
ルールベースルーティングを使用することで、これらの問題を解決し、以下のようなメリットを享受できます。
- 通信速度の最適化: 国内サイトはDirect接続、海外サイトは高速な海外プロキシ、といったように通信先に応じて最適な経路を選択できます。
- アクセス制限の回避と遵守: アクセスしたい海外サービスには海外プロキシを使い、日本のサービスにはDirect接続または国内プロキシを使うことで、それぞれのアクセス制限に対応できます。
- セキュリティ向上: 危険なサイトリストへのアクセスはReject(ブロック)する、特定のアプリケーションの通信だけを安全なプロキシ経由にする、といった制御が可能です。
- コスト削減: 不要な通信や大容量の通信はプロキシを使わないように設定することで、有料サービスの利用量を節約できます。
4.2 Clashのルール形式(YAML)
Clashのルールは、プロキシ設定ファイルのrules:
セクションにYAML形式で記述されます。各ルールはリスト形式になっており、上から順に評価されます。最初にマッチしたルールが適用され、それ以降のルールは無視されます。
基本的なルールの形式は以下のようになります。
yaml
rules:
- RULE_TYPE,PARAMETER,PROXY_OR_GROUP
- RULE_TYPE,PARAMETER,PROXY_OR_GROUP
# ... その他のルール
- FINAL,PROXY_OR_GROUP_FOR_DEFAULT # どのルールにもマッチしなかった場合の最終ルール
RULE_TYPE
: ルールを適用する条件の種類を指定します。PARAMETER
:RULE_TYPE
に対応する具体的な条件(ドメイン名、IPアドレス、国コードなど)を指定します。PROXY_OR_GROUP
: そのルールにマッチした通信をどのように処理するかを指定します。使用するプロキシサーバーの名前、プロキシグループの名前、または特別なキーワード(DIRECT
,REJECT
,PROXY
)を指定します。
4.3 基本的なルールの種類
Clashでよく使用されるルールの種類をいくつか紹介します。
DOMAIN-SUFFIX
: 指定したドメインおよびそのサブドメインにマッチします。- 例:
- DOMAIN-SUFFIX,google.com,ProxyA
(google.com
およびmail.google.com
,drive.google.com
などにマッチ)
- 例:
DOMAIN
: 指定した完全一致ドメインにのみマッチします。- 例:
- DOMAIN,www.google.com,ProxyA
(www.google.com
にのみマッチし、google.com
やmail.google.com
にはマッチしません)
- 例:
DOMAIN-KEYWORD
: 指定したキーワードをドメイン名に含むものにマッチします。- 例:
- DOMAIN-KEYWORD,google,ProxyA
(ドメイン名にgoogle
という文字列が含まれていればマッチ)
- 例:
GEOIP
: 通信先のIPアドレスの地理情報(国コード)に基づいてマッチします。国コードはISO 3166-1 Alpha-2形式(例: JP, US, CN)を使用します。- 例:
- GEOIP,CN,ProxyB
(通信先が中国のIPアドレスであればマッチ) - 例:
- GEOIP,JP,DIRECT
(通信先が日本のIPアドレスであれば直接接続)
- 例:
IP-CIDR
: 通信先のIPアドレスが指定したCIDRブロックに含まれる場合にマッチします。- 例:
- IP-CIDR,192.168.1.0/24,DIRECT
(プライベートネットワーク内のIPアドレスに直接接続) - 例:
- IP-CIDR,8.8.8.8/32,DIRECT
(特定のIPアドレス(Google DNS)に直接接続) - バージョンによってはIPv6の
IP-CIDR6
もサポートします。
- 例:
SRC-IP-CIDR
: 通信元のIPアドレスが指定したCIDRブロックに含まれる場合にマッチします。LAN内の特定デバイスからの通信にのみルールを適用したい場合などに使います。PROCESS
: WindowsなどのOSで、特定のプロセス(実行ファイル名)からの通信にマッチします。- 例:
- PROCESS,firefox.exe,ProxyC
(Firefoxからの通信にマッチ) - 注意:
PROCESS
ルールはすべての通信に適用されるわけではなく、信頼性も他のルールタイプに比べて低い場合があります。特にHTTPS通信ではプロセス情報を取得できないことがあります。
- 例:
RULE-SET
/RULE-PROVIDER
: 外部のファイルやURLで定義されたルールセットを読み込みます。これにより、膨大なルールを管理しやすくなります(後述)。- 例:
- RULE-SET,google,ProxyA
(google
という名前で定義されたルールセットに含まれる宛先にマッチ)
- 例:
MATCH
: どのルールにもマッチしなかった場合の最終的なルールを指定します。これは通常、ルールの最後に置かれます。- 例:
- MATCH,ProxyD
(どのルールにもマッチしなかった通信はProxyDを使用)
- 例:
- 特別なキーワード:
DIRECT
: プロキシを使用せず、直接接続します。REJECT
: 通信をブロックします。広告やトラッキングサイト、マルウェアサイトへのアクセスをブロックするのに使用されます。REJECT-IP
(IP応答)、REJECT-NOHOST
(ホストが見つからない応答)など、応答タイプを指定できる場合もあります。PROXY
: 使用するプロキシサーバーまたはプロキシグループの名前を指定します。
4.4 ルールセット(Rule Provider)の活用
サービスプロバイダから提供されるSubscriptionには、通常、rules:
セクションに直接ルールが記述されているだけでなく、rule-providers:
セクションが定義されていることがあります。これは、外部のファイルやURLに記述された大規模なルールリストを参照するための機能です。
- Rule Providerの定義(YAMLの
rule-providers:
セクション):
yaml
rule-providers:
google:
type: http # または file
behavior: domain # または ip, classical
url: "https://example.com/rules/google.yaml" # または path: ./rules/google.yaml
interval: 86400 # 更新間隔(秒)
# ... その他設定
china:
type: http
behavior: ip
url: "https://example.com/rules/china_ip.yaml"
interval: 86400
ここでは、google
とchina
という名前のRule Providerが定義されています。それぞれのタイプ、ルールタイプ(domain
,ip
など)、取得元URL、更新間隔などが指定されています。 - Rule Providerをルールとして使用(YAMLの
rules:
セクション):
“`yaml
rules:- RULE-SET,google,ProxyA # google Rule Providerに含まれるルールにマッチしたらProxyAを使用
- RULE-SET,china,DIRECT # china Rule Providerに含まれるルールにマッチしたら直接接続
# … その他のルール
``
RULE-SET
このようにルールタイプを使って、定義したRule Providerを参照します。Rule Provider内部のルールにマッチした場合、そのルールに指定されたアクション(
ProxyAまたは
DIRECT`)が実行されます。
Rule Providerを利用するメリット:
- 管理の容易さ: 膨大なルールリスト(例: 広告ブロックリスト、中国サイトリスト、海外サイトリストなど)をメインの設定ファイルから分離できます。
- 自動更新: Rule ProviderのURLを指定しておけば、メインのSubscriptionと同様に定期的に自動更新されます。
- 共通化: 複数のClash設定ファイルで同じRule Providerを参照することで、ルールの共通化とメンテナンスが容易になります。
多くのサービスプロバイダは、Google、Microsoft、Netflix、Spotifyなどの有名サービス向けルールや、広告・トラッカーブロック用ルール、地域判定用IPリストなどをRule Providerとして提供しています。これらを活用することで、手軽に高度なルーティングを実現できます。
4.5 自分でルールを作成・編集する方法
サービスプロバイダから提供されるSubscriptionは便利ですが、特定のアプリケーションやサイトに対して独自のルールを適用したい場合があります。
- 方法1:Subscriptionをローカルファイルとして保存し編集する
- 「Profiles」タブで有効なSubscriptionプロファイルを右クリックし、「Export as YAML File」を選択してローカルに保存します。
- 保存したYAMLファイルをテキストエディタ(Visual Studio Code, Notepad++など、YAML形式をサポートするものが推奨)で開きます。
rules:
セクションに新しいルールを追加または既存のルールを編集します。例えば、特定のゲームのサーバーへの通信を特定のプロキシに固定したい場合や、特定のローカルIPアドレスからの通信を常にDirectにしたい場合などです。- 編集したファイルを保存します。
- 「Profiles」タブで「Import From File」またはドラッグ&ドロップで編集したローカルファイルをClash for Windowsに読み込みます。
- 読み込んだローカルプロファイルをクリックして有効にします。
- 注意: この方法で作成したローカルプロファイルは、元のSubscriptionとは切り離されます。元のSubscriptionが更新されても、このローカルプロファイルは自動更新されません。手動で更新したい場合は、再度Subscriptionをダウンロードし、編集し直す必要があります。
- 方法2:Custom Configurationを利用する(上級者向け)
- Clash for Windowsには、ベースとなるSubscription設定を読み込んだ後、ユーザーが定義した追加の設定やルールをマージする機能があります。これにより、Subscriptionの自動更新のメリットを活かしつつ、独自のルールを追加できます。
- 「Settings」タブを開き、「Profile > Custom Configuration」の項目を探します。
- 「Edit」ボタンをクリックすると、Custom Configuration用のYAML編集ウィンドウが開きます。
- ここに、追加したい
rules:
、proxy-groups:
、proxies:
、dns:
などの設定項目を記述します。 - 例:
“`yaml
rules:- DOMAIN,my-internal-service.local,DIRECT # 社内サービスは直接接続
- PROCESS,MyGame.exe,GameProxyGroup # ゲームの通信は特定のグループへ
# Subscriptionの既存ルールに追加されます
“`
- 保存してウィンドウを閉じます。
- 「Profiles」タブで、Custom Configurationを適用したいSubscriptionプロファイルを選択し、そのプロファイルの右側にある「Edit」アイコンをクリックします。
- 編集ウィンドウが表示されたら、上部にある「Merge from Custom Configuration」にチェックを入れます。
- 「Save」をクリックして保存します。
- これにより、Subscriptionがダウンロードされるたびに、Custom Configurationの内容がマージされて有効になります。
- 注意: Custom Configurationで定義したルールは、Subscription自体のルールリストのどこにマージされるか(通常はルールの末尾)によって適用順序が変わります。また、Subscriptionのルールと競合しないように注意が必要です。
4.6 ルールの適用順序と注意点
Clashのルールは上から順に評価されます。最初にマッチしたルールが適用され、その後のルールは無視されます。
このため、より具体的なルール(例: DOMAIN,www.google.com
)は、より一般的なルール(例: DOMAIN-SUFFIX,google.com
や GEOIP,US
)よりも上に配置する必要があります。一般的なルールを先に置いてしまうと、具体的なルールに到達する前にマッチしてしまい、意図しないプロキシが使われる可能性があります。
例えば、
yaml
rules:
- GEOIP,US,US_Proxy # 米国のIPアドレスはすべて米国のプロキシ
- DOMAIN,www.google.com,DIRECT # www.google.comは直接接続
- MATCH,Other_Proxy # その他は別のプロキシ
この場合、www.google.com
が米国のIPアドレスを返した場合、先に- GEOIP,US,US_Proxy
にマッチしてしまい、US_Proxy
経由で接続されます。www.google.com
にDirect接続したい場合は、ルールを逆に記述する必要があります。
yaml
rules:
- DOMAIN,www.google.com,DIRECT # www.google.comは直接接続 (こちらを先に)
- GEOIP,US,US_Proxy # 米国のIPアドレスはすべて米国のプロキシ (こちらを後に)
- MATCH,Other_Proxy
また、PROCESS
ルールは信頼性が低いため、他のルールタイプ(DOMAIN
, IP-CIDR
など)で代替できないか検討するか、あるいはあくまで補助的なルールとして使用することを推奨します。
第5章:プロキシグループ(Proxy Group)の活用
Clashのもう一つの強力な機能が「プロキシグループ」です。複数のプロキシサーバーを一つにまとめ、様々な方法で使い分けることができます。
5.1 Proxy Groupとは何か、その目的
プロキシグループは、プロキシ設定ファイル(YAML)のproxy-groups:
セクションで定義されます。ここでは、複数のプロキシサーバーや他のプロキシグループを組み合わせて、一つの論理的な「グループ」を作成します。
Proxy Groupを使用する主な目的は以下の通りです。
- 手動選択: 複数のサーバーの中からユーザーが手動で接続先を選べるようにする。
- 自動選択(遅延テスト): 複数のサーバーに対して定期的に遅延テストを行い、最も応答速度の速いサーバーを自動的に選択する。
- フェイルオーバー: サーバーが利用できなくなった場合に、リスト内の別のサーバーに自動的に切り替える(冗長性確保)。
- 負荷分散: 複数のサーバーに通信を分散させる。
- グループのネスト: プロキシグループの中に別のプロキシグループを含めることで、より複雑なルーティング構造を構築する。
ルールを作成する際、個々のプロキシサーバー名を指定する代わりに、プロキシグループ名を指定することで、そのグループの挙動に基づいて自動的に最適なサーバーが選択されるようになります。
5.2 Proxy Groupの種類と設定方法
主要なProxy Groupの種類と、YAMLでの基本的な設定方法を説明します。
select
:- ユーザーがグループに含まれるプロキシサーバーまたは他のプロキシグループの中から手動で選択できるようにします。
- Clash for Windowsの「Proxies」タブで、このタイプのグループをクリックすると、含まれるプロキシリストが表示され、選択できます。
- YAML設定例:
“`yaml
proxy-groups:- name: Manual Select Group
type: select
proxies:- ProxyA #
proxies:
セクションで定義されたプロキシ名 - ProxyB
- Another Select Group # 別のプロキシグループ名を含めることも可能
- DIRECT # DIRECT接続も選択肢に含める
- REJECT # REJECTも選択肢に含める
“`
- ProxyA #
- name: Manual Select Group
- 用途: 状況に応じて最適なサーバーを手動で選びたい場合に便利です。
url-test
:- グループに含まれるプロキシサーバーに対して定期的にURLへの接続テストを行い、応答速度(遅延)が最も短いサーバーを自動的に選択します。
- YAML設定例:
“`yaml
proxy-groups:- name: Auto Select Fastest
type: url-test
proxies:- ProxyA
- ProxyB
- ProxyC
url: http://www.gstatic.com/generate_204 # テストに使用するURL (到達可能で応答が速いURLが良い)
interval: 300 # テスト間隔(秒)
tolerance: 50 # 応答速度の許容差(ms)。テスト結果の遅延が最も短いサーバーよりtolerance ms以上遅いサーバーは選択肢から外される。
“`
- name: Auto Select Fastest
- 用途: 複数の利用可能なサーバーの中から常に最も高速なサーバーを自動的に使いたい場合に最適です。プロキシサービスのサーバーリストに含まれる多数のサーバーから最適なものを自動で選ばせたい場合によく使用されます。
fallback
:- グループに含まれるプロキシサーバーをリストの先頭から順に試行し、最初の利用可能な(接続に成功した)サーバーを使用します。リストの先頭のサーバーが利用できなくなった場合、自動的に次のサーバーに切り替わります。
- YAML設定例:
“`yaml
proxy-groups:- name: Fallback Group
type: fallback
proxies:- PrimaryProxy
- SecondaryProxy # PrimaryProxyが使えない場合にこちらに切り替え
- TertiaryProxy # SecondaryProxyも使えない場合にこちらに切り替え
url: http://www.gstatic.com/generate_204 # テストに使用するURL (サーバーが利用可能か判定するため)
interval: 300 # テスト間隔(秒)
fallbackではtoleranceは通常使用しない
“`
- name: Fallback Group
- 用途: メインで使用したいサーバーがあり、それが使えなかった場合の代替サーバーを用意しておきたい場合に便利です。冗長性を高める目的で使用されます。
load-balance
:- グループに含まれるプロキシサーバーに対して、特定のアルゴリズム(例: ラウンドロビン)に基づいて通信を分散させます。
- YAML設定例:
“`yaml
proxy-groups:- name: Load Balance Group
type: load-balance
proxies:- ServerX
- ServerY
- ServerZ
url: http://www.gstatic.com/generate_204 # テストに使用するURL (サーバーが利用可能か判定するため)
interval: 300 # テスト間隔(秒)
strategy: consistent-hash # 分散アルゴリズムを指定できる場合がある (coreバージョンによる)
“`
- name: Load Balance Group
- 用途: 複数のサーバーに均等に負荷を分散させたい場合に有効ですが、Clashの
load-balance
は単純なラウンドロビンに近い動作をすることが多く、高度な負荷分散が必要な場合は他の方法を検討することもあります。
5.3 遅延テスト(Latency Test)の活用
url-test
やfallback
グループの動作、そしてselect
グループで手動選択する際に、各プロキシサーバーの応答速度(遅延)を知ることは非常に重要です。Clash for Windowsでは、この遅延テストをGUIから簡単に行うことができます。
- 「Proxies」タブを開きます。
- 各プロキシサーバーまたはプロキシグループ(selectタイプなど)の右側に、棒グラフのようなアイコンが表示されています。これが遅延テストボタンです。
- このボタンをクリックすると、そのプロキシ(またはグループ内の各プロキシ)に対して、設定されたテストURL(またはデフォルトURL)への接続テストが行われ、応答までの時間がミリ秒(ms)単位で表示されます。
url-test
グループの場合、このテスト結果に基づいて使用するサーバーが自動的に切り替えられます。select
グループの場合、遅延テストの結果を参考に、ユーザーが最も高速なサーバーを手動で選択することができます。
定期的に遅延テストを実行することで、現在利用可能なプロキシサーバーの中でどれが最もパフォーマンスが良いかを把握できます。特に海外のサーバーを利用する場合、時間帯によってパフォーマンスが大きく変動することがあるため、遅延テストは快適な通信環境を維持するために役立ちます。
5.4 カスタムProxy Groupの設定例
サービスプロバイダが提供する設定ファイルには、すでにいくつかのProxy Groupが定義されていることが一般的です。しかし、前述のCustom Configurationなどを利用して、独自のProxy Groupを作成することも可能です。
例:特定の用途に特化したProxy Groupを作成する
- 特定の海外ストリーミングサービス(例:Netflix USA)を見たいが、そのために通常のブラウジング速度を犠牲にしたくない。
- いくつかの米国内サーバーがあり、その中から常に最速のサーバーを使いたい。
- さらに、もし米国内サーバーがすべてダウンした場合に備えて、カナダのサーバーを代替にしたい。
このような場合、以下のようなProxy Group構成を考えることができます。
“`yaml
Custom Configuration や ローカル設定ファイルに追記
proxy-groups:
# 1. Netflix USA視聴用の自動選択グループ
– name: Netflix USA Auto
type: url-test
proxies:
– USA_Proxy_1 # proxies: セクションで定義済みの米国内プロキシ名
– USA_Proxy_2
– USA_Proxy_3
url: http://www.gstatic.com/generate_204 # NetflixのドメインなどをテストURLにするのは避けた方が良い
interval: 300
# 2. 米国プロキシがダメな場合のFallbackグループ
– name: USA Fallback
type: fallback
proxies:
– Netflix USA Auto # 上記の自動選択グループを先頭に配置
– Canada_Proxy_1 # 定義済みのカナダプロキシ名
– DIRECT # もしプロキシがすべて使えなかったら直接接続(推奨はしないが選択肢として)
url: http://www.gstatic.com/generate_204 # サーバー利用可能性テスト用
interval: 300
# 3. ユーザーがNetflix USA接続を選択するためのグループ
– name: Streaming – Netflix USA
type: select
proxies:
– USA Fallback # 上記のFallbackグループを選択肢に含める
– Global Proxy # 他のGlobalプロキシグループ
– DIRECT # 直接接続も選択肢に含める
rules:
# Netflix関連のドメインにマッチしたら、Streaming – Netflix USA グループを使う
– DOMAIN-SUFFIX,netflix.com,Streaming – Netflix USA
– DOMAIN-SUFFIX,netflix.net,Streaming – Netflix USA
# … その他、Netflix関連のルールを追加
# その他のルールは既存のものを維持
# …
“`
このように、複数のProxy Groupを組み合わせ、ルールで特定の通信をそのグループに誘導することで、非常に柔軟かつ効率的なルーティングを実現できます。select
グループを最上位に置き、その中にurl-test
やfallback
グループを含める構成は、手動選択の柔軟性と自動最適化の利便性を両立させる一般的な手法です。
第6章:モードとシステムプロキシ
Clash for Windowsの「Mode」と「System Proxy」設定は、Clashの適用範囲と動作方法を決定する基本的な項目です。
6.1 Clash for Windowsのモード
「General」タブにある「Mode」設定は、Clashコアが受信した通信をどのように処理するかを全体的に制御します。
- Rule (推奨):
- これがClashのデフォルトであり、最も強力なモードです。
- プロファイルで定義された
rules:
セクションのルールがすべて有効になり、受信した通信はルールリストを上から順に評価され、最初に見つかったマッチしたルールに従って処理されます(指定されたプロキシを使用、Direct接続、Reject)。 - 特定のサイトやアプリケーションごとに異なるプロキシを使いたい、国内サイトはDirectにしたい、特定のサイトはブロックしたい、といったClashの高度な機能を利用するには、このモードを選択する必要があります。
- Global:
- すべての通信が、
global-outbound:
設定で指定されたプロキシサーバーまたはプロキシグループを強制的に経由します。 - このモードは、VPNのようにPC全体の通信を単一のプロキシサーバー経由にしたい場合に便利です。例えば、地理的な制限を回避するために全ての通信を特定の国のサーバー経由にしたい場合などです。
- ただし、このモードではルールベースルーティングの利点は失われます。国内サイトへのアクセスも海外プロキシ経由になり、速度低下を招く可能性があります。
- 「Proxies」タブで「Global」という項目をクリックし、使用したいプロキシまたはプロキシグループを選択できます。
- すべての通信が、
- Direct:
- すべての通信がプロキシを介さずに直接行われます。Clashコアは起動していますが、ネットワークトラフィックに対してプロキシとしての処理は行いません。
- 一時的にプロキシを完全に無効にしたい場合や、Clashの機能を使わずに通常のネットワーク接続に戻したい場合に選択します。
通常は「Rule」モードを選択し、ルールの定義によって通信を制御するのがClashの標準的な使い方です。
6.2 System Proxyの設定
「General」タブにある「System Proxy」のスイッチは、Windowsのシステム全体のプロキシ設定をClash for Windowsが制御するかどうかを決定します。
- オン:
- Clash for WindowsがWindowsのシステムプロキシ設定を変更し、ローカルで動作するClashのHTTP/Socksポート(デフォルトでは7890/7891など)をシステムプロキシとして設定します。
- これにより、Internet Explorer, Microsoft Edge, Google Chrome, Firefox(デフォルト設定の場合)、そしてWindowsの多くのアプリケーション(Windowsストアアプリ、一部のデスクトップアプリなど)の通信が、Clash for Windows(Clashコア)を介して行われるようになります。
- PC全体の通信をClashで管理したい場合は、これをオンにする必要があります。
- オフ:
- Clash for WindowsはWindowsのシステムプロキシ設定を変更しません。Windowsは元のプロキシ設定(何も設定されていなければDirect接続)に戻ります。
- この場合、Clash for Windowsはローカルポート(デフォルト7890/7891)でプロキシサーバーとして動作していますが、アプリケーション側が明示的にこれらのポートをプロキシとして使用するように設定されていない限り、Clash for Windowsを介した通信は行われません。
- 特定のアプリケーションだけをClash経由にしたい場合(アプリケーション側でプロキシ設定ができる場合)や、他のプロキシツール(別のVPNクライアントなど)と併用したい場合(ただし競合に注意が必要)などに、System Proxyをオフにして使用することがあります。
ほとんどのユーザーは、PC全体の通信をClashで制御するためにSystem Proxyをオンにして使用するでしょう。
6.3 System ProxyとPACファイル
Windowsのシステムプロキシ設定では、固定のプロキシサーバーを指定する方法の他に、「PAC(Proxy Auto-Configuration)ファイル」を指定する方法があります。PACファイルはJavaScriptで記述されており、アクセス先のURLに応じてどのプロキシサーバーを使用するかを動的に判断するスクリプトが含まれています。
Clash for WindowsがSystem Proxyをオンにする際、内部的にはPACファイルを使用している場合があります(または、すべてのトラフィックをローカルポートに送る設定を行っています)。Clash for Windowsの「General」タブには、「Allow LAN」という設定項目もあり、これをオンにすると、同じLAN内の他のデバイスからPCのClash for Windowsをプロキシとして利用できるようになります。この場合も、他のデバイスでPACファイルを手動設定するなどして、Clash for WindowsがリッスンしているPCのIPアドレスとポートをプロキシとして指定する必要があります。
一般的に、Clash for WindowsのSystem Proxyをオンにして「Rule」モードで使用していれば、ほとんどのアプリケーションは自動的にClashのルールに従ったルーティングを行うようになります。手動でPACファイルをいじる必要は通常ありません。
第7章:セキュリティ機能と安全な利用
Clash for Windowsは、通信の快適性だけでなく、安全性に関しても様々な機能を提供します。しかし、プロキシツールである以上、その利用には注意が必要です。
7.1 HTTPSミットム攻撃への対策(TLS設定)
HTTPS通信は、サーバーとクライアント間で暗号化された通信路を確立することで安全性を確保します。しかし、プロキシツールは通常、この暗号化された通信の中身を検査・操作するために、MITM(Man-in-the-Middle、中間者攻撃)のような手法を用いることがあります。Clashも、一部の機能(例: 広告ブロックやルール適用)のためにHTTPS通信を復号化する設定が可能です。
- ClashのTLSハンドリング:
- Clashコアは、プロキシとして機能する際に、受信したHTTPS接続に対して、自身が生成した証明書を使って偽のTLS接続を確立し、その中身を読み取ります。そして、本来の宛先サーバーに対して正規のTLS接続を確立し、両者間のデータを中継します。
- この仕組みは、本来はクライアント(Clashが動作するPC)とサーバー間の信頼関係を破壊するものです。Clashが安全なプロキシサーバーと適切に設定されていない場合、またはClashコア自体に脆弱性がある場合、通信内容が第三者に傍受・改ざんされるリスクが生じます。
- 対策:
- 信頼できるSubscription/プロキシプロバイダを利用する: 最も重要です。提供される設定ファイルやプロキシサーバーが安全であることが前提です。出所不明なSubscription URLや無料プロキシの使用は、セキュリティリスクを伴います。
- 不要なTLSハンドリングを無効にする: 設定ファイル(YAML)の
tls:
セクションで、HTTPS通信を復号化するドメインを指定できます。通常、広告ブロックや特定のルール適用にのみ限定的に使用されます。デフォルトでは無効になっているか、必要最小限のドメインのみが設定されているはずです。もしすべてのHTTPS通信に対してTLSハンドリングが有効になっている(例:mitm: enabled: true
で特定のドメイン指定がない)場合は、設定を見直すか、そのSubscriptionの使用を避けるべきです。 - カスタムCA証明書のインストール: 一部の高度な機能(例: 全ドメインでのHTTPS復号化)を利用するには、Clashが生成するCA証明書をWindowsの信頼されたルート証明機関ストアにインストールする必要がある場合があります。これはセキュリティリスクを高める行為ですので、その目的とリスクを十分に理解した場合にのみ行ってください。通常は、そこまで設定する必要はありません。
7.2 DNS設定(DoH, DoT)によるプライバシー保護
インターネット通信の最初のステップは、アクセスしたいドメイン名をIPアドレスに変換するDNS(Domain Name System)ルックアップです。通常のDNSクエリは暗号化されずに送信されるため、第三者(インターネットサービスプロバイダなど)によって傍受され、どのようなサイトにアクセスしようとしているかが筒抜けになる可能性があります。
Clashは、セキュアなDNSプロトコルであるDoH(DNS over HTTPS)やDoT(DNS over TLS)をサポートしています。
- DoH/DoTのメリット:
- DNSクエリが暗号化されるため、プライバシーが向上します。
- DNSポイズニングなどの攻撃を防ぐのに役立ちます。
- 検閲システムがDNSクエリをブロックするのを回避できる場合があります。
- Clashでの設定:
- プロファイル(YAML)の
dns:
セクションで設定します。 enable: true
でDNS機能を有効にします。listen:
でClashがDNSクエリをリッスンするローカルIPアドレスとポートを指定します。enhanced-mode:
でDNSのリゾルブモード(fake-ip, redir-hostなど)を指定します。fake-ip
モードはルールベースルーティングで特に重要です。nameserver:
およびfallback:
で使用するアップストリームDNSサーバーを指定します。ここにDoHやDoTサーバーのURLを指定します。- 設定例:
yaml
dns:
enable: true
listen: 0.0.0.0:53 # ローカルのポート53でDNSクエリを受け付ける (管理者権限が必要になる場合がある)
enhanced-mode: fake-ip # 推奨されるモード
fake-ip-range: 198.18.0.1/16 # fake-ipに使用するIP範囲
nameserver: # 優先的に使用するDNSサーバー
- 114.114.114.114 # 例: 中国国内のDNS (通常は使わない)
- tls://8.8.8.8:853 # Google Public DNS (DoT)
- https://1.1.1.1/dns-query # Cloudflare DNS (DoH)
fallback: # nameserverが応答しない場合や、fake-ipで本来のIPが必要な場合に使用するDNSサーバー
- tls://8.8.4.4:853 # Google Public DNS (DoT)
- https://1.0.0.1/dns-query # Cloudflare DNS (DoH)
- system # システムのデフォルトDNSもFallbackに含めるか
# geoip-market: cn # GEOIPルールで使用するIPデータベースのリージョンを指定 - 多くのSubscriptionでは、すでにプライバシーを考慮したDNS設定(例: CloudflareやGoogleのDoH/DoTを使用)がデフォルトで含まれています。
- プロファイル(YAML)の
- WindowsのDNS設定:
- Clash for WindowsでSystem Proxyをオンにしている場合、WindowsのDNS設定は通常変更されません。アプリケーションからのDNSクエリは、システム設定に従って処理されるか、ClashのローカルDNSリゾルバー(上記
listen:
で指定したポート)に送信されるかのどちらかになります。 - ClashでDoH/DoTを使用する場合、通常は
enhanced-mode: fake-ip
を設定し、Clash自身がDNSクエリを処理し、指定されたnameserver/fallbackサーバー(DoH/DoTを含む)に転送するようにします。これにより、WindowsのシステムDNS設定に関わらず、Clash経由の通信ではセキュアなDNSが利用されるようになります。
- Clash for WindowsでSystem Proxyをオンにしている場合、WindowsのDNS設定は通常変更されません。アプリケーションからのDNSクエリは、システム設定に従って処理されるか、ClashのローカルDNSリゾルバー(上記
7.3 ログ機能の活用
Clash for Windowsの「Feedback」タブや、外部コントローラー(後述)を使用すると、Clashコアの動作ログを確認できます。ログには、どの通信がどのルールにマッチし、どのプロキシが使用されたか、接続エラーなどの情報が含まれています。
- ログの活用:
- 通信が意図したプロキシを経由しているか、ルールが正しく適用されているかを確認できます。
- 接続問題が発生した場合、ログを確認することで原因を特定する手がかりが得られます。
- 不審な通信が発生していないか監視できます。
- ログレベル:
- 設定ファイルや「General」タブでログレベル(debug, info, warning, error, silent)を設定できます。通常はinfoレベルで十分ですが、詳細なデバッグが必要な場合はdebugレベルに設定します。
7.4 危険なSubscriptionの見分け方
出所不明なSubscription URLや無料プロキシサービスには、以下のようなリスクが潜んでいます。
- 通信の傍受: プロキシサーバーの運営者によって通信内容(特にHTTPS復号化が有効な場合)が読み取られる可能性があります。
- 悪意のあるコードの混入: 提供される設定ファイルに、悪意のあるルール(例: 特定サイトへのアクセスを偽サイトに誘導する)や、危険なプロキシサーバー情報が含まれている可能性があります。
- 情報漏洩: アカウント情報、アクセス履歴などがプロバイダ側に記録され、悪用される可能性があります。
- 不安定なサービス: 無料や怪しいサービスは、予告なく停止したり、速度が極端に遅かったりすることが多いです。
安全なSubscriptionを選ぶためのヒント:
- 信頼できる有料サービスを利用する: 実績があり、評判の良い有料プロキシサービスプロバイダは、通常、セキュリティとプライバシーに配慮したサービスを提供しています。
- 公式サイトや公式フォーラムから情報を得る: サービスに関する情報やClash互換のSubscription URLは、必ずプロバイダの公式サイトや公式が認めた場所から入手してください。
- Subscription URLの提供元を確認する: 見知らぬ個人や怪しいウェブサイトから提供されたURLは避けてください。
- 設定ファイルの内容をざっくり確認する: 特に
rules:
セクションやproxies:
セクションに、身に覚えのない怪しいドメインやIPアドレス、見慣れないプロキシサーバーが含まれていないか、可能であれば確認します(全て理解する必要はありませんが、異常な点に気づくことがあります)。 - HTTPS復号化設定を確認する:
mitm:
設定が広範囲のドメインに適用されていないか確認します。 - 無料サービスのリスクを理解する: 無料サービスの中にも legitimate なものは存在しますが、その多くは帯域制限、通信傍受、データ販売などのリスクを伴う可能性があります。
7.5 常に最新バージョンを使用する
Clash for WindowsおよびClashコアは、セキュリティ上の脆弱性が発見された場合や、新しいプロトコルへの対応、不具合の修正のために定期的にアップデートされています。常に最新バージョンを使用することで、既知の脆弱性から保護され、より安全かつ安定した状態で利用できます。
Clash for Windowsの「Settings」タブには、自動アップデートに関する設定項目があります。これを有効にしておくことを推奨します。
第8章:パフォーマンス最適化
Clash for Windowsを使った通信をより快適にするためには、いくつかのパフォーマンス最適化のポイントがあります。
8.1 接続方式の選択
プロキシサーバーの種類(プロトコル)は、通信速度や安定性に影響を与えます。
- 一般的に高速とされるプロトコル: VMess, VLESS, Trojan, Hysteria などは、ShadowsocksやSocks5/HTTPプロトコルと比較して、高速化や難読化の技術が導入されていることが多いため、パフォーマンスが良い傾向があります。
- プロバイダが推奨するプロトコル: 利用しているサービスプロバイダが特定のプロトコルを推奨している場合は、それに従うのが良いでしょう。
- 利用可能なサーバーとプロトコル: Subscriptionに含まれるサーバーリストには、様々なプロトコルのサーバーが含まれている場合があります。Proxy Groupの
url-test
タイプを活用して、実際に遅延テストを行い、最もパフォーマンスの良いサーバーやグループを選択するのが現実的です。
8.2 Subscriptionの整理と最適化
プロキシサービスによっては、非常に多数のサーバーを含むSubscriptionを提供している場合があります。リストが多すぎると、Clash for Windowsの起動に時間がかかったり、UIの反応が遅くなったりすることがあります。
- 不要なサーバーを削除: 頻繁に利用しない国や、常に遅延が大きいサーバーは、Custom Configurationやローカルファイル編集でリストから削除することを検討します。
- Rule Providerの利用: 膨大なルールリストをRule Providerとして外部化することで、メイン設定ファイルのサイズを小さく保つことができます。
8.3 ルールセットの効率化
ルールの数が多いほど、Clashコアがルールリストを評価するのに時間がかかります。特にDOMAIN-KEYWORD
のようなあいまいなルールは、多くのドメインにマッチする可能性があるため、パフォーマンスに影響を与える可能性があります。
- 具体的なルールを優先:
DOMAIN
やDOMAIN-SUFFIX
を優先し、DOMAIN-KEYWORD
の使用は最小限に抑えます。 - Rule Providerの利用: サービスプロバイダが提供する最適化されたRule Providerを利用することで、効率的なルール評価が期待できます。
- 冗長なルールの削除: 同じ宛先に対して複数のルールが定義されていないか確認し、整理します。
8.4 システムリソースの使用状況確認
Clash for Windows(特にClashコア)は、ネットワークトラフィックを処理するため、CPUやメモリをある程度消費します。
- タスクマネージャーなどでClash for Windowsやその子プロセス(Clashコア)のリソース使用率を確認します。もし異常に高い場合は、設定ファイルに問題があるか、プロキシサーバーとの接続に問題がある可能性があります。
- PCのスペックが低い場合、多数のルールやプロキシを使用するとパフォーマンスが低下する可能性があります。必要に応じて設定を簡素化することを検討します。
8.5 同時接続数やタイムアウト設定
ClashのYAML設定ファイルには、同時接続数や各種タイムアウトに関する設定項目(tcp-concurrent: true
、udp:
設定、connect-timeout:
など)が含まれている場合があります。これらの設定は、特定のネットワーク環境やプロキシサーバーとの相性によって調整することで、安定性やパフォーマンスが向上する可能性があります。しかし、これらの設定は高度であり、誤った設定はかえって問題を招く可能性があるため、デフォルトのままで問題なければ触らないのが無難です。
第9章:トラブルシューティング
Clash for Windowsを使用していて問題が発生した場合の一般的なトラブルシューティング方法を説明します。
9.1 接続できない場合のチェックリスト
- Clash for Windowsが起動しているか?: まず、Clash for Windowsアプリケーション自体が起動していることを確認します。タスクトレイにアイコンが表示されているはずです。
- System Proxyがオンになっているか?: 「General」タブでSystem Proxyのスイッチがオンになっているか確認します。オンになっていない場合、多くのアプリケーションはClashを介さずに通信します。
- Modeが適切か?: 「General」タブでModeが「Rule」または「Global」になっているか確認します。「Direct」モードではプロキシは使用されません。
- 有効なプロファイルがロードされているか?: 「Profiles」タブで、使用したいプロファイルが選択され、有効になっているか確認します。エラーが表示されていないかも確認します。
- プロキシサーバーは利用可能か?: 「Proxies」タブを開き、使用しようとしているプロキシサーバーまたはプロキシグループの遅延テスト(アイコンをクリック)を実行します。遅延時間が表示されない、タイムアウトする、またはHTTPエラーが表示される場合は、そのサーバーが利用できない可能性があります。他のサーバーを試すか、Subscriptionを更新してみてください。
- Subscriptionは最新か?: 「Profiles」タブでSubscriptionの更新日時を確認し、古ければ手動で更新ボタンをクリックします。
- ファイアウォールやセキュリティソフトの設定: Windowsファイアウォールやインストールしているセキュリティソフトが、Clash for Windowsの通信(特にローカルポート7890/7891など)をブロックしていないか確認します。必要であれば例外設定を追加します。
- ネットワーク環境: インターネット接続自体に問題がないか確認します。Clash for Windowsを終了し、System Proxyをオフにした状態でインターネットに接続できるか試します。
- 他のプロキシ/VPNツールとの競合: 他のVPNクライアントやプロキシツールが同時に起動している場合、ネットワーク設定が競合して問題が発生することがあります。他のツールは終了させてください。
- PCを再起動する: 一時的なネットワークの問題や設定の不整合は、PCの再起動で解決することがあります。
- Clash for Windowsを再起動する: アプリケーション自体の一時的な不具合であれば、再起動で解決することがあります。
- Subscriptionを再ダウンロード/プロファイルを再インポート: 設定ファイル自体が破損している可能性もゼロではありません。Subscription URLから再度ダウンロードするか、ローカルファイルを再インポートしてみてください。
9.2 特定のサイトにアクセスできない問題
- ルールが正しく適用されているか?: 「Connections」タブを開き、アクセスしようとしているサイトへの通信がどのルールにマッチし、どのプロキシ(またはDirect/Reject)に振り分けられているか確認します。
- もし意図しないプロキシに振り分けられている場合は、ルールの順序や定義を見直す必要があります。
- もし「REJECT」にマッチしている場合は、そのルールを無効にするか修正します。
- もし「DIRECT」にマッチしているがアクセスできない場合は、そのサイト自体が海外からのアクセスをブロックしている、またはローカルネットワークの問題である可能性があります。
- 使用しているプロキシがそのサイトへのアクセスをサポートしているか?: 一部のプロキシサーバーは、特定のサイトへのアクセスをブロックしている場合があります。他のプロキシサーバーやプロキシグループを試してみてください。「Proxies」タブで手動でプロキシを切り替えて確認できます(
select
グループが便利です)。 - DNSの問題: DNSクエリが正しく解決されているか確認します。Clashのログや、コマンドプロンプトで
nslookup [サイトのドメイン名]
を実行し、返されるIPアドレスが正しいか確認します。ClashでDoH/DoTを使用している場合、そのDNSサーバー自体に問題がないかも確認します。 - HTTPS復号化の問題: 特定のサイトで証明書エラーなどが発生する場合、ClashのHTTPS復号化機能が原因である可能性があります。設定ファイルでそのドメインに対する
mitm:
設定が無効になっているか確認します。
9.3 速度が遅い場合の原因特定
- プロキシサーバーの遅延: 「Proxies」タブで各プロキシサーバーの遅延テストを実行し、最も遅延が大きいサーバーを使っていないか確認します。
url-test
グループを活用して自動的に最速サーバーを選択させます。 - プロキシサーバーの帯域幅制限: 利用しているプロキシサービスの帯域幅や速度制限に達していないか確認します。
- ルールの非効率性: 前述の「ルールの適用順序と注意点」や「ルールセットの効率化」を参照し、ルール評価に時間がかかっていないか確認します。
- ネットワーク環境: ローカルのネットワーク回線速度自体が低下していないか確認します。
- プロキシサーバーの混雑: 利用者数が多い時間帯など、プロキシサーバー自体が混雑している可能性があります。別のプロキシサーバーやグループを試すか、時間帯を変えてみてください。
- Clashコアのリソース使用: タスクマネージャーでClashのリソース使用率を確認します。
9.4 Clash for Windowsが起動しない/クラッシュする場合
- 互換性の問題: WindowsのバージョンとClash for Windowsのバージョンに互換性の問題がないか、公式サイトやGitHubのIssueを確認します。
- 設定ファイルの破損/不正な記述: ロードしようとしているプロファイル(Subscription含む)のYAML設定ファイルに記述ミスや破損がないか確認します。特に手動で編集した場合は注意が必要です。 YAML Validatorのようなオンラインツールで構文チェックを行うのも有効です。
- 管理者権限: 一部の設定(特にポート53でDNSをリッスンする場合など)には管理者権限が必要になる場合があります。Clash for Windowsを管理者として実行してみてください(ただし、通常は不要です)。
- クリーンインストール: 解決しない場合、Clash for Windowsを完全にアンインストールし、プログラムファイルだけでなく、ユーザーデータ(設定ファイルなどが保存されているフォルダ)も削除してから、最新版を再インストールすることを検討します。ユーザーデータフォルダの場所は、Clash for Windowsの設定やドキュメントに記載されています。
9.5 ログの活用方法
トラブルシューティングを行う上で、Clash for Windowsのログは非常に重要な情報源です。
- 「Feedback」タブを開きます。
- 画面下部にClashコアのリアルタイムログが表示されます。または、「Open Log Folder」ボタンをクリックして、ログファイル(
run.log
など)を直接開くこともできます。 - ログには、Clashコアの起動状況、設定ファイルのロード結果、各接続がどのルールにマッチしたか、どのプロキシが使用されたか、接続エラーの詳細などが記録されています。
- エラーメッセージや警告メッセージに注目し、問題の原因を示唆するキーワードを探します。
- 必要に応じて、ログレベルを「debug」に上げて、より詳細な情報を取得します(ただしログ量が増大します)。
9.6 コミュニティやドキュメントを参照する方法
Clash for WindowsやClashコアに関する情報は、以下の場所で入手できます。
- Clash for Windows GitHubリポジトリ: Issueトラッカーには、他のユーザーが報告したバグや問題、その解決策に関する情報が含まれている場合があります。また、WikiやREADMEファイルにドキュメントが掲載されていることもあります。
https://github.com/Fndroid/clash_for_windows_pkg/ - Clashコア GitHubリポジトリ: Clashコア自体の技術的な仕様や機能に関する詳細な情報があります。
https://github.com/Dreamacro/clash - オンラインフォーラムやコミュニティ: Redditの
/r/Clash_
, Telegramグループなど、Clashユーザーが集まるコミュニティで質問したり、情報を交換したりできます。ただし、非公式な場所での情報には注意が必要です。 - プロキシサービスプロバイダのドキュメント: 利用しているサービスのドキュメントには、Clash for Windowsに関するFAQや設定方法が記載されていることが多いです。
第10章:高度な設定とカスタマイズ
Clash for Windowsは、基本的なGUI操作だけでなく、より高度な設定やカスタマイズも可能です。
10.1 External Controllerの利用
Clashコアは、外部からHTTP API経由で制御するための機能(External Controller)を備えています。Clash for Windowsはこの機能を利用してUIを提供しています。
- 設定: 設定ファイル(YAML)の
external-controller:
セクションで、リッスンするIPアドレスとポート、そして認証用のシークレットキーを指定します。
yaml
external-controller: 127.0.0.1:9090 # 外部からのアクセスを許可する場合は 0.0.0.0 を指定
secret: YourSecretKey123 # 任意のシークレットキー - 用途:
- Web UI: Clash for Windowsとは別の、WebブラウザでアクセスできるUI(例:
yacd
– Yet Another Clash Dashboard)を利用できます。これにより、より詳細な情報確認や操作が可能になる場合があります。 - コマンドラインツール: コマンドラインからAPIを叩いてClashの状態を取得したり、設定を変更したりするスクリプトを作成できます。
- 他のアプリケーションとの連携: Clash for Windowsが提供していない特定の機能や自動化を実現するために利用できます。
- Web UI: Clash for Windowsとは別の、WebブラウザでアクセスできるUI(例:
- 注意: External Controllerを
0.0.0.0
でリッスンし、かつシークレットキーを設定していない場合、同じネットワーク内の誰からでもClashの設定を変更されてしまうリスクがあります。通常は127.0.0.1
(ローカルホストのみ)に設定しておくのが安全です。
10.2 APIを使った操作例(概念)
External Controller APIを利用すると、以下のような操作が可能です(例であり、具体的なAPIエンドポイントはClashコアのバージョンによります)。
- 現在の設定情報の取得
- プロキシ/プロキシグループの状態(遅延など)の取得
- プロキシグループの選択肢の切り替え
- ルールのリロード
- 接続中のセッション情報の取得と強制切断
- 統計情報の取得
これは主に開発者や高度なユーザー向けの機能です。
10.3 Custom Configurationの活用(再掲)
前述の通り、Custom Configuration機能は、Subscriptionプロファイルの自動更新の利便性を維持しつつ、独自のルール、プロキシグループ、DNS設定などを追加・上書きするための強力な手段です。YAML形式の記述に慣れてきたら、この機能を積極的に活用することで、よりパーソナルな設定を構築できます。
10.4 Geodataの更新
Clashコアは、GEOIP
ルールなどの地理情報判定に「GeoLite2」などのIPデータベースを利用しています。このデータベースは定期的に更新されており、最新の状態に保つことで正確な地域判定が可能になります。
- Clash for Windowsの「Settings」タブに、Geodataファイルの更新に関する設定がある場合があります。
- または、利用しているSubscriptionプロバイダが、Rule Providerとして最新のGEOIPリストを提供していることもあります。
- 手動でGeodataファイルをダウンロードし、Clash for Windowsのデータフォルダに配置する必要がある場合もあります。
正確なGEOIPルールを適用するためには、Geodataを最新の状態に保つことが重要です。
まとめ
本記事では、Clash for Windowsを使ってPC通信を快適かつ安全にするための詳細な方法を解説しました。
Clash for Windowsは、その基盤となるClashコアの強力なルールベースルーティング機能により、従来のプロキシツールやVPNとは一線を画す柔軟な通信制御を可能にします。通信の種類や宛先に応じて最適なプロキシサーバーを選択したり、特定の通信をブロックしたり、国内通信は直接行うことで速度を維持したりといった、細やかな設定が可能です。
快適な通信環境の実現に向けて:
- 複数のプロキシサーバーを持つSubscriptionを利用し、Proxy Groupの
url-test
機能を活用して常に最速のサーバーを選択できるように設定します。 - 国内のサイトやサービスへのアクセスは、
GEOIP,JP,DIRECT
のようなルールを使って直接接続するように設定します。 - よく利用する海外サービスには、特定の高速なプロキシサーバーやプロキシグループを割り当てるルールを定義します。
- 「Proxies」タブで定期的に遅延テストを行い、サーバーの状態を把握します。
安全な通信環境の実現に向けて:
- 信頼できるプロキシサービスプロバイダからSubscriptionを取得し、出所不明な設定ファイルの使用は避けます。
- ClashのHTTPS復号化(MITM)機能は、必要最小限のドメインにのみ適用されるように設定を確認します(通常はデフォルト設定で十分)。
- DNS設定でDoH/DoTを有効にし、DNSクエリのプライバシーを保護します(多くのSubscriptionでデフォルトで設定済みです)。
- 広告やトラッキングサイトへのアクセスを
REJECT
するルールを適用し、プライバシーとセキュリティを向上させます(対応するRule Providerを利用すると便利です)。 - 常にClash for Windowsを最新バージョンにアップデートし、セキュリティ脆弱性から保護します。
- 「Connections」タブやログを確認し、不審な通信が発生していないか監視します。
Clash for Windowsの操作は、最初は少し複雑に感じるかもしれませんが、プロファイル、ルール、プロキシグループという3つの主要な概念を理解すれば、その強力な機能を自在に操ることができるようになります。特にRuleモードとSystem Proxyをオンにした状態が、Clash for Windowsの最も一般的な利用形態です。
約5000語にわたるこの詳細ガイドが、あなたがClash for Windowsを理解し、快適で安全なPC通信環境を構築するための一助となれば幸いです。インターネットを賢く、そして安全に活用するために、ぜひClash for Windowsを使いこなしてみてください。