はい、承知いたしました。PCでプロキシを利用するためのツール「Clash for Windows」について、詳細な説明を含む約5000語の記事を作成します。
PCでプロキシを使うなら!Clash for Windowsの徹底解説:導入から高度な設定まで
インターネットの利用において、プロキシサーバーは様々な目的で活用されます。地域制限の回避、匿名性の向上、特定の通信の制御、セキュリティの強化など、その用途は多岐にわたります。しかし、プロキシの設定はOSやアプリケーションごとに異なり、複数のプロキシや複雑なルーティングを管理するのは容易ではありませんでした。
そこで登場するのが、先進的なプロキシクライアント「Clash」です。そして、Windowsユーザーがこの強力な機能を直感的かつ簡単に利用できるようにしたのが、「Clash for Windows (CfW)」です。CfWは、Clashのコアエンジンを搭載しつつ、洗練されたGUIを通じて、プロキシ設定、ルーティングルールの管理、トラフィックの監視などを一元的に行えるように設計されています。
本記事では、Clash for WindowsをPCに導入し、基本的な使い方から高度な設定までを網羅的に解説します。約5000語に及ぶ詳細な説明を通じて、あなたがClash for Windowsを最大限に活用できるようになることを目指します。
1. Clashとは何か? なぜClashを使うのか?
Clashは、Go言語で開発された、ルールベースのネットワークルールクライアントです。これは、単なるプロキシソフトウェアというよりは、ネットワークの通信を「どのルールに基づいて、どのプロキシ(または直通)を通すか」を柔軟に制御するための強力なツールと言えます。
1.1. Clashの基本的なコンセプト
Clashの核となるのは、「設定ファイル」です。この設定ファイル(YAML形式)には、利用可能なプロキシリスト、プロキシを選択するためのグループ設定、そして最も重要な、特定のドメインやIPアドレスへのアクセスをどのプロキシグループ(または直通、拒否)にルーティングするかを定義する「ルール」が記述されています。
従来のプロキシソフトウェアが単一のプロキシ設定をOSやブラウザに適用するのに比べ、Clashは設定ファイル一つで以下のような複雑な制御を可能にします。
- 複数のプロキシを管理: Shadowsocks (SS), VMess, Trojan, HTTP, SOCKS5など、様々なプロトコルのプロキシ情報を一元管理します。
- ルールベースのルーティング: アクセス先のドメイン、IPアドレス、GEOIP情報(国・地域)、プロセス名などに基づいて、異なるプロキシを使ったり、直通にしたり、通信をブロックしたりできます。
- プロキシグループ: 複数のプロキシをまとめてグループ化し、速度テストで最適なものを選んだり(
url-test
)、常に特定のプロキシを使ったり(select
)、障害時にフォールバックしたり(fallback
)、負荷分散したり(load-balance
)といった高度なプロキシ選択ロジックを実装できます。 - DNS処理: DNSリクエストも制御し、プライバシー保護やDNSハイジャック対策を行います。Fake-IP機能による高度なルーティングも可能です。
この柔軟性と強力な制御能力が、Clashが多くのユーザーに支持される理由です。
1.2. なぜClashをPC (Windows) で使うのか?
Clash自体はコマンドラインツールであり、様々なプラットフォーム(Windows, macOS, Linux, iOS, Android)で動作します。しかし、コマンドラインでの設定ファイルの編集や実行は、GUIに慣れた一般のWindowsユーザーには敷居が高い場合があります。
ここでClash for Windows (CfW)の出番です。CfWは、Clashのコアをバックエンドとして利用しつつ、ユーザーフレンドリーなグラフィカルインターフェースを提供します。これにより、以下のメリットが得られます。
- 簡単なインストールとセットアップ: 数クリックでインストールが完了し、設定ファイルの追加もURLやファイル指定で簡単に行えます。
- 直感的なプロキシ管理: GUI上で利用可能なプロキシ、プロキシグループを確認し、手動で選択できます。
- リアルタイムトラフィック監視: どの通信がどのルールにマッチし、どのプロキシを経由しているかをリアルタイムで確認できます。
- システムプロキシ統合: Windowsのシステムプロキシ設定と連携し、OS全体や対応アプリケーションの通信を簡単にClash経由にできます。
- プロファイル管理: 複数の設定ファイルを簡単に切り替えて利用できます。
- ログ確認: エラーや通信状況の詳細なログをGUI上で確認し、トラブルシューティングに役立てられます。
- 自動アップデート: クライアント自体のアップデートや、プロファイル(設定ファイル)の定期的な自動更新機能も備えています。
つまり、CfWはClashの強力なエンジンを、Windowsユーザーが手軽に利用できるようにする「使いやすいインターフェース」として機能するのです。
2. Clash for Windows (CfW)とは? その特徴とメリット
Clash for Windowsは、オープンソースで開発されているClashのWindows向けクライアントです。その主な特徴とメリットは以下の通りです。
- GUIによる操作: コマンドライン操作が不要で、すべての設定と操作をウィンドウ上で行えます。
- システムプロキシ機能: Windowsのシステムプロキシ設定をオン/オフするボタンがあり、OS全体の通信をClashで制御できます。これにより、ブラウザだけでなく、様々なアプリケーションの通信にプロキシ設定を適用できます。
- TAPモード/TUNモードのサポート: システム全体に透過的なプロキシを適用するTAPモードやTUNモード(※環境による)をサポートしており、システムプロキシに対応していないアプリケーションの通信も制御できる場合があります。
- プロファイル管理: 複数の設定ファイルを「プロファイル」として登録し、必要に応じて簡単に切り替えられます。プロファイルのURL指定による自動更新も可能です。
- 豊富な設定オプション: プロキシ、プロキシグループ、ルールといった核となる設定だけでなく、DNS設定、外部コントローラー設定、UIテーマ設定など、多岐にわたるオプションがGUIから設定可能です。
- リアルタイム表示: 現在アクティブなプロファイル、システムプロキシの状態、リアルタイムの通信速度、接続中のセッションリストなどが一目で確認できます。
- アクティブな開発コミュニティ: オープンソースであり、頻繁にアップデートが行われ、新機能の追加やバグ修正が進められています。
これらの特徴により、CfWはWindows上でプロキシを柔軟かつ強力に制御するためのデファクトスタンダードの一つとなっています。
3. 導入前の準備とシステム要件
Clash for Windowsをインストールする前に、いくつか準備しておきたいこととシステム要件を確認しておきましょう。
3.1. システム要件
- 対応OS: Windows 7以降(公式サポートはWindows 10/11推奨)
- 必要なソフトウェア: 特にありません。Windows標準機能とClashコアで動作します。
- ディスク容量: インストール自体は非常に軽量ですが、ログファイルやプロファイルによっては若干の容量を使用します。数十MB程度あれば十分です。
- インターネット接続: インストールファイルのダウンロード、プロファイルの取得、プロキシサーバーへの接続に必要です。
3.2. 導入前の準備
- プロキシ設定ファイルの入手: Clash for Windowsを利用するには、Clash互換の「設定ファイル(YAML形式)」が必須です。これは通常、利用しているプロキシサービスプロバイダーから提供されます。URL形式(例:
http://example.com/clash_config.yaml
)またはファイル形式(.yaml
または.yml
)で提供されることが多いです。まずは、利用したいプロキシサービスがClash互換の設定ファイルを提供しているか確認し、入手しておきましょう。 - 既存のプロキシ設定の確認: もし既に他のプロキシツール(VPNクライアント、別のSOCKS/HTTPプロキシツールなど)を使用している場合は、競合を避けるためにそれらを一旦無効化または終了しておくことを推奨します。特にシステム全体のプロキシ設定を変更するツールとの併用は、予期せぬ問題を引き起こす可能性があります。
4. Clash for Windowsのインストール方法
Clash for Windowsのインストールは非常に簡単です。以下の手順で行います。
- 公式サイトまたはGitHubリリースページへアクセス: Clash for Windowsの公式なダウンロード元は、GitHubのリリースぺージです。以下のURLにアクセスします。
https://github.com/Fndroid/clash_for_windows_pkg/releases - 最新版のダウンロード: ページを開くと、最新のリリースが一番上に表示されています。「Assets」セクションを展開し、Windows向けの実行ファイル(通常は
Clash.for.Windows-X.Y.Z.exe
のような名前)を探してクリックし、ダウンロードします。X.Y.Zはバージョン番号です。 - インストーラーの実行: ダウンロードした
Clash.for.Windows-X.Y.Z.exe
ファイルを実行します。 - インストールオプションの選択:
- インストールするユーザーの選択: 「Install for all users (recommended)」(すべてのユーザーにインストール) または 「Install just for me」(現在のユーザーのみにインストール) を選択します。通常は「Install for all users」で問題ありません。
- インストール先フォルダの選択: デフォルトのままで問題なければ変更不要です。変更したい場合は「Browse…」をクリックして指定します。
- その他のオプション: スタートメニューフォルダやデスクトップショートカットの作成などのオプションが表示される場合があります。必要に応じてチェックを入れます。
- 「Install」ボタンをクリックしてインストールを開始します。
- インストールの完了: インストールが完了すると、「Completing the Clash for Windows Setup Wizard」という画面が表示されます。「Run Clash for Windows」にチェックが入っていることを確認し、「Finish」をクリックすると、Clash for Windowsが起動します。
インストールが完了すると、Clash for Windowsのウィンドウが表示され、タスクトレイにもアイコンが追加されます。
5. 基本的な使い方:プロファイルの追加と有効化
Clash for Windowsを使用する上で最も基本的なステップは、「プロファイル」(設定ファイル)を追加し、それを有効化することです。
- Clash for Windowsを起動: インストール後に自動的に起動しない場合は、スタートメニューなどから「Clash for Windows」を起動します。
- 「Profiles」タブへ移動: ウィンドウの左側にあるメニューから「Profiles」アイコン(通常はファイルや書類のようなアイコン)をクリックします。
- プロファイルの追加: プロファイルの追加方法は主に2種類あります。
- URLからダウンロード: 入手した設定ファイルのURLを入力フィールドに貼り付け、右側の「Download」ボタンをクリックします。CfWがそのURLから設定ファイルをダウンロードし、プロファイルとして登録します。
- ローカルファイルからインポート: すでにPCに設定ファイル(
.yaml
または.yml
ファイル)をダウンロードしている場合は、「Import local configuration file」ボタンをクリックし、ファイル選択ダイアログで該当ファイルを選択します。
- プロファイルの確認: 追加されたプロファイルがリストに表示されます。ファイル名(またはURLの一部)と更新日時が表示されます。
- プロファイルの選択と有効化: 利用したいプロファイルをクリックして選択します。選択されたプロファイルが強調表示されます。
- システムプロキシの有効化: ウィンドウの左側メニューの一番上にある「General」タブへ移動します。「System Proxy」のトグルスイッチをクリックしてオンにします。スイッチが緑色になれば、Windowsのシステムプロキシ設定がClash for Windows経由に変更され、OSや対応アプリケーションの通信がClashのルールに基づいてルーティングされるようになります。
- 最小化して利用: 通常はClash for Windowsのウィンドウを閉じるのではなく、右上の閉じるボタンでタスクトレイに最小化してバックグラウンドで実行しておきます。終了したい場合は、タスクトレイのClashアイコンを右クリックし、「Quit」を選択します。
これで、Clash for Windowsがアクティブなプロファイルの設定に従って、あなたのインターネット通信を処理し始めます。
6. Clash for Windowsの主要インターフェース解説
Clash for Windowsのウィンドウは、いくつかの主要なタブで構成されています。それぞれの役割を理解することで、CfWを効果的に操作できます。
6.1. General (概要/一般)
- System Proxy: Windowsのシステムプロキシ設定をオン/オフします。これをオンにすることで、多くのアプリケーションの通信がClashを経由するようになります。
- TAP Mode (Install/Uninstall): システム全体に透過的なプロキシを適用するためのTAPアダプターをインストール/アンインストールします。システムプロキシに対応していないアプリケーションでプロキシを使いたい場合に試す価値がありますが、環境によっては不安定になることもあります。有効にするには別途設定が必要です(設定ファイルの
tun
セクションなど)。 - Mixin: 設定ファイルに別の設定(DNS設定など)をマージするための機能です。
- GeoIP Update: GEOIP情報(IPアドレスから国・地域を判定するためのデータベース)を更新します。ルール設定でGEOIPを使用する場合に重要です。
- UWP Loopback Exemption: Universal Windows Platform (UWP) アプリがlocalhostへの通信を行えるようにする設定です。通常は有効にしておきます。
- Home Directory: Clashの設定ファイルやログファイルが保存されるフォルダを開きます。
- Proxy Mode: プロキシの動作モードを選択します。
Global
: すべての通信をプロキシ経由にします(ルール無視)。デバッグ以外では非推奨です。Rule
: 設定ファイルで定義されたルールに基づいて通信をルーティングします。これがデフォルトかつ推奨されるモードです。Direct
: すべての通信を直通にします(プロキシ無視)。Clashを一時的に無効にしたい場合に便利です。
- Startup: Windows起動時にClash for Windowsを自動起動するかどうかを設定します。
- Allow LAN: 同じローカルネットワーク上の他のデバイスから、このPCのClashを経由してインターネットにアクセスできるようにするかどうかを設定します。設定ファイルで
allow-lan: true
になっている必要があり、セキュリティリスクもあるため注意が必要です。 - Log Level: ログの詳細度を設定します(Debug, Info, Warning, Error, Silent)。トラブルシューティング時にはDebugレベルに上げることがあります。
- External Controller: ClashのAPIを外部から操作するための設定です。ポート番号やAPIキーを設定します。他のGUIクライアントや管理ツールからClashインスタンスを制御する際に使用します。
6.2. Proxies (プロキシ)
このタブでは、現在アクティブなプロファイルに定義されているプロキシサーバーとプロキシグループが一覧表示されます。
- プロキシリスト:
proxies
セクションに定義されている個々のプロキシサーバーが表示されます。 - プロキシグループ:
proxy-groups
セクションに定義されているプロキシグループが表示されます。グループ名をクリックすると、そのグループに含まれるプロキシ(または他のグループ)が表示されます。 - 手動選択:
select
タイプのプロキシグループの場合、グループ名をクリックして展開し、リストから手動で利用したいプロキシを選択できます。 - 速度テスト:
url-test
グループの場合、グループ名の横に速度テストのボタンが表示されることがあります。クリックすると、グループ内のプロキシの応答速度を測定し、最も速いプロキシが自動的に選択されます。Ping時間も表示されます。
6.3. Profiles (プロファイル)
Clash互換の設定ファイル(YAML形式)を管理するタブです。
- プロファイルリスト: 追加済みのプロファイルが一覧表示されます。現在選択されているプロファイルが強調表示されます。
- プロファイルの追加: URLまたはローカルファイルから新しいプロファイルを追加するフィールドがあります。
- プロファイルの操作: 各プロファイルには、削除、更新、設定ファイルの編集(テキストエディタで開く)、プロファイルフォルダを開くなどの操作ボタンが表示されます。
- Update Interval: プロファイルを定期的に自動更新する間隔を設定します。URLから追加したプロファイルの場合に有効です。
6.4. Logs (ログ)
Clashコアの動作ログが表示されるタブです。
- リアルタイムログ: Clashの起動状況、通信のルーティング、エラー情報などがリアルタイムで出力されます。
- ログレベル: 「General」タブで設定したログレベルに応じて、表示される情報の詳細度が変わります。
- フィルタリング: 特定のキーワードでログをフィルタリングできます。
- トラブルシューティング: 通信がうまくいかない場合など、このログを確認することで原因を特定できることが多いです。例えば、「rule matched」「using proxy」といったログは、通信がどのルールにマッチし、どのプロキシが使われたかを示します。エラーメッセージもここに表示されます。
6.5. Settings (設定)
Clash for Windowsクライアント自体の設定を行うタブです。Clashコアの設定(Generalタブ)とは異なります。
- HTTP Proxy/SOCKS Proxy: CfWがローカルでリッスンするHTTP/SOCKSプロキシポート番号を設定します。デフォルトはHTTPが7890、SOCKSが7891です。これらのポートは、Clashをシステムプロキシとしてではなく、個別のアプリケーションのプロキシ設定として手動で指定する場合などに使用します。
- UI Language: UIの表示言語を変更します(日本語も利用可能)。
- Theme: UIのテーマ(ライトモード、ダークモードなど)を変更します。
- Update: CfWクライアント自体のアップデート設定です。自動更新のチェック頻度などを設定できます。
- Notifications: 通知の表示設定です。
- Tray Icon Behavior: タスクトレイアイコンの動作設定です。
- External Controller (UI): UIが接続するClashコアの外部コントローラー設定です。通常はデフォルトの
127.0.0.1:9090
で問題ありません。
7. プロキシ設定の核心:設定ファイル (YAML) の理解
Clashの強力さの源泉は、その設定ファイル(YAML形式)にあります。CfWはこのファイルをGUIで管理しますが、ファイルの内容を理解することで、Clashの機能を最大限に引き出し、カスタマイズできるようになります。YAMLは人間が読み書きしやすいデータ形式で、インデントが構造を示します。
主要なセクションとその役割を解説します。
“`yaml
例: シンプルな設定ファイル構造
port: 7890
socks-port: 7891
redir-port: 7892 # Linux/macOS向け
mixed-port: 7893 # HTTPとSOCKS5の両方
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
enable: true
# … DNS設定 …
proxies:
# … プロキシリスト …
– name: “Proxy A (SS)”
type: ss
server: server_a
port: 443
cipher: aes-256-gcm
password: password_a
- name: “Proxy B (VMess)”
type: vmess
server: server_b
port: 443
uuid: your_uuid_b
alterId: 0
cipher: auto
network: ws
tls: true
servername: server_b.com
path: “/vmess”
proxy-groups:
# … プロキシグループリスト …
– name: “🔰 Proxy Selection”
type: select
proxies:
– “Proxy A (SS)”
– “Proxy B (VMess)”
– DIRECT # 直通
- name: “🌍 Foreign Traffic”
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:- “🔰 Proxy Selection” # グループを参照することも可能
- DIRECT
- REJECT # 拒否
rules:
# … ルールリスト …
– DOMAIN-SUFFIX,google.com,🌍 Foreign Traffic
– DOMAIN-KEYWORD,youtube,🌍 Foreign Traffic
– GEOIP,CN,DIRECT # 中国へのアクセスは直通
– MATCH,🔰 Proxy Selection # 上記以外のすべての通信は Proxy Selection グループへ
“`
7.1. 一般設定 (General Settings)
ファイルの冒頭で定義される、Clashコア全体の動作に関する設定です。
port
: ローカルでリッスンするHTTPプロキシポート番号(デフォルト: 7890)。socks-port
: ローカルでリッスンするSOCKS5プロキシポート番号(デフォルト: 7891)。redir-port
: Linux/macOS向けの透過的プロキシポート。Windowsでは通常使いません。mixed-port
: HTTPとSOCKS5の両方を受け付けるポート番号。port
とsocks-port
を一つにまとめたい場合に使用します。allow-lan
: ローカルネットワークからの接続を許可するか (true
/false
)。これをtrue
にし、Windows Firewallでポートを開放すれば、LAN内の他のデバイスがこのPCをプロキシサーバーとして利用できます。セキュリティに注意が必要です。mode
: プロキシの動作モード。global
,rule
,direct
のいずれか。CfWのGeneralタブで変更できます。log-level
: ログのレベル。debug
,info
,warning
,error
,silent
。external-controller
: 外部からClashインスタンスを制御するためのAPIをリッスンするアドレスとポート。CfWのGUIはこのAPIを使ってClashコアと通信します。通常は127.0.0.1:9090
などループバックアドレスで設定されます。secret
: 外部コントローラーにアクセスするためのAPIキー(パスワード)。設定すると、APIアクセス時にこのキーが必要になります。セキュリティのために設定が推奨されます。dns
: DNSに関する詳細設定を行うセクション。後述します。tun
: TUNモード(システム全体への透過的プロキシ)に関する設定を行うセクション。後述します。
7.2. proxies (プロキシリスト)
利用可能な個々のプロキシサーバーを定義するリストです。各要素は一つのプロキシサーバーを表し、その設定を記述します。name
はプロキシグループやルールで参照する際に使うユニークな名前です。type
はプロトコルを指定します(ss
, vmess
, trojan
, http
, socks5
など)。その他のパラメータはプロトコルによって異なります。
例:
- Shadowsocks:
“`yaml- name: “My SS Proxy”
type: ss
server: your_ss_server_ip_or_domain
port: 443
cipher: aes-256-gcm
password: your_password
# udp: true # UDP通信を許可する場合
“`
- name: “My SS Proxy”
- VMess:
“`yaml- name: “My VMess Proxy”
type: vmess
server: your_vmess_server_ip_or_domain
port: 443
uuid: your_uuid
alterId: 0
cipher: auto # または特定の暗号方式
network: ws # ネットワークタイプ (tcp, ws, http, quic, grpc)
tls: true # TLS有効/無効
servername: your_server_name # TLS有効時のSNI
path: “/your_path” # WebSocket path
# udp: true
# skip-cert-verify: true # 自己署名証明書などを検証しない (非推奨)
“`
- name: “My VMess Proxy”
- Trojan:
“`yaml- name: “My Trojan Proxy”
type: trojan
server: your_trojan_server_ip_or_domain
port: 443
password: your_password
tls: true
servername: your_server_name
# udp: true
# skip-cert-verify: true
“`
- name: “My Trojan Proxy”
-
HTTP/SOCKS5:
“`yaml-
name: “My HTTP Proxy”
type: http
server: your_http_proxy_ip
port: 8080
username: optional_username
password: optional_password -
name: “My SOCKS5 Proxy”
type: socks5
server: your_socks5_proxy_ip
port: 1080
username: optional_username
password: optional_password
# udp: true
“`
-
プロキシサービスプロバイダーから提供される設定ファイルには、これらのproxies
セクションがすでに定義されていることがほとんどです。手動で編集する場合は、提供された情報を正確に記述する必要があります。
7.3. proxy-groups (プロキシグループ)
複数のプロキシを一つにまとめるか、またはプロキシ選択ロジックを定義するセクションです。name
はルールや他のグループから参照される名前です。type
はグループの動作タイプを指定し、proxies
リストにはこのグループに含めるプロキシ(または他のグループ名、特別なキーワード)を記述します。
グループタイプ:
-
select
: 手動でグループ内のプロキシを選択します。CfWの「Proxies」タブで切り替えられます。
“`yaml- name: “手動選択グループ”
type: select
proxies:- “Proxy A (SS)”
- “Proxy B (VMess)”
- DIRECT # 直通
- REJECT # 拒否
``
DIRECTはプロキシを経由せず直接接続すること、
REJECT`は通信を拒否することを意味する特別なキーワードです。
- name: “手動選択グループ”
-
url-test
: グループ内のプロキシに対して定期的にURLテストを行い、応答時間が最も速いプロキシを自動的に選択します。インターネット接続の安定化に役立ちます。
“`yaml- name: “速度テストグループ”
type: url-test
url: http://www.gstatic.com/generate_204 # テストに使用するURL (204 No Contentを返す軽量なURLが推奨)
interval: 600 # テスト間隔(秒)。デフォルトは600秒 (10分)。
tolerance: 50 # 速度変動の許容範囲 (ms)。許容範囲内のプロキシなら切り替えない。
proxies:- “Proxy A (SS)”
- “Proxy B (VMess)”
- DIRECT
“`
- name: “速度テストグループ”
-
fallback
: グループ内のプロキシを順番にテストし、最初に成功したプロキシを使用します。プライマリプロキシが利用できない場合に自動的に代替プロキシに切り替えたい場合に使用します。
“`yaml- name: “フォールバックグループ”
type: fallback
url: http://www.gstatic.com/generate_204 # テストに使用するURL
interval: 300 # テスト間隔(秒)
proxies:- “Proxy A (SS)” # プライマリ
- “Proxy B (VMess)” # フォールバック1
- DIRECT # フォールバック2
“`
リストの上にあるプロキシほど優先度が高くなります。
- name: “フォールバックグループ”
-
load-balance
: グループ内のプロキシ間で負荷を分散します。複数のプロキシを同時に利用して帯域を増やしたい場合などに使用しますが、設定やプロキシサーバーの特性によっては期待通りの効果が得られない場合もあります。
“`yaml- name: “負荷分散グループ”
type: load-balance
url: http://www.gstatic.com/generate_204 # テストに使用するURL
interval: 300 # テスト間隔(秒)
strategy: consistent-hash # または round-robin
proxies:- “Proxy A (SS)”
- “Proxy B (VMess)”
``
strategyは分散アルゴリズムです。
consistent-hashは接続先ホストに基づいて同じプロキシを再利用しやすく、
round-robin`は単純に順番に切り替えます。
- name: “負荷分散グループ”
プロキシグループはネストすることができます。つまり、プロキシグループのproxies
リストに、別のプロキシグループの名前を含めることができます。これは、例えば「地域別グループ」の中に「速度テストグループ」を配置するような、複雑なルーティング構造を作るのに役立ちます。
7.4. rules (ルール)
これがClashの最も強力な部分であり、通信をどのようにルーティングするかを定義する心臓部です。ルールは上から順番に評価され、最初にマッチしたルールの処理が適用されます。リストの最後には、どのルールにもマッチしなかった場合のデフォルト処理を定義するMATCH
ルールを置くのが一般的です。
各ルールの書式は通常 ルールタイプ,条件,プロキシグループ名またはアクション
です。
ルールタイプと条件の例:
DOMAIN-SUFFIX,example.com,プロキシグループ名
:example.com
またはそのサブドメイン(www.example.com
,sub.example.com
など)へのアクセスにマッチします。DOMAIN,www.example.com,プロキシグループ名
:www.example.com
という完全一致ドメインにのみマッチします。DOMAIN-KEYWORD,google,プロキシグループ名
: ドメイン名にgoogle
という文字列が含まれていればマッチします(例:google.com
,mail.google.com
,fonts.googleapis.com
)。GEOIP,JP,DIRECT
: アクセス先IPアドレスがGEOIPデータベースで日本 (JP
) と判定されればマッチします。国コードはISO 3166-1 Alpha-2形式で指定します。IP-CIDR,192.168.1.0/24,DIRECT
: アクセス先IPアドレスが指定されたCIDRブロック内であればマッチします。ローカルネットワークへのアクセスなどを直通にするためによく使用されます。IP-CIDR6,2001:db8::/32,DIRECT
: IPv6アドレスに対するIP-CIDRルール。SRC-IP-CIDR,192.168.1.100/32,プロキシグループ名
: 発信元IPアドレスが指定されたCIDRブロック内であればマッチします。特定のPCやデバイスからの通信にのみプロキシを適用したい場合に有効ですが、CfWをルーターモードなどで使用しない限り、通常はPC自身のIPアドレスになるため限定的な用途になります。PROCESS,chrome.exe,プロキシグループ名
: 特定のプロセス名 (chrome.exe
) からの通信にマッチします。アプリケーションごとにプロキシ設定を分けたい場合に便利です(Windowsでのみ有効)。DST-PORT,443,プロキシグループ名
: 宛先ポート番号が指定されていればマッチします。SRC-PORT,50000,プロキシグループ名
: 送信元ポート番号が指定されていればマッチします。RULE-SET,ruleset_name,プロキシグループ名
: 外部定義されたルールセットを参照します。後述。MATCH,プロキシグループ名またはアクション
: どのルールにもマッチしなかった場合に適用される、いわゆる「デフォルトルール」です。常にルールのリストの最後に配置する必要があります。
アクション:
ルールにマッチした場合に実行されるアクションは、プロキシグループ名(proxy-groups
セクションで定義したもの)を指定するか、以下の特別なキーワードのいずれかを指定します。
DIRECT
: プロキシを経由せず直接接続します。REJECT
: 接続を拒否し、通信をブロックします。広告ブロッカーやトラッカーブロックに利用できます。REJECT-TINYPEARL
: REJECTと同様ですが、ブロックページを表示する代わりに小さなパールを返します。
ルールの評価順序の重要性:
Clashのルールは上から順番に評価されます。より具体的なルールを先に、より一般的なルールを後に配置する必要があります。
例:
“`yaml
rules:
# これは間違い! google.com へのアクセスは、下の一般的なルールに先にマッチしてしまう可能性がある
# – GEOIP,JP,DIRECT
# – DOMAIN-SUFFIX,google.com,🌍 Foreign Traffic # このルールに到達しないかも
# 正しい順序: 具体的なルールを先に
– DOMAIN-SUFFIX,google.com,🌍 Foreign Traffic # google.com の通信を先に処理
– GEOIP,CN,DIRECT # 中国IPへの通信を次に処理
– GEOIP,JP,DIRECT # 日本IPへの通信を次に処理
– MATCH,🔰 Proxy Selection # それ以外の通信は最後に処理
“`
また、通常はパフォーマンスのためにDOMAIN-SUFFIX
やDOMAIN-KEYWORD
を先に評価し、その後にGEOIP
、最後にIP-CIDR
やMATCH
を置くのが一般的です。
これらのセクション(proxies
, proxy-groups
, rules
)を組み合わせて、Clashは非常に柔軟なプロキシ制御を実現しています。プロキシサービスから提供される設定ファイルは、これらのセクションがあらかじめ構成されていますが、自分のニーズに合わせてカスタマイズすることも可能です。
8. プロキシグループの詳細な活用
プロキシグループは、Clashによる高度なプロキシ制御の中核を担います。各グループタイプをどのように活用できるか、具体的なシナリオを交えて解説します。
8.1. select
グループ: 手動切り替えと整理
最もシンプルでよく使われるグループタイプです。GUIでプロキシを手動で切り替えたい場合に利用します。
活用シナリオ:
- 国・地域ごとのプロキシを切り替えたい:
“`yaml
proxy-groups:- name: “🌐 地域選択”
type: select
proxies:- “US Proxy 1”
- “JP Proxy 1”
- “SG Proxy 1”
- DIRECT
rules:
- GEOIP,US,🌐 地域選択 # 米国IPは地域選択グループへ
- GEOIP,JP,🌐 地域選択 # 日本IPは地域選択グループへ
- GEOIP,SG,🌐 地域選択 # シンガポールIPは地域選択グループへ
# 他の国やドメインへのルール… - MATCH,DIRECT # デフォルトは直通
“`
この設定の場合、米国、日本、シンガポールへのアクセスがあった際に、Clashは自動的に「🌐 地域選択」グループへルーティングします。CfWのProxiesタブでこのグループを展開し、手動で「US Proxy 1」「JP Proxy 1」「SG Proxy 1」などを切り替えることで、どの国のプロキシを経由するかを簡単に変更できます。
- name: “🌐 地域選択”
- 特定のサービス用のプロキシを分けたい:
“`yaml
proxy-groups:- name: “📺 動画サービス用”
type: select
proxies:- “動画専用Proxy A”
- “動画専用Proxy B”
- “通常Proxy” # フォールバックとして
- name: “📧 メール用”
type: select
proxies:- “メール専用Proxy”
- DIRECT # あるいは信頼できる別のプロキシ
rules:
- DOMAIN-SUFFIX,netflix.com,📺 動画サービス用
- DOMAIN-SUFFIX,hulu.com,📺 動画サービス用
- DOMAIN-SUFFIX,gmail.com,📧 メール用
# … 他のルール … - MATCH,DIRECT
“`
動画サービスにアクセスする際は「📺 動画サービス用」グループが、Gmailにアクセスする際は「📧 メール用」グループが使われます。それぞれのグループ内で手動で最適なプロキシを選択できます。
- name: “📺 動画サービス用”
8.2. url-test
グループ: 高速プロキシの自動選択
複数のプロキシの中から、特定のURLへの応答速度が最も速いものを自動的に選択します。プロキシサーバーの負荷やネットワーク状況は常に変動するため、速度テストは安定した通信速度を維持するのに非常に有効です。
活用シナリオ:
- 複数のサーバーから常に最速を選択:
“`yaml
proxy-groups:- name: “🚀 自動最速選択”
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300 # 5分おきにテスト
proxies:- “Proxy A”
- “Proxy B”
- “Proxy C”
- “Proxy D”
# – DIRECT # 場合によっては直通も候補に入れる
rules:
- GEOIP,telegram,🚀 自動最速選択 # 例: Telegram関連は自動選択
- GEOIP,twitter,🚀 自動最速選択 # 例: Twitter関連は自動選択
# … 他のルール … - MATCH,🔰 手動選択グループ # デフォルトは手動で選ぶ
“`
これにより、特定のトラフィック(ここではTelegramとTwitter)は、利用可能なプロキシの中から常に最も応答速度の良いものが自動的に選ばれるようになります。
- name: “🚀 自動最速選択”
- 帯域制限のあるプロキシを賢く使う: もし一部のプロキシにデータ量や速度の制限がある場合、
url-test
グループに入れておけば、他の無制限のプロキシが利用可能な限りそちらが優先される可能性が高まります(ただし、テストURLへの応答速度に基づいて決定されるため、常に意図通りになるとは限りません)。
8.3. fallback
グループ: 冗長性と信頼性向上
リストの先頭から順番にプロキシをテストし、利用可能な最初のプロキシを選択します。これは、プライマリプロキシがダウンした場合に自動的に代替プロキシに切り替えたい場合に非常に役立ちます。
活用シナリオ:
- メインプロキシの障害対策:
“`yaml
proxy-groups:- name: “🚨 フェイルオーバー”
type: fallback
url: http://www.gstatic.com/generate_204 # 疎通確認用URL
interval: 300 # 5分おきに確認
proxies:- “メインプロキシ A” # 最優先
- “予備プロキシ B” # メインがダメならこれ
- “最後の手段プロキシ C” # 予備もダメならこれ
- DIRECT # 全てダメなら直通 (リスクあり)
rules:
- MATCH,🚨 フェイルオーバー # すべての通信をこのグループへ
“`
この設定では、常に「メインプロキシ A」を使おうとしますが、それが応答しない場合は自動的に「予備プロキシ B」に切り替わり、それもダメなら「最後の手段プロキシ C」に切り替わります。これにより、プロキシサーバー側の障害発生時にもインターネット接続を維持できる可能性が高まります。
- name: “🚨 フェイルオーバー”
8.4. load-balance
グループ: 負荷分散
複数のプロキシ間でトラフィックを分散させます。主に同じ構成の複数のプロキシサーバーがある場合に、それぞれの負荷を軽減したり、複数の接続を並行して確立することで理論上の最大帯域を向上させたりするために使用されます。
活用シナリオ:
- 同一サーバー群での負荷分散:
“`yaml
proxy-groups:- name: “⚖️ ロードバランシング”
type: load-balance
strategy: consistent-hash # または round-robin
url: http://www.gstatic.com/generate_204
interval: 300
proxies:- “Server A Instance 1”
- “Server A Instance 2”
- “Server A Instance 3”
rules:
- DOMAIN-SUFFIX,download.example.com,⚖️ ロードバランシング # ダウンロードサイトへのアクセスを分散
- MATCH,DIRECT
``
download.example.com
これにより、への接続は、指定された3つのプロキシインスタンス間で分散されることになります。
consistent-hash戦略の場合、同じ接続元IP/宛先ホストの組み合わせは常に同じプロキシにルーティングされやすく、セッション維持が必要なサービスに向いています。
round-robin`は単純な巡回方式です。
- name: “⚖️ ロードバランシング”
これらのグループタイプを適切に組み合わせることで、非常に柔軟で信頼性の高いプロキシルーティング環境を構築できます。例えば、「手動選択グループ」の中に「速度テストグループ」や「フォールバックグループ」を含めることも可能です。
9. ルール設定の詳細な活用
ルールは「どの通信を」「どのように」処理するかを決定します。ルールの種類、記述方法、そしてその評価順序の重要性をより深く掘り下げます。
9.1. ルールの記述方法と評価順序
ルールの基本的な書式は RULE-TYPE,CONDITION,PROXY-GROUP-OR-ACTION
です。
例: DOMAIN-SUFFIX,google.com,ProxyA
ルールは設定ファイルのrules
セクションに上から下にリストとして記述され、Clashは通信が発生するたびにこのリストの先頭から順番に各ルールを評価していきます。
- 現在の通信がリストの最初のルールの条件にマッチするか判定。
- マッチした場合、そのルールに指定されたプロキシグループまたはアクション(
DIRECT
,REJECT
,REJECT-TINYPEARL
)が適用され、そこで処理は終了します。 - マッチしない場合、リストの次のルールに移り、再度マッチ判定を行います。
- これを繰り返し、リストの最後に到達するまで行います。
- もしリストの最後までどのルールにもマッチしなかった場合、Clashはエラーとなるか、通常はリストの最後に配置される
MATCH
ルールによって処理されます。
この評価順序のため、より具体的なルール(例: 特定の完全一致ドメインやIPアドレス)を先に、より一般的なルール(例: ドメインキーワード、GEOIP、MATCH
)を後に配置することが非常に重要です。
9.2. 主要なルールタイプの詳細と活用例
-
DOMAIN-SUFFIX,suffix,policy
:- 説明: 指定したサフィックス(末尾部分)にドメイン名が一致するすべてのホスト名にマッチします。サブドメインを含むサイト全体に適用したい場合に便利です。
- 例:
“`yaml- DOMAIN-SUFFIX,google.com,ProxyA # google.com と mail.google.com, www.google.com など全てにマッチ
- DOMAIN-SUFFIX,co.jp,DIRECT # .co.jp で終わるドメイン全てを直通に
“`
- 活用: 特定の国・地域のドメイン (.jp, .cn, .tw など) を直通にする、または特定のサービス全体 (youtube.com, netflix.com など) を特定のプロキシグループにルーティングする。
-
DOMAIN,domain,policy
:- 説明: 指定したドメイン名と完全に一致する場合のみマッチします。特定のサブドメインだけを対象としたい場合に便利です。
- 例:
“`yaml- DOMAIN,www.google.com,ProxyA # www.google.com のみにマッチ、mail.google.com にはマッチしない
- DOMAIN,example.com,ProxyB # example.com にのみマッチ、www.example.com にはマッチしない
“`
- 活用: 特定のウェブサイトやAPIエンドポイントのみを対象とする。
-
DOMAIN-KEYWORD,keyword,policy
:- 説明: ドメイン名に指定したキーワードが含まれている場合にマッチします。関連性の高い複数のドメインをまとめて扱いたい場合に便利ですが、意図しないドメインにもマッチする可能性があるため注意が必要です。
- 例:
“`yaml- DOMAIN-KEYWORD,youtube,ProxyA # youtube.com, www.youtube.com, googlevideo.com などにマッチする可能性
- DOMAIN-KEYWORD,ad,REJECT # ドメイン名に “ad” が含まれるものをブロック (簡易的な広告ブロック)
“`
- 活用: 特定のサービスやカテゴリ(動画、広告など)に関連するドメインをまとめてルーティングする。
-
GEOIP,country_code,policy
:- 説明: アクセス先のIPアドレスをGEOIPデータベースで検索し、指定した国コードと一致する場合にマッチします。国コードはISO 3166-1 Alpha-2形式(例: JP, US, CN)で指定します。特別なコードとして
LAN
はローカルIPアドレス、NO-MATCH
はデータベースに見つからなかったIPアドレスにマッチします。 - 例:
“`yaml- GEOIP,CN,DIRECT # 中国のIPアドレスへの通信は直通
- GEOIP,JP,DIRECT # 日本のIPアドレスへの通信は直通
- GEOIP,US,ProxyA # 米国のIPアドレスへの通信はProxyAへ
- GEOIP,LAN,DIRECT # ローカルネットワークへの通信は直通 (必須級)
“`
- 活用: 地域制限があるサービスへのアクセスをその地域のプロキシへルーティングする、自国へのアクセスは直通にする、特定の国からの通信をブロックする。
- 説明: アクセス先のIPアドレスをGEOIPデータベースで検索し、指定した国コードと一致する場合にマッチします。国コードはISO 3166-1 Alpha-2形式(例: JP, US, CN)で指定します。特別なコードとして
-
IP-CIDR,ip_cidr,policy
:- 説明: アクセス先のIPアドレスが指定したCIDRブロック(例:
192.168.1.0/24
)に含まれる場合にマッチします。 - 例:
“`yaml- IP-CIDR,192.168.0.0/16,DIRECT # 192.168.x.x へのアクセスは直通
- IP-CIDR,10.0.0.0/8,DIRECT # 10.x.x.x へのアクセスは直通
- IP-CIDR,172.16.0.0/12,DIRECT # 172.16.x.x から 172.31.x.x へのアクセスは直通
- IP-CIDR,1.2.3.4/32,ProxyB # 特定の単一IPアドレス (1.2.3.4) へのアクセスはProxyBへ
“`
- 活用: プライベートIPアドレスへのアクセスを直通にする(非常に重要)、特定のサーバーIPへのアクセスをルーティングする。
- 説明: アクセス先のIPアドレスが指定したCIDRブロック(例:
-
IP-CIDR6,ip_cidr6,policy
: IPv6版のIP-CIDR
。ローカルIPv6アドレス (::1/128
,fc00::/7
など) を直通にする設定が重要です。
“`yaml- IP-CIDR6,::1/128,DIRECT # localhost IPv6 は直通
- IP-CIDR6,fc00::/7,DIRECT # Unique Local Unicast IPv6 は直通
- IP-CIDR6,fe80::/10,DIRECT # Link-Local Unicast IPv6 は直通
“`
-
PROCESS,process_name,policy
:- 説明: 通信を開始したプロセスの実行ファイル名(例:
chrome.exe
,firefox.exe
,javaw.exe
)に基づいてマッチします。Windowsでのみサポートされます。 - 例:
“`yaml- PROCESS,thunder.exe,DIRECT # Thunder (ダウンロードソフト) の通信は直通に
- PROCESS,qq.exe,ProxyC # QQ (チャットソフト) の通信はProxyCへ
“`
- 活用: アプリケーションごとにプロキシ設定を分けたい場合。例えば、特定のゲームやP2Pソフトウェアの通信はプロキシを通したくない、特定の業務アプリケーションは特定のプロキシを通したい、といったケース。
- 説明: 通信を開始したプロセスの実行ファイル名(例:
-
RULE-SET,ruleset_name,policy
:- 説明: 外部で定義されたルールセットを参照します。大量のルールを別のファイルやURLで管理し、設定ファイル本体を簡潔に保つために使用されます。後述。
-
MATCH,policy
:- 説明: これより前のどのルールにもマッチしなかった場合に必ずマッチします。ルールのリストの最後に置く必要があります。
- 例:
“`yaml
# … 他のルール …- MATCH,🔰 デフォルトグループ # 残りの全ての通信は「デフォルトグループ」へ
“`
- MATCH,🔰 デフォルトグループ # 残りの全ての通信は「デフォルトグループ」へ
- 活用: ルールリストの末尾に配置し、デフォルトのルーティング先(通常は直通、またはメインのプロキシ選択グループ)を指定します。
9.3. よくあるルールの組み合わせと推奨事項
- ローカル通信は直通: 最優先でローカルIPアドレスやGEOIP/LANを直通にするルールを配置します。これにより、自宅や会社のネットワーク内のデバイスへのアクセスがプロキシを経由せず、遅延や問題を避けることができます。
“`yaml
rules:- GEOIP,LAN,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT # localhost は直通
- IP-CIDR6,::1/128,DIRECT
- IP-CIDR6,fc00::/7,DIRECT
- IP-CIDR6,fe80::/10,DIRECT
# … その他の具体的なルール (DOMAIN, DOMAIN-SUFFIX など) …
# … GEOIP ルール (CN, JPなど) …
# … MATCH ルール …
“`
- 特定の国へのアクセスを直通: GEOIPルールを使って、自国や頻繁にアクセスする国のIPアドレスへの通信を直通に設定します。
“`yaml
rules:
# … ローカル通信ルール …- GEOIP,JP,DIRECT
- GEOIP,CN,DIRECT
- GEOIP,US,ProxyGroupUS # 例: 米国へのアクセスは米国向けプロキシグループへ
# … その他のルール … - MATCH,🔰 デフォルトグループ
“`
- 特定のサイトをプロキシ経由/直通:
DOMAIN
,DOMAIN-SUFFIX
,DOMAIN-KEYWORD
ルールを使用して、特定のウェブサイトやサービスへのアクセスを制御します。
“`yaml
rules:
# … ローカル通信ルール …- DOMAIN-SUFFIX,youtube.com,ProxyGroupVideo # YouTubeは動画用グループへ
- DOMAIN-SUFFIX,netflix.com,ProxyGroupVideo
- DOMAIN-SUFFIX,nicovideo.jp,DIRECT # ニコニコ動画は直通
# … その他のルール … - MATCH,🔰 デフォルトグループ
“`
- 広告・トラッカーのブロック:
DOMAIN-SUFFIX
,DOMAIN-KEYWORD
ルールとREJECT
アクションを組み合わせて、広告サーバーやトラッキングサイトへの通信をブロックします。これらのルールは、通常、他の通信ルールよりも前に配置します。
“`yaml
rules:
# … ローカル通信ルール …- DOMAIN-KEYWORD,ad,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
# … その他の通信ルール … - MATCH,🔰 デフォルトグループ
“`
より本格的なブロックリストは、Rule Provider機能を使うことで実現できます(後述)。
設定ファイルのrules
セクションを適切に編集・管理することが、Clashの機能を最大限に活用するための鍵となります。CfWのProfilesタブから「Edit」ボタンをクリックすると、設定ファイルをテキストエディタで開いて直接編集できます。編集後は、CfWを再起動するか、プロファイルを再選択することで設定が反映されます。YAML形式の記述ミスがないよう、インデントなどに注意が必要です。
10. 高度な設定と機能
Clash for Windowsは、基本的なプロキシ機能を超えた、いくつかの高度な設定や機能を提供しています。
10.1. DNS設定
dns
セクションでは、ClashがどのようにDNSリクエストを処理するかを詳細に設定できます。適切なDNS設定は、プライバシー保護(DNSリーク防止)や高速な名前解決、特定のサイトへのアクセス制御において重要です。
“`yaml
dns:
enable: true # DNS機能を有効にするか
listen: 0.0.0.0:53 # ローカルでDNSリクエストを受け付けるアドレスとポート
# enhanced-mode: fake-ip # または redir-host
# fake-ip-range: 198.18.0.1/16 # fake-ipモードの場合のIP範囲
# fake-ip-filter: # fake-ip対象から除外するドメイン
# – +.lan
# – +.local
# – +.arpa
# – some.domain.com
default-nameserver: # デフォルトのDNSサーバー (通常はClashが直接クエリする)
– 114.114.114.114
– 223.5.5.5
nameserver: # 特定の目的に使用するDNSサーバーリスト
– 8.8.8.8 # Google Public DNS (DoT/DoH 対応)
– 1.1.1.1 # Cloudflare Public DNS (DoT/DoH 対応)
# – tls://dns.google # DNS over TLS
# – https://cloudflare-dns.com/dns-query # DNS over HTTPS
fallback: # nameserver が応答しない場合や、特定のクエリに使われるDNSサーバーリスト
– 1.0.0.1
– 8.8.4.4
# – tls://1.0.0.1
# – https://dns.google/dns-query
fallback-filter: # fallback DNSを使うドメインの条件
geoip: true # 中国IPアドレスからのDNSクエリで fallback を使うか
# ipcidr: # 指定したIPアドレスへのクエリで fallback を使う
# – 240.0.0.0/4
domain: # 指定したドメインへのクエリで fallback を使う
– +.google.com # 例: google.com のドメイン解決にfallbackを使う
# hosts: # ローカルでホスト名を解決する設定
# some.domain.com: 1.2.3.4
# another.host: [4.3.2.1, 2001:db8::1]
“`
enable: true
: これを有効にすると、ClashがローカルDNSサーバーとして機能し、PCからのDNSリクエストを捕捉して処理します。listen
: ClashがDNSリクエストをリッスンするアドレスとポート。通常は0.0.0.0:53
(IPv4/IPv6問わずポート53) で、ローカルネットワーク全体からのリクエストを受け付けますが、セキュリティのため127.0.0.1:53
(localhostのみ) にすることも多いです。WindowsのDNS設定を127.0.0.1
に変更する必要があります。CfWの「System Proxy」をオンにしている場合、通常この設定は自動的に処理されます。enhanced-mode
:redir-host
: デフォルトモード。DNSクエリの結果として得られた実際のIPアドレスに基づいてルーティングルールが適用されます。fake-ip
: Clashが応答として偽のIPアドレスを返し、その偽IPアドレスに対する通信を捕捉して本来のドメイン名に基づいてルーティングルールを適用します。これにより、IPアドレスではなくドメイン名に基づいてより正確なルーティングが可能になります。主にTUNモードや特定の複雑なルーティングシナリオで使用されます。fake-ip-range
で偽IPの範囲を指定します。
nameserver
: 主に使用するDNSサーバーのリスト。ここに指定されたDNSサーバーに対して、ClashはDNSクエリを投げます。DNS over TLS (tls://
) や DNS over HTTPS (https://
) に対応したサーバーを指定することで、DNSクエリのプライバシーを保護できます。fallback
:nameserver
が応答しない場合や、特定の条件(fallback-filter
で指定)にマッチした場合に使用するDNSサーバーのリスト。検閲されている可能性があるドメインの解決や、特定の国・地域からのクエリに対して、検閲されていないDNSサーバーを使うなどの目的で使用されます。fallback-filter
: どのDNSクエリに対してfallback
リストのDNSサーバーを使用するかを指定する条件。geoip: true
は、クエリ対象のドメインが解決されるIPアドレスが、geoip.dat
で中国と判定される場合にfallbackを使用します。domain
リストは、指定したドメインやそのサフィックスに対してfallbackを使用します。hosts
: ローカルのhostsファイルのように、特定のドメイン名を特定のIPアドレスに静的にマッピングする設定。
適切なDNS設定(特にDNS over TLS/HTTPSの利用)は、オンラインプライバシーを向上させる上で非常に重要です。
10.2. TUNモード
TUNモード(WindowsではTAPモードと呼ぶことも)は、Clashを仮想ネットワークアダプターとして動作させ、システム全体のIPトラフィックを捕捉してClashでルーティングする機能です。System Proxy設定とは異なり、アプリケーションが明示的にプロキシ設定を使用していなくても、すべてのIP通信(TCP/UDP)をClashで制御できるようになります。
CfWの「General」タブにある「TAP Mode」の「Install」ボタンで必要なドライバーをインストールします。設定ファイルでtun
セクションを有効にし、アドレス範囲などを設定する必要があります。
yaml
tun:
enable: true # TUNモードを有効にする
stack: system # または gvisor (Windowsではsystem推奨)
auto-route: true # システムのルーティングテーブルを変更してTUNアダプターを優先するか
auto-detect-interface: true # システムのネットワークインターフェースを自動検出するか
# dns-hijacking: # DNSハイジャック設定 (optional)
# - 0.0.0.0:53
# - 1.2.3.4:53
TUNモードは強力ですが、ネットワーク構成によっては互換性の問題や不安定さが発生する可能性があります。特に、他のVPNクライアントやネットワーク仮想化ソフトウェアとの併用は競合する可能性が高いです。
10.3. Rule Providers / Proxy Providers (ルール・プロキシの外部化/自動更新)
大量のルールリスト(例: 広告ブロックリスト、特定の国のIPリスト)やプロキシリストを手動で設定ファイルに記述・更新するのは非効率です。Rule ProvidersとProxy Providers機能を使うと、これらのリストを外部のURLやファイルから自動的に取得・更新できます。
Rule Providers:
yaml
rule-providers:
reject: # プロバイダー名
type: http # プロバイダーのタイプ (http, file)
behavior: domain # このルールセットの挙動 (domain, ipcidr, classical)
url: "http://example.com/adblock_rules.txt" # ルールリストのURL
interval: 86400 # 更新間隔 (秒)
path: "./ruleset/reject.yaml" # ダウンロードしたルールを保存するパス
# health-check: # ヘルスチェック設定 (optional)
# enable: true
# interval: 300
# url: "http://www.gstatic.com/generate_204"
定義したRule Providerは、rules
セクションでRULE-SET
タイプとして参照します。
yaml
rules:
- RULE-SET,reject,REJECT # rejectプロバイダーで定義されたルールにマッチしたらREJECT
# ... 他のルール ...
Proxy Providers:
yaml
proxy-providers:
my_proxies: # プロバイダー名
type: http
url: "http://example.com/my_proxies.yaml" # プロキシリストのURL (Clash互換形式)
interval: 3600 # 更新間隔 (秒)
path: "./proxies/my_proxies.yaml" # ダウンロードしたプロキシを保存するパス
health-check: # ヘルスチェック設定
enable: true
interval: 300
url: http://www.gstatic.com/generate_204
# lazy: true # 遅延ヘルスチェック (使用されるまでチェックしない)
定義したProxy Providerに含まれるプロキシは、proxy-groups
セクションで参照できます。
yaml
proxy-groups:
- name: "🔰 My Provider Proxies"
type: select
proxies:
- OTHER # Providerから取得したプロキシを参照するためのキーワード
# - DIRECT, REJECT などを追加することも可能
注: Proxy Providerの参照方法はClashコアのバージョンによって異なる場合があります。上記のOTHER
は古い形式かもしれません。最新版では、Provider名で参照することが一般的です。
yaml
proxy-groups:
- name: "🔰 My Provider Proxies"
type: select
proxies:
- my_proxies # Provider名を参照
- DIRECT
これにより、プロキシリストを定義したYAMLファイルの内容が自動的に取得・更新され、🔰 My Provider Proxies
グループで使用できるようになります。
これらのProvider機能は、大規模なルールリストやプロキシリストを運用する際に、設定ファイルのメンテナンスを大幅に効率化します。
10.4. URL-Rewrite / Header-Rewrite
url-rewrite
および header-rewrite
セクションを使用すると、特定の条件にマッチするHTTP/HTTPSリクエストのURLやヘッダーを書き換えることができます。
“`yaml
url-rewrite:
# – match: https?://(www.)?example.com/(.*) # 正規表現でマッチ
# replace: https://new.example.net/path/$2 # 正規表現のグループ参照 ($2) を使って置換
header-rewrite:
– process: [“http”] # または [“http”, “https”]
match: ^Host:.+$ # Hostヘッダーにマッチ
replace: Host: new.example.com # Hostヘッダーを書き換え
# rules: # このヘッダー書き換えを適用するルール (optional)
# – DOMAIN-SUFFIX,old.example.com
“`
これらの機能は、特定のサイトへのアクセスを別のURLにリダイレクトしたり、HTTPヘッダーを改変したりするデバッグや特殊な用途に使用されます。
10.5. 外部コントローラー (External Controller)
external-controller
は、Clashコアが待ち受けるAPIエンドポイントです。CfWのGUI自体がこのAPIに接続してClashコアを制御しています。他のツール(例: Clash Verge、専用のモバイルアプリ、コマンドラインツール)からリモートでClashインスタンスを監視・操作したい場合に利用します。secret
パラメータを設定することで、APIにアクセスするためのパスワードを設定し、セキュリティを確保できます。
11. 一般的な使用例とシナリオ
Clash for Windowsは、その柔軟な設定によって様々なシナリオで活用できます。
- 地域制限のあるコンテンツへのアクセス: 海外の動画配信サービスやウェブサイトなど、特定の国からしかアクセスできないコンテンツに、その国のプロキシを経由してアクセスします。複数の国のプロキシを用意し、手動選択グループやルールで切り替えることで、異なる地域のコンテンツに対応できます。
- インターネット検閲の回避: 特定のウェブサイトやサービスが政府などによってブロックされている場合、ブロックされていない国にあるプロキシサーバーを経由してアクセスします。ルール設定で、ブロックされているドメインへのアクセスのみをプロキシ経由にし、それ以外の通信は直通にする、といった設定が効果的です。
- プライバシーと匿名性の向上: インターネットサービスプロバイダー (ISP) や第三者からのトラッキングを防ぐため、信頼できるプロキシサーバーを経由して通信します。特にDNS over TLS/HTTPSを組み合わせることで、DNSクエリの傍受も防げます。
- 広告・トラッカーのブロック: ルール設定で、既知の広告サーバーやトラッキングサイトへの通信をREJECTすることで、ウェブサイト上の広告表示を減らしたり、オンラインでの行動追跡を防いだりできます。専用のルールプロバイダーを利用すると、常に最新のブロックリストを維持できます。
- 開発・テスト環境: 特定の国からのアクセスをシミュレートしたり、特定のネットワーク条件下でのアプリケーションの動作を確認したりするために使用します。
- 社内ネットワークへの安全なアクセス: 適切に設定された場合、社内ネットワーク内のリソースへのアクセスのみをVPNや社内プロキシ経由にし、それ以外の通信は直通にする、といったハイブリッドなルーティング設定が可能です(ただし、これはClash単体というより、Clashを設定できるネットワーク環境が必要です)。
12. トラブルシューティング
Clash for Windowsを使用していて問題が発生した場合の一般的なトラブルシューティング方法です。
- システムプロキシが有効にならない:
- CfWの「General」タブで「System Proxy」がオンになっているか確認します。
- 管理者権限でCfWを起動しているか確認します。システムプロキシの設定変更には管理者権限が必要な場合があります。
- Windowsのインターネットオプション(コントロールパネル -> ネットワークとインターネット -> インターネットオプション -> 接続 -> LANの設定)でプロキシ設定がCfWがリッスンしているローカルアドレス(例:
127.0.0.1:7890
)になっているか確認します。CfWが自動的に設定しているはずですが、手動で確認または修正が必要な場合があります。 - 他のプロキシツールやVPNクライアントが起動していないか確認します。競合している可能性があります。
- インターネットに接続できない、または特定のサイトにアクセスできない:
- Logsタブを確認: 最も重要なステップです。Clashコアがどのようなログを出力しているかを確認します。エラーメッセージ(例:
dial tcp ... timeout
,connection refused
,certificate verify failed
)が出ていないか、特定の通信がどのルールにマッチし、どのプロキシグループ/アクション(DIRECT
,REJECT
)にルーティングされているかを確認します。 - Proxiesタブで手動切り替え: 「Proxies」タブで、利用しているプロキシグループ(特に
select
タイプ)を開き、別のプロキシやDIRECT
に切り替えて接続できるか試します。これにより、問題が特定のプロキシサーバーにあるのか、それともClashの設定やルールにあるのかを切り分けられます。 - Proxy ModeをDirectにする: 「General」タブで「Proxy Mode」を
Direct
にして、プロキシを経由しない状態でインターネットに接続できるか確認します。これで接続できるなら、問題はClashの設定またはプロキシサーバー側にあります。 - 設定ファイル (YAML) を確認: 設定ファイルの記述ミス(インデント、タイプミス、無効なプロトコル設定、存在しないプロキシ名/グループ名の参照など)がないか確認します。YAML構文チェッカーツールなども利用できます。特に
proxies
セクションの各プロキシ設定、proxy-groups
のproxies
リスト、rules
セクションのルール名とアクション名が正しいかチェックします。 - ルール評価の順序を確認: 特定のサイトにアクセスできない場合、そのサイトへの通信が意図しないルールにマッチして
REJECT
されたり、機能しないプロキシにルーティングされたりしていないか確認します。Logsタブで該当する通信を探し、「rule matched: xxx」のログを確認します。より具体的なルールを上に移動させてみるなどの調整を行います。 - DNS設定を確認: DNS設定(
dns
セクション)が適切か確認します。DNSサーバーが応答しない、DNSリークが発生している、Fake-IPモードで問題が起きているなどが原因の場合があります。LogsタブでDNS関連のログを確認します。 - プロファイルを更新: プロキシサービスから提供されたプロファイルを使用している場合、プロキシ情報が古くなっている可能性があります。「Profiles」タブでプロファイルの更新を試みます。
- Logsタブを確認: 最も重要なステップです。Clashコアがどのようなログを出力しているかを確認します。エラーメッセージ(例:
- 速度が遅い:
- url-testグループの利用: 複数のプロキシがある場合は、
url-test
グループを使用して常に最速のプロキシが選択されるように設定します。 - Proxiesタブでの速度テスト:
url-test
グループでなくても、一部のプロキシに対してpingテストなどで応答速度を確認できる場合があります。 - プロキシサーバー自体の問題: 利用しているプロキシサーバーが高負荷である、帯域が細い、遠すぎるなどの問題がある可能性があります。別のプロキシサーバーを試すか、サービスプロバイダーに問い合わせます。
- ClashのログレベルをDebugに: 「General」タブでログレベルを
Debug
に上げ、詳細なログを確認します。通信の各段階で時間がかかっている箇所などが特定できる場合があります。
- url-testグループの利用: 複数のプロキシがある場合は、
- CfWクライアント自体の問題:
- CfWを再起動します。
- PCを再起動します。
- CfWクライアントを最新版にアップデートします。「Settings」タブから確認できます。
- CfWを一度アンインストールし、設定フォルダ(「General」タブの「Home Directory」で確認できる場所)も削除してから再インストールしてみます(設定ファイルなどのバックアップを忘れずに)。
13. セキュリティとプライバシーに関する考慮事項
Clash for Windowsのような強力なネットワークツールを使用する際には、セキュリティとプライバシーについていくつか重要な考慮事項があります。
- 設定ファイルの信頼性: Clash for Windowsは設定ファイルに完全に依存します。提供元不明の設定ファイルや、不審なURLからダウンロードした設定ファイルには、悪意のあるプロキシサーバー情報、通信を監視・改変する設定、あるいは悪意のあるサイトへのルーティングが含まれている可能性があります。信頼できるプロキシサービスプロバイダーから提供される設定ファイルのみを使用し、内容をある程度理解することを強く推奨します。特に、見慣れないプロキシや、意図しない
REJECT
ルール、DNS設定などには注意が必要です。 - プロキシサーバーの信頼性: 利用するプロキシサーバー自体の信頼性も重要です。通信はプロキシサーバーを通過するため、そのサーバーの管理者にはあなたの通信内容(暗号化されていない場合)やアクセス先が知られる可能性があります。信頼できるサービスプロバイダーを選択し、通信の暗号化(SS, VMess, Trojan, HTTPSプロキシなど)がされているプロキシを使用することを強く推奨します。
- DNSリーク: 不適切なDNS設定は、プロキシを経由していてもDNSクエリが直接ISPなどに送信されてしまう「DNSリーク」を引き起こす可能性があります。設定ファイルの
dns
セクションが適切に構成されており、特に信頼できるDNS over TLS/HTTPSサーバーが使用されているか確認しましょう。ClashのLogsタブやオンラインのDNSリークテストツールで確認できます。 - ローカルネットワークからのアクセス (allow-lan):
allow-lan: true
の設定は、ローカルネットワーク上の他のデバイスからあなたのPCをプロキシとして利用できるようにする便利な機能ですが、同時にセキュリティリスクも伴います。もし不要であればfalse
に設定し、必要な場合でもファイアウォールでClashがリッスンしているポートへのアクセスを制限するなどの対策を講じましょう。 - TUNモードのリスク: TUNモードはシステム全体の通信を捕捉しますが、ネットワーク構成によっては予期しない挙動をしたり、特定のセキュリティソフトウェアと競合したりする可能性があります。慎重に使用し、問題が発生しないか監視が必要です。
14. 他のプロキシツールとの比較 (簡単な紹介)
Clash for Windows以外にも様々なプロキシツールが存在します。CfWはそれらとどのように異なるのでしょうか。
- VPN (OpenVPN, WireGuardなど): VPNは通常、PCとその先のVPNサーバーとの間に暗号化された仮想ネットワークトンネルを構築し、すべての通信をそのトンネル経由でルーティングします。シンプルで強力な匿名化・セキュリティ強化手段ですが、Clashのようなドメイン/IPベースの複雑なルーティングルールによる細かな制御は苦手です。Clashは「ルールベースのプロキシ」、VPNは「トンネルベースのネットワーク拡張」と捉えることができます。
- 従来のSOCKS/HTTPプロキシクライアント: これらのクライアントは通常、単一のプロキシサーバーを設定し、それをシステムプロキシとして適用したり、アプリケーションごとに手動で設定したりします。複数のプロキシの管理、速度テストによる自動選択、高度なルールベースのルーティングといったClashの機能は持ちません。
- 他のClashクライアント: Clashのコアエンジンを使ったGUIクライアントはCfW以外にもいくつか存在します(例: Clash Verge、Yet Another Clash GUIなど)。機能やUIの使い勝手、開発の活発さなどに違いがあります。CfWは長年の開発実績があり、安定性と機能の豊富さで多くのユーザーに利用されています。最近ではClash Vergeなども人気を集めています。
Clash for Windowsは、「複数のプロキシサーバーを使い分けたい」「アクセス先によって細かくルーティングを制御したい」「使いやすいGUIでClashの機能を利用したい」といったニーズに強く応えるツールと言えます。
15. まとめと今後の展望
Clash for Windowsは、Clashの強力なルールベースプロキシ機能をWindows上で手軽に利用できる優れたクライアントです。設定ファイル(YAML)の理解が最初は少し難しく感じるかもしれませんが、proxies
、proxy-groups
、rules
の構造と役割を把握すれば、インターネット通信を意図通りに制御できるようになります。
基本的なプロキシ設定から、速度テストによる自動選択、フォールバック、負荷分散、ドメインやIP、地域、プロセス名に基づいた詳細なルーティング、DNS設定によるプライバシー保護、そしてRule/Proxy Providerによる自動更新まで、CfWはPC上のプロキシ利用に関するほとんどすべてのニーズに応える柔軟性と機能を持っています。
本記事で解説した内容を参考に、ぜひあなたの環境に合わせて設定をカスタマイズしてみてください。特にLogsタブは、トラブルシューティングや設定の確認に非常に役立ちます。
インターネット環境は常に変化しており、プロキシサーバーの情報やアクセス先のIPアドレスなども変動します。プロファイルを定期的に更新したり、Rule Providerを活用したりすることで、設定を最新の状態に保つことがスムーズな利用の鍵となります。
Clash for Windowsはオープンソースプロジェクトとして活発に開発が続けられており、今後も新機能の追加や改善が期待されます。本記事が、あなたがClash for Windowsを理解し、PCでのプロキシ利用をより快適かつ強力なものにする一助となれば幸いです。
免責事項: プロキシの利用は、お住まいの地域や利用するネットワークの規則、プロキシサービスの利用規約に従って、ご自身の責任において行ってください。違法な活動や不正な目的でのプロキシ利用は固く禁じられています。本記事はClash for Windowsの技術的な機能について説明するものであり、特定の目的での利用を推奨するものではありません。