Clash設定ファイル入門:ダウンロードからカスタム設定まで【初心者向け】
インターネットを快適かつ安全に利用するためには、様々なツールや技術が不可欠です。その中でも、柔軟なルーティングと高度なカスタマイズ性で注目を集めているのが「Clash」です。VPNとは一線を画すその機能性は、特定のウェブサイトへのアクセス、広告ブロック、プライバシー保護など、多岐にわたるニーズに応えます。
しかし、Clashはその強力な機能ゆえに、初心者にとっては設定が複雑に感じられることも少なくありません。特に、核となる「設定ファイル(Configファイル)」の理解とカスタマイズは、多くの人がつまずくポイントです。
本記事では、Clashを初めて利用する方から、既存の設定をさらに細かくカスタマイズしたいと考えている方まで、Clashの設定ファイルに関する知識を網羅的に、かつ分かりやすく解説します。Clashのダウンロードから、設定ファイルの基本構造、GUI(グラフィカルユーザーインターフェース)での操作方法、そしてYAML形式を用いたカスタム設定の具体的な方法まで、ステップバイステップで詳しく見ていきましょう。約5000語にわたるこの解説を通して、Clashをあなたのインターネットライフの強力な味方に変えるための全てを学べます。
1. はじめに:Clashとは何か? なぜ必要なのか?
インターネットの利用が日常に深く浸透する中で、私たちは様々な制約や懸念に直面しています。特定のウェブサイトが地域によって制限されている「ジオブロック」、大量の広告によるユーザー体験の阻害、そして個人情報や通信内容のプライバシー保護に関する懸念などです。これらの課題に対処するためのツールとして、多くの方が「VPN(仮想プライベートネットワーク)」を思い浮かべるでしょう。しかし、VPNが提供する機能は、必ずしも全てのニーズに最適解であるとは限りません。ここで登場するのが、より高度な「プロキシツール」であるClashです。
1.1. Clashの概要:ルールベースルーティングの強力なプロキシ
Clashは、ルールベースルーティングを特徴とするオープンソースのマルチプラットフォームプロキシツールです。一般的なVPNが「全ての通信を一つのサーバー経由で」というシンプルな方式であるのに対し、Clashは「この通信はプロキシ経由、あの通信は直接接続、そして特定の広告はブロック」といった形で、通信の種類や宛先に応じてルーティングを柔軟に制御できる点が最大の特徴です。
これにより、以下のような利点が得られます。
- 柔軟なアクセス制御: 特定の国からのアクセスを必要とするサービスにはプロキシを経由させ、国内サービスには直接接続するなど、通信を最適化できます。
- 広告ブロック・プライバシー保護: 広告配信ドメインやトラッキングドメインへのアクセスをブロックすることで、クリーンなブラウジング環境を実現し、プライバシーを強化します。
- 帯域幅の効率的利用: 必要のない通信にはプロキシを使わず直接接続することで、プロキシサーバーの負荷を減らし、全体の通信速度を維持できます。
- 複数プロキシの管理: 複数のプロキシサーバーを登録し、遅延テストに基づいて自動で最適なサーバーを選択したり、手動で切り替えたりすることが可能です。
Clashは、その内部で様々なプロキシプロトコル(Shadowsocks, Vmess, Trojan, Snellなど)をサポートしており、ユーザーはこれらのプロトコルを意識することなく、統一されたインターフェースで利用できます。
1.2. VPNとの違いとClashの利点
ClashとVPNは、どちらもインターネット通信を「迂回」させることで、プライバシー保護や地理的制限の回避に役立つツールですが、その動作原理と得意分野には明確な違いがあります。
特徴 | VPN(一般的なもの) | Clash |
---|---|---|
動作原理 | 全ての通信をVPNサーバー経由で暗号化しトンネリング | ルールに基づき、通信ごとにプロキシ経由、直接接続、ブロックを選択 |
ルーティング | 全て(All-or-Nothing) | 非常に柔軟なルールベースルーティング |
設定の複雑さ | シンプル(アプリでサーバー選択のみ) | 初期設定はやや複雑(設定ファイルの理解が必要) |
用途 | 全体のプライバシー保護、匿名化、広範囲のジオブロック回避 | 特定のサービスへのアクセス、広告ブロック、細かい通信制御 |
オーバーヘッド | 全通信が暗号化されるため、一般的にClashより高い場合がある | 必要に応じてプロキシを使うため、効率が良い |
Clashの最大の利点は、そのカスタマイズ性と効率性にあります。一般的なVPNでは実現が難しい「国内サイトは直接、海外サイトはプロキシ」といった細かい制御が可能になるため、インターネットの利用体験を大きく向上させることができます。
1.3. 本記事の目的:初心者から上級者へ
本記事は、Clashの強力な機能を最大限に活用できるようになることを目指します。具体的には、以下の内容を段階的に解説します。
- Clashの基本知識: プロキシ、YAML形式、ルーティングの概念など、Clashを理解するための基礎を学びます。
- ダウンロードとインストール: 各プラットフォームでのClashの導入方法を説明します。
- 設定ファイルの基本構造: Clashの核となるYAML形式の設定ファイルを読み解き、各セクションの役割を理解します。
- 設定ファイルのインポート: 既存のサブスクリプションリンクやローカルファイルをClashに読み込ませる方法を習得します。
- GUIの活用: Clash for Windows(CFW)を例に、GUIから基本的な操作や設定を行う方法を学びます。
- カスタム設定の作成と編集: YAMLファイルを直接編集し、自分だけのルールやプロキシグループを追加する方法を実践的に解説します。
- セキュリティとプライバシー: Clash利用における注意点や、安全な運用方法について触れます。
この記事を読み終える頃には、あなたはClashの基本的な操作に加え、設定ファイルを自在に操り、あなたのインターネット環境を最適化するスキルを身につけていることでしょう。それでは、Clashの世界へ踏み出しましょう。
2. Clashを始める前に:基礎知識の習得
Clashの設定ファイルは「YAML(ヤムル)」という形式で記述されており、プロキシやルーティングに関する専門用語が多く登場します。これらを理解しておくことで、設定ファイルの読み書きが格段にスムーズになります。
2.1. プロキシの概念
プロキシとは、インターネットに接続する際に、ユーザーのコンピューターと目的のウェブサイトとの間に「代理」として挟まるサーバーのことです。直接接続する代わりにプロキシサーバーを経由することで、様々な目的を達成できます。
- 目的:
- 匿名性の向上: 目的のウェブサイトからはプロキシサーバーのIPアドレスが見えるため、ユーザーの実際のIPアドレスを隠すことができます。
- 地理的制限の回避: プロキシサーバーが特定の国に設置されていれば、その国からのアクセスとして認識され、ジオブロックを回避できます。
- コンテンツフィルタリング: 特定のウェブサイトや広告へのアクセスをブロックできます。
- キャッシュ: 頻繁にアクセスされるコンテンツをプロキシサーバーがキャッシュすることで、表示速度を向上させることができます。
Clashは、複数の異なるプロトコルのプロキシをサポートしています。
- HTTP/SOCKS5: 一般的なプロキシプロトコル。Clashはこれらをクライアントとして利用できます。
- Shadowsocks (SS): 暗号化されたプロキシプロトコルで、検閲回避に特化しています。
- Vmess (VMess): V2Rayプロジェクトによって開発されたプロトコルで、高い秘匿性と柔軟性を持っています。
- Trojan: HTTPの見た目を模倣することで、TLS検閲を回避することを目指したプロトコルです。
- Snell: 比較的軽量で高速なプロキシプロトコルです。
Clashはこれらのプロトコルを統合的に管理し、ユーザーは複雑な設定を意識することなく利用できます。
2.2. YAML形式:設定ファイルの記述言語
Clashの設定ファイルはYAML (YAML Ain’t Markup Language) 形式で書かれています。YAMLは人間にとって読み書きしやすいデータ形式として設計されており、設定ファイルやデータ交換によく用いられます。
YAMLの最も重要な特徴は、インデント(字下げ)によってデータの階層構造を示す点です。スペースを使って正確にインデントすることが非常に重要であり、タブは使用できません。一般的に、スペース2つが推奨されますが、スペース4つもよく使われます。設定ファイル全体で統一されたインデントを使用してください。
YAMLの基本構造例:
“`yaml
これはコメントです
key: value # キーと値
parent_key: # 親キー
child_key_1: value1 # 子キー1 (スペース2つでインデント)
child_key_2: # 子キー2
grandchild_key: value2 # 孫キー (さらにスペース2つでインデント)
list_key: # リスト(配列)
– item1 # リストの要素 (ハイフンとスペース1つ)
– item2
“`
Clashの設定ファイルを編集する際には、このインデントルールを厳守しないと、ファイルが正しく解析されずエラーとなります。
2.3. ルーティングの概念:プロキシ、ダイレクト、ブロック
Clashにおける「ルーティング」とは、インターネット上のどの宛先への通信を、どの経路(プロキシ、直接接続、ブロック)で処理するかを決定することです。
- プロキシ (PROXY): 定義されたプロキシサーバーを経由して通信を行います。地理的制限の回避や匿名性の向上に利用します。
- ダイレクト (DIRECT): プロキシサーバーを経由せず、直接インターネットに接続します。国内サービスや、プロキシを経由する必要のない通信に利用することで、通信速度を維持します。
- ブロック (REJECT/REJECT-DROP): 指定された宛先への通信を遮断します。広告ドメインやマルウェア配布サイトなどへのアクセスを防ぐために利用します。
REJECT
はICMP応答を返すのに対し、REJECT-DROP
は何も応答せずタイムアウトさせます。
これらのルーティングは「ルール」に基づいて行われます。
2.4. 主な用語解説
Clashの設定ファイルで頻繁に登場する主要な用語を解説します。
- ノード (Node) / プロキシ (Proxy): 実際に通信を中継するサーバーの個別の情報(IPアドレス、ポート、プロトコル、認証情報など)。設定ファイルの
proxies
セクションに定義されます。 - プロキシグループ (Proxy Group): 複数のプロキシノードや他のプロキシグループをまとめた論理的なグループ。これにより、複数のサーバーから自動で最適なものを選択したり、手動で切り替えたりする機能を実現します。設定ファイルの
proxy-groups
セクションに定義されます。select
: ユーザーが手動でプロキシノードを選択できるグループ。url-test
: 定期的に各ノードの遅延をテストし、最も遅延の少ないノードを自動で選択するグループ。fallback
: 最初のノードが利用不可になった場合、次のノードに自動で切り替わるグループ。load-balance
: 複数のノードに負荷を分散させるグループ。
- ルール (Rule): 特定の条件(ドメイン、IPアドレス、プロセス名など)に一致する通信に対して、どのプロキシグループやポリシー(DIRECT, REJECTなど)を適用するかを定義するもの。設定ファイルの
rules
セクションに定義されます。ルールは上から順に評価され、最初に一致したルールが適用されます。 - ポリシー (Policy): ルールが適用された際に、その通信がどのように処理されるかを示す指示。PROXY(プロキシ経由)、DIRECT(直接接続)、REJECT(ブロック)などがあります。Clashではプロキシグループ自体もポリシーとして扱われることがあります。
- プロバイダー (Provider): 外部のファイルからプロキシノードやルールを読み込むための設定。これにより、設定ファイル本体を簡潔に保ちつつ、頻繁に更新されるリストを効率的に管理できます。
proxy-providers
: 外部からプロキシノードのリストを読み込む。rule-providers
: 外部からルールリストを読み込む。
- サブスクリプション (Subscription): プロキシサービス提供者が提供する、プロキシノードのリストを含むURL。Clashは通常、このURLから設定ファイルをダウンロードして利用します。
これらの基本用語を頭に入れておくことで、Clashの設定ファイルを読み解く準備が整います。次のセクションでは、実際にClashをコンピューターに導入する方法を見ていきましょう。
3. Clashのダウンロードとインストール
Clashは様々なプラットフォームで利用できますが、ここでは最も一般的なGUIクライアントである「Clash for Windows (CFW)」を中心に解説し、モバイル版やコア版にも触れます。
3.1. Clash for Windows (CFW)
Clash for Windows (CFW) は、Windows環境でClashを利用するための最も人気のあるGUIクライアントです。直感的なインターフェースで、設定ファイルの管理、プロキシの切り替え、ログの確認などが容易に行えます。
3.1.1. GitHubからのダウンロード方法
CFWは公式ウェブサイトを持たず、開発はGitHubで行われています。最新版はGitHubのReleaseページからダウンロードします。
- GitHubのReleaseページへアクセス:
https://github.com/Fndroid/clash_for_windows_pkg/releases - 最新のリリースを探す:
ページを下にスクロールし、「Latest」タグが付いている最新のリリースを見つけます。 - アセットのダウンロード:
「Assets」セクションを展開し、ご自身のWindows環境に合った実行ファイルをダウンロードします。Clash.for.Windows.Setup.<バージョン番号>.exe
: 一般的なインストーラー版。こちらを推奨します。Clash.for.Windows.Clash.for.Windows.<バージョン番号>.zip
: ポータブル版(解凍してすぐに使える)。Clash.for.Windows.Clash.for.Windows.Portable.<バージョン番号>.7z
: ポータブル版の7zアーカイブ。
3.1.2. インストール手順 (Setup版)
ダウンロードした Clash.for.Windows.Setup.<バージョン番号>.exe
を実行します。
- インストーラーの起動: ダウンロードした
exe
ファイルをダブルクリックします。 - 利用規約の同意: 指示に従い、利用規約を読んで同意します。
- インストール先の選択: 通常はデフォルトのままで問題ありません。
- インストール開始: 「インストール」ボタンをクリックすると、インストールが開始されます。
- インストール完了: インストールが完了したら、「Clash for Windowsを実行」のチェックボックスにチェックが入っていることを確認し、「完了」をクリックします。
初回起動時には、Windows Defenderなどのファイアウォールから通信許可を求められることがあります。「アクセスを許可する」を選択してください。
3.1.3. 初回起動時の画面説明 (CFW)
CFWが起動すると、左側にいくつかのタブが表示されます。
- General: システムプロキシのON/OFF、Clashの動作モード、ポート設定など。
- Proxies: 登録されているプロキシノードとプロキシグループの一覧。ここからプロキシの切り替えや遅延テストができます。
- Profiles: 設定ファイル(Configファイル)の管理。新しい設定ファイルのダウンロードやインポートを行います。
- Rules: 現在適用されているルールの一覧。
- Logs: Clashの動作ログ。通信の状況やエラーの確認に役立ちます。
- Settings: アプリケーション全般の設定(UIテーマ、自動起動など)。
まずは「Profiles」タブから設定ファイルをインポートすることになります。
3.2. Clash for Android/iOS (Clash for Android / Stash)
モバイル環境でもClashを利用できます。
- Clash for Android:
- Google Playストアで提供されていますが、地域によっては利用できない場合があります。その場合は、GitHubのReleaseページ (https://github.com/Kr328/ClashForAndroid/releases) からAPKファイルをダウンロードして手動でインストールできます。
- 基本的なUIはCFWと似ていますが、一部機能や設定項目が異なります。
- Clash for iOS (Stash / Shadowrocketなど):
- iOS版Clashクライアントは複数存在しますが、最も有名なのは「Stash」です(有料)。App Storeからダウンロードできます。
- 「Shadowrocket」などもClash互換のプロキシクライアントとして機能し、Clash形式の設定ファイルをインポートできます。
- これらのアプリは、Clash Coreをベースにしていますが、AppleのApp Storeポリシーにより機能が制限されている場合があります。
3.3. Clash (Core) CLI版
Clash Coreは、Clashのコア部分であり、GUIなしで動作するコマンドラインインターフェース(CLI)版です。LinuxサーバーやDocker環境など、GUIが不要な環境で利用されます。
- GitHubからのダウンロード:
https://github.com/Dreamacro/clash/releases
各種OS・アーキテクチャに対応したバイナリファイルが提供されています。 - 実行方法:
ダウンロードしたバイナリを実行可能にし、設定ファイル(config.yaml
)を指定して起動します。
./clash -f config.yaml
CLI版は上級者向けであり、本記事では詳細な利用方法は割愛しますが、CFWなどのGUIクライアントもこのClash Coreを内部で利用しています。
Clashのインストールが完了したら、いよいよClashを動かすための「設定ファイル」の理解へと進みましょう。これがClashの真の力を引き出す鍵となります。
4. Clash設定ファイルの基本構造理解
Clashの動作を決定づけるのが、YAML形式で記述された設定ファイル(Configファイル)です。このファイルには、利用するプロキシサーバーの情報、通信をどのようにルーティングするかを決定するルール、そしてClash自身の動作設定など、すべての情報が含まれています。
4.1. 設定ファイルの種類
Clashの設定ファイルは大きく分けて二つの種類があります。
- オンラインサブスクリプション(Subscription Link)から取得する設定ファイル:
プロキシサービス提供元が提供するURLからダウンロードされるファイルです。多くの場合、ユーザーが手動で編集する必要がないように、基本的なプロキシノードと一般的なルールがプリロードされています。 - ローカルファイル(Local File):
ユーザーが自分で作成または編集したYAMLファイルです。サブスクリプションで得た設定をベースに、特定のルールを追加したり、プロキシグループをカスタマイズしたりする場合に利用します。
Clash for WindowsなどのGUIクライアントでは、通常、サブスクリプションリンクをインポートするだけで簡単に利用を開始できます。しかし、より高度なカスタマイズを行うためには、ローカルファイルを編集するスキルが不可欠です。
4.2. YAMLファイル構造の解説
標準的なClashの設定ファイルは、以下の主要なセクションで構成されています。それぞれのセクションには、特定の目的を持つ設定が記述されます。
“`yaml
1. 基本設定
port: 7890
socks-port: 7891
redir-port: 7892
tproxy-port: 7893
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
secret: “”
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: redir-host
nameserver:
– 114.114.114.114
– 223.5.5.5
fallback:
– https://dns.google/dns-query
– tls://dns.google:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
– 240.0.0.0/4
…その他の基本設定…
2. プロキシノードの定義
proxies:
– name: “🇯🇵 Tokyo – Node A”
type: ss
server: example-tokyo.com
port: 443
cipher: aes-256-gcm
password: “your_password”
udp: true
– name: “🇺🇸 US – Node B”
type: vmess
server: example-us.com
port: 10000
uuid: “your_uuid”
alterId: 0
cipher: auto
tls: true
skip-cert-verify: true
network: ws
ws-path: “/vmess”
ws-headers:
Host: example-us.com
# …他のプロキシノード…
3. プロキシグループの設定
proxy-groups:
– name: “🚀 Proxy”
type: select
proxies:
– “🇯🇵 Tokyo – Node A”
– “🇺🇸 US – Node B”
– “♻️ Auto Select” # 他のプロキシグループをネスト
– DIRECT
– name: “♻️ Auto Select”
type: url-test
url: http://www.google.com/generate_204
interval: 300
tolerance: 50
proxies:
– “🇯🇵 Tokyo – Node A”
– “🇺🇸 US – Node B”
– name: “📲 Telegram”
type: select
proxies:
– “♻️ Auto Select”
– DIRECT
– REJECT
– name: “🚫 Ad Block”
type: select
proxies:
– REJECT # 広告はブロック
– DIRECT # 広告以外は直接接続の選択肢も
# …他のプロキシグループ…
4. ルーティングルールの定義
rules:
– DOMAIN-SUFFIX,google.com,DIRECT # Googleは直接接続
– DOMAIN-KEYWORD,twitter,🚀 Proxy # Twitter関連はProxyグループ経由
– DOMAIN-SUFFIX,youtube.com,🚀 Proxy # YouTubeはProxyグループ経由
– IP-CIDR,192.168.0.0/16,DIRECT,no-resolve # プライベートIPは直接
– GEOIP,CN,DIRECT # 中国IPは直接接続(中国内にいる場合)
– PROCESS-NAME,Brave.exe,DIRECT # Braveブラウザは直接接続
– DOMAIN-SUFFIX,ad.com,🚫 Ad Block # 広告ドメインはAd Blockグループで処理
– MATCH,🚀 Proxy # どのルールにも一致しない場合はProxyグループ経由
“`
各セクションの詳細を解説します。
4.2.1. 基本設定 (Root Level Configuration)
ファイルの冒頭に記述されるClash全体の動作に関する設定です。
port
/socks-port
/redir-port
/tproxy-port
:
Clashがリッスンするプロキシポートの番号です。port
: HTTP/SOCKS5混合プロキシポート(主にアプリケーション向け)socks-port
: SOCKS5プロキシポート(主にアプリケーション向け)redir-port
: リダイレクトプロキシポート(透過プロキシ向け)tproxy-port
: TProxyポート(Linuxの透過プロキシ向け)
allow-lan
:true
に設定すると、Clashが動作しているPCと同じLAN内の他のデバイスからもClashのプロキシを利用できるようになります。デフォルトはfalse
。mode
: Clashのルーティングモードを設定します。rule
: ルールに基づいて通信を処理します(最も推奨)。global
: 全ての通信をデフォルトのプロキシ(または選択されているプロキシ)経由で処理します。direct
: 全ての通信を直接接続します(Clashを無効にするのと同義)。
log-level
: ログの詳細度を設定します。debug
,info
,warning
,error
,silent
など。トラブルシューティング時にはdebug
が有用です。external-controller
: Web UI(Yacdなど)や他のツールからClashを制御するためのAPIポートを設定します。通常127.0.0.1:9090
。secret
:external-controller
でAPIにアクセスする際の認証トークンを設定します。空欄の場合、認証は不要です。dns
: DNS関連の設定を行います。enable
: DNS機能の有効/無効。listen
: DNSクエリをリッスンするIPアドレスとポート。enhanced-mode
: DNSの動作モード。redir-host
(最も一般的、DNS結果を書き換えてルール適用)、fake-ip
(DNS結果を偽造IPで応答、一部アプリで必須)。nameserver
: 通常のDNSサーバー。fallback
:nameserver
が応答しない場合や、特定の条件(例:geoip
)に合致した場合に使用するDNSサーバー。DNS over HTTPS (DoH) や DNS over TLS (DoT) を指定できます。fallback-filter
:fallback
DNSを使用する条件を指定します。
4.2.2. proxies
:プロキシノードの定義
実際にインターネット通信を中継する個々のプロキシサーバーの情報を定義するセクションです。各プロキシはname
を持ち、この名前が他のセクション(proxy-groups
など)で参照されます。
一般的なプロキシプロトコルの設定例:
- Shadowsocks (SS):
“`yaml- name: “My SS Server”
type: ss
server: your.ss.server.com
port: 443
cipher: aes-256-gcm
password: “your_password”
udp: true # UDPプロキシを有効にするか
“`
- name: “My SS Server”
- Vmess (VMess):
“`yaml- name: “My Vmess Server”
type: vmess
server: your.vmess.server.com
port: 12345
uuid: “your-uuid-string”
alterId: 0
cipher: auto
tls: true # TLSを有効にするか
skip-cert-verify: true # 証明書検証をスキップするか(非推奨だが一部で必要)
network: ws # WebSocketを使うか
ws-path: “/your_path” # WebSocketパス
ws-headers:
Host: your.vmess.server.com # ホストヘッダー
“`
- name: “My Vmess Server”
- Trojan:
“`yaml- name: “My Trojan Server”
type: trojan
server: your.trojan.server.com
port: 443
password: “your_password”
sni: your.trojan.server.com # SNI
skip-cert-verify: true
“`
- name: “My Trojan Server”
プロキシサービスからサブスクリプションリンクを受け取った場合、このproxies
セクションは自動的に生成されます。
4.2.3. proxy-groups
:プロキシグループの設定
複数のプロキシノードや他のプロキシグループを束ね、特定のルーティングポリシーを適用するためのグループを定義します。これにより、利用可能なプロキシを効率的に管理し、柔軟な切り替えメカニズムを提供します。
name
: グループの名前。ルールや他のグループから参照されます。type
: グループの動作タイプ。select
: ユーザーが手動でプロキシを選択するグループ。
“`yaml- name: “🚀 My Proxy Select”
type: select
proxies:- “My SS Server”
- “My Vmess Server”
- DIRECT # 直接接続のオプションも追加
- REJECT # ブロックのオプションも追加
“`
- name: “🚀 My Proxy Select”
url-test
: 指定されたURLへの遅延テストに基づいて、最も応答の速いプロキシを自動で選択するグループ。
“`yaml- name: “♻️ Auto Proxy Test”
type: url-test
url: http://www.google.com/generate_204 # テスト用URL
interval: 300 # テスト間隔(秒)
tolerance: 50 # 遅延の許容誤差(ミリ秒)
proxies:- “My SS Server”
- “My Vmess Server”
“`
- name: “♻️ Auto Proxy Test”
fallback
: 最初のプロキシが利用不可になった場合、リストの次のプロキシに自動で切り替わるグループ。
“`yaml- name: “➡️ Fallback Proxy”
type: fallback
url: http://www.google.com/generate_204
interval: 300
proxies:- “My SS Server”
- “My Vmess Server”
“`
- name: “➡️ Fallback Proxy”
load-balance
: 複数のプロキシにリクエストを分散させるグループ。
“`yaml- name: “↔️ Load Balance”
type: load-balance
url: http://www.google.com/generate_204
interval: 300
proxies:- “My SS Server”
- “My Vmess Server”
“`
- name: “↔️ Load Balance”
proxies
: グループに含めるプロキシノードや他のプロキシグループの名前のリスト。DIRECT
やREJECT
といったClashの組み込みポリシーも指定できます。
4.2.4. rules
:ルーティングルールの定義
Clashの最も強力な機能の一つがルールベースルーティングです。rules
セクションでは、特定の通信をどのプロキシグループやポリシー(DIRECT, REJECTなど)で処理するかを定義します。ルールは上から順に評価され、最初に条件に合致したルールが適用されます。この順序が非常に重要です。より具体的なルールは上に、より一般的なルールは下に配置します。
一般的なルールタイプ:
DOMAIN
: 完全一致ドメイン名。
DOMAIN,example.com,DIRECT
(example.comへの通信を直接接続)DOMAIN-SUFFIX
: ドメイン名が指定したサフィックスで終わる場合。
DOMAIN-SUFFIX,google.com,🚀 My Proxy Select
(全てのgoogle.comとそのサブドメインをプロキシ経由)DOMAIN-KEYWORD
: ドメイン名に指定したキーワードが含まれる場合。
DOMAIN-KEYWORD,youtube,🚀 My Proxy Select
(youtubeというキーワードを含むドメインをプロキシ経由)IP-CIDR
/IP-CIDR6
: IPアドレスまたはCIDR形式のIPアドレス範囲。no-resolve
を付けるとDNS解決を行わない。
IP-CIDR,192.168.1.0/24,DIRECT,no-resolve
(ローカルネットワークへの通信は直接)GEOIP
: IPアドレスの地理情報(国コード)に基づく。
GEOIP,CN,DIRECT
(IPアドレスが中国(CN)の場合、直接接続)
GEOIP,US,🚀 My Proxy Select
(IPアドレスがアメリカ(US)の場合、プロキシ経由)PROCESS-NAME
: 特定のプロセス名(アプリケーション名)からの通信。
PROCESS-NAME,Brave.exe,DIRECT
(Braveブラウザからの通信は直接)MATCH
: どのルールにも一致しなかった場合の最終的なフォールバックルール。必ずファイルの最後に配置します。
MATCH,🚀 My Proxy Select
(どのルールにも一致しない通信は「My Proxy Select」グループで処理)
ルール記述の重要性:
- 具体的ルールを上に: 例:
DOMAIN,specific.example.com,DIRECT
はDOMAIN-SUFFIX,example.com,PROXY
の上。 - 一般的なルールを下に:
MATCH
ルールは常に最後。 no-resolve
の利用: IP-CIDRルールでDNS解決が不要な場合にno-resolve
を追加すると、パフォーマンスが向上する可能性があります。
4.2.5. rule-providers
/ proxy-providers
:外部ファイルからの読み込み
設定ファイルが大規模になりすぎたり、頻繁に更新されるリストを管理したりする場合に非常に便利な機能です。外部のURL(GitHub Gist、CDNなど)からルールリストやプロキシリストを動的に読み込むことができます。
-
rule-providers
:
yaml
rule-providers:
ad_block_rules:
type: http
behavior: domain # or ipcidr, classical
url: "https://example.com/path/to/ad_block_rules.txt"
interval: 86400 # 更新間隔(秒)
path: "./rules/ad_block_rules.yaml" # ローカルに保存するパスbehavior
: ルールファイルのタイプを指定します。domain
(ドメインルールのみ)、ipcidr
(IPルールのみ)、classical
(両方含む)など。
これらの外部ルールをrules
セクションで利用するには、RULE-SET,ad_block_rules,🚫 Ad Block
のように参照します。
-
proxy-providers
:
yaml
proxy-providers:
my_vps_proxies:
type: http
url: "https://example.com/path/to/my_vps_proxies.yaml"
interval: 3600
path: "./providers/my_vps_proxies.yaml"
health-check:
enable: true
url: http://www.google.com/generate_204
interval: 300
これらの外部プロキシをproxy-groups
セクションで利用するには、name: "My Group"
,proxies: [{provider: my_vps_proxies}]
のように参照します。
設定ファイルの基本的な構造を理解することで、次に示す設定ファイルのダウンロード、インポート、そしてカスタム編集のステップがスムーズに進められます。
5. 設定ファイルのダウンロードとインポート
Clashを利用する上で最も一般的な最初のステップは、設定ファイル(サブスクリプション)をClashクライアントにインポートすることです。ここでは、Clash for Windows (CFW) を例に、その手順を解説します。
5.1. サブスクリプションリンクの利用
多くのプロキシサービス(V2Ray/SS/SSRなど提供サービス)は、Clash形式のサブスクリプションリンクを提供しています。これは、サービスが管理するプロキシノードのリストを自動的にClash形式に変換して提供してくれるURLです。
5.1.1. プロキシサービス提供元からURLを入手
利用しているプロキシサービスのウェブサイト(またはユーザー管理ページ)にログインし、「Clash Subscriptions」「Config Link」「One-click Import」といった項目を探します。通常、以下のようなURL形式になっています。
https://example.com/api/v1/client/subscribe?token=YOUR_TOKEN&clash=1
このURLをコピーしておきます。
5.1.2. Clash for Windowsでのインポート方法
- Clash for Windowsを起動: CFWアプリを起動します。
- 「Profiles」タブへ移動: 左側のメニューから「Profiles」タブをクリックします。
- URLからのダウンロード:
「Download from URL」という入力欄に、コピーしたサブスクリプションリンクを貼り付けます。
隣の「Download」ボタンをクリックします。
(または、サブスクリプションサービスのウェブサイトで「One-click Import to Clash for Windows」のようなボタンがあれば、それをクリックすると自動的にCFWが起動し、インポートが開始される場合があります。) - 設定ファイルの確認と選択:
ダウンロードが成功すると、「Profiles」タブのリストに新しい設定ファイルが表示されます。ファイル名(通常はURLのドメイン名やサービス名)を確認します。
新しい設定ファイルの右側にある丸いボタンをクリックして、その設定ファイルを有効化します。有効化されると、ボタンが緑色に変わります。
5.2. オンラインコンバーターの活用
一部のプロキシサービスはClash形式のサブスクリプションを直接提供しない場合があります(例: V2RayNG形式、SSR形式のみ)。また、既存のサブスクリプションに自分独自のルールやプロキシグループを追加したい場合にも、オンラインコンバーターが役立ちます。
5.2.1. なぜコンバーターが必要か
- 異なるプロトコル形式の変換: ClashはYAML形式を直接読み込むため、V2RayNGなどのJSON形式やSSR形式のサブスクリプションをClash互換のYAML形式に変換する必要があります。
- カスタマイズの自動化: コンバーターによっては、変換時に自動的に広告ブロックルールを追加したり、特定のドメインをDirectにしたりするオプションを提供しているものがあります。
- URLエンコード: サブスクリプションURLに特殊文字が含まれる場合、エンコードを自動で行ってくれるコンバーターもあります。
5.2.2. 一般的なコンバーターサイトの紹介
多くのコンバーターが存在しますが、いくつか例を挙げます。
- Subconverter: GitHub上で提供されているオープンソースのコンバーター。自分でホストすることもできますし、公開されているインスタンスを利用することもできます。
- Paste.fo / ACL4SSR: 一般的なプロキシルールセット(ACL)と組み合わせることで、よりカスタマイズされたClash設定ファイルを生成できます。
5.2.3. 変換時のオプション設定
コンバーターサイトでは、通常、以下のオプションを設定できます。
- 入力URL: 元のサブスクリプションリンクを貼り付けます。
- 出力形式: 「Clash」または「Clash YAML」を選択します。
- 追加オプション:
- Rule Set / ACL: 広告ブロック、Netflix対応、Telegram対応などのルールセットを選択・追加できます。
- Exclude/Include: 特定のプロキシノードを除外/含める設定。
- Custom Rules/Proxies: 変換後の設定ファイルに、ユーザーが指定したカスタムルールやプロキシを自動的に追加する機能。
- 変換実行: 「Generate」「Convert」などのボタンをクリックすると、変換されたClash設定ファイルのURLが表示されるので、それをコピーしてCFWの「Download from URL」に入力します。
5.3. ローカルファイルのインポート
自分で作成・編集したYAML形式の設定ファイルをClashに読み込ませることもできます。
- 設定ファイルの準備:
- テキストエディタ(Notepad++, VS Codeなど)でClash設定ファイル(例:
my_custom_config.yaml
)を作成・編集します。 - YAMLのインデントルールを厳守してください。インデントの不一致はエラーの原因となります。
- テキストエディタ(Notepad++, VS Codeなど)でClash設定ファイル(例:
- Clash for Windowsでのインポート方法:
- CFWの「Profiles」タブへ移動します。
- 「Import local config」ボタンをクリックします。
- ファイル選択ダイアログが表示されるので、作成した
my_custom_config.yaml
ファイルを選択し、「開く」をクリックします。 - インポートが成功すると、リストに新しい設定ファイルが表示されます。
- そのファイルの右側にある丸いボタンをクリックして、設定ファイルを有効化します。
5.4. 注意点
- 設定の競合: 複数のサブスクリプションをインポートした場合、それぞれが異なるプロキシノードやルールを持つため、Clashでは同時に一つの設定ファイルしか有効にできません。切り替える際は、有効にしたいプロファイルの丸いボタンをクリックし直してください。
- 冗長な設定: サブスクリプションリンクを変換する際、一部のコンバーターは不要なルールやプロキシグループを追加する場合があります。必要に応じて、後述のカスタム編集でこれらを整理することをお勧めします。
- 更新間隔: サブスクリプションは定期的に更新されるべきです。CFWでは「Profiles」タブの「Update」ボタンをクリックすることで、現在有効なプロファイルを再ダウンロードできます。
これで、Clashに設定ファイルを読み込ませる準備が整いました。次のセクションでは、Clash for WindowsのGUIを実際に操作しながら、各種機能の使い方を詳しく見ていきましょう。
6. Clash for Windows (CFW) GUIの活用
Clash for Windows (CFW) は、直感的なGUIを通じてClashの主要な機能を操作できる優れたクライアントです。設定ファイルのインポートだけでなく、システムプロキシの有効化、プロキシノードの切り替え、ログの確認など、日常的な運用に必要なほとんどの操作がGUIから行えます。
ここでは、各主要タブの機能と使い方を詳しく解説します。
6.1. Generalタブ
Clash for Windowsを起動した際に最初に表示される、Clashの基本的な動作設定を行うタブです。
- System Proxy:
- トグルスイッチのON/OFFで、Windowsシステム全体のプロキシ設定をClashに切り替えるかどうかを制御します。
- これをONにすると、ほとんどのアプリケーション(ウェブブラウザ、メーラー、ゲームクライアントなど)がClashを経由してインターネットにアクセスするようになります。
- 通常はONにして利用しますが、特定のアプリケーションのみClashを経由させたい場合はOFFにし、アプリケーション側で手動でプロキシ設定(Clashの
port
またはsocks-port
を指定)を行います。
- TAP Mode:
- トグルスイッチのON/OFFで、TAPアダプターモードを有効/無効にします。
- TAPモードは、システムプロキシ設定を上書きできない一部のアプリケーション(特に一部のゲームや特定のVPNクライアントなど)のトラフィックもClashで捕捉・ルーティングするために使用されます。
- これをONにすると、仮想ネットワークアダプターがインストールされ、システム全体のトラフィックがClashにリダイレクトされます。
- 注意: TAPモードは強力ですが、他のVPNやネットワークツールと競合する場合があります。問題が発生した場合はOFFにしてみてください。
- Mix Port / SOCKS Port:
- Clashがリッスンしているプロキシポートが表示されます。
Mix Port
: HTTPとSOCKS5の両方に対応したポート。SOCKS Port
: SOCKS5のみのポート。- これらのポート番号は、手動でアプリケーションのプロキシ設定を行う際に必要になります。
- Allow LAN:
- トグルスイッチのON/OFFで、Clashが動作しているPCと同じLAN内の他のデバイス(スマートフォン、タブレット、他のPCなど)が、このPCのClashプロキシを利用できるようにするかを制御します。
- ONにする場合、ファイアウォールでClashのポート(デフォルト7890/7891)を開放する必要がある場合があります。
- Mode:
- Clashのルーティングモードを選択します。
Rule
: ルールに基づいて通信を処理します(推奨)。Global
: 全ての通信を現在選択されているプロキシノード経由で処理します。Direct
: 全ての通信を直接接続します(Clashを無効にするのとほぼ同じ)。
- Log Level:
- Clashのログの冗長度を設定します。
info
がデフォルトで、通常の情報が表示されます。debug
は非常に詳細なログが出力されるため、トラブルシューティング時に利用します。
- System Proxy Mode:
Global
: 全てのアプリケーションがプロキシを使用します。Rule
: ルールに基づき、一部のアプリケーションがプロキシを使用し、他は直接接続します。Direct
: 全てのアプリケーションが直接接続します。- 注意: これはあくまでSystem ProxyがONの場合の動作モードであり、Clash全体の
mode
設定とは別に、システムプロキシの振る舞いを制御します。通常はClash全体のmode
と合わせてRule
に設定することが多いです。
6.2. Proxiesタブ
現在有効な設定ファイルに含まれる全てのプロキシノードとプロキシグループが一覧表示されるタブです。ここからプロキシの選択や遅延テストができます。
- プロキシグループの表示:
select
,url-test
,fallback
,load-balance
など、設定ファイルで定義されたプロキシグループがカード形式で表示されます。 - プロキシノードの選択 (Selectタイプ):
select
タイプのプロキシグループをクリックすると、そのグループに含まれるプロキシノードや他のプロキシグループのリストが表示されます。
使いたいプロキシノード(例:🇯🇵 Tokyo - Node A
)をクリックすると、それが有効になります。 - 遅延テスト (Latency Test):
各プロキシノードのカードに表示されている電波のようなアイコンをクリックすると、そのノードのPing遅延(ms単位)がテストされます。
遅延が低いほど、一般的に通信速度が速い傾向にあります。
url-test
タイプのプロキシグループは、この遅延テストを自動で行い、最適なノードを選択します。 - プロキシグループのリフレッシュ:
url-test
などの自動選択グループは、一定間隔で自動的に遅延テストを行いますが、手動で即座にテストし直したい場合は、グループ内のノード一覧が表示されている状態で、右上のリフレッシュアイコンをクリックします。
6.3. Profilesタブ
Clashの設定ファイル(プロファイル)を管理するタブです。
- プロファイルのリスト:
ダウンロードまたはインポートされた設定ファイルが一覧表示されます。 - プロファイルの有効化:
使いたいプロファイルの右端にある丸いボタンをクリックします。緑色になればそのプロファイルが有効になり、Clashがその設定で動作します。 - プロファイルのダウンロード/インポート:
「Download from URL」: サブスクリプションリンクを貼り付けて「Download」ボタンをクリックし、オンラインから設定ファイルをダウンロードします。
「Import local config」: ローカルに保存されているYAML設定ファイルをインポートします。 - プロファイルの更新:
有効なプロファイルの右端にある「Update」ボタンをクリックすると、そのプロファイルがサブスクリプションリンクから再ダウンロードされ、最新の状態に更新されます。 - プロファイルの編集:
プロファイル名の右側にある「Edit」ボタン(鉛筆アイコン)をクリックすると、テキストエディタでその設定ファイルを開き、内容を直接編集できます。YAMLのインデント規則を厳守してください。変更を保存すると、Clashが自動的に設定を再読み込みします。 - プロファイルの削除:
プロファイル名の右端にある「Delete」ボタン(ゴミ箱アイコン)をクリックすると、そのプロファイルをリストから削除できます。
6.4. Rulesタブ
現在有効な設定ファイルに定義されているルールの一覧を表示するタブです。
- ルールの表示:
設定ファイルで定義されたrules
セクションの内容が、タイプとターゲット、ポリシーと共に一覧で表示されます。 - 編集は不可:
このタブではルールを直接編集することはできません。ルールを編集するには「Profiles」タブから設定ファイルを開く必要があります。 - ルールの確認:
通信がどのルールにマッチしているか、意図した通りのルーティングが行われているかなどを確認する際に役立ちます。
6.5. Logsタブ
Clashの動作ログが表示されるタブです。トラブルシューティングや通信状況の監視に不可欠です。
- ログのリアルタイム表示:
Clashが処理している通信イベントがリアルタイムで表示されます。
どのドメインへのアクセスがどのプロキシノード(またはDIRECT/REJECT)を経由したか、DNSクエリ、エラーメッセージなどが記録されます。 - フィルター機能:
ログの上部にあるフィルター入力欄で、特定のキーワード(例: ドメイン名、IPアドレス、エラーメッセージ)を入力してログを絞り込むことができます。 - ログレベルの変更:
「General」タブでLog Level
をdebug
に設定すると、より詳細なログが表示され、問題の特定に役立ちます。ただし、debug
レベルはパフォーマンスに影響を与える可能性があるため、通常時はinfo
に戻すことを推奨します。
6.6. Settingsタブ
Clash for Windowsアプリケーション全般の設定を行うタブです。
- Start with Windows:
Windows起動時にCFWを自動的に起動するかどうかを設定します。 - Service Mode:
ClashをWindowsサービスとして実行するかどうかを設定します。サービスとして実行すると、ユーザーログインなしでもClashが動作し、システム全体にプロキシを適用できます。より安定した運用を目指す場合に有効ですが、一部の権限問題を引き起こす可能性もあります。 - UI Theme:
CFWのGUIのテーマ(ライト/ダーク)を変更します。 - External Controller / Dashboard:
外部のWeb UI(Yacdなど)にアクセスするための設定や、ダッシュボードURLの表示。 - Update Core / Update App:
Clash Core(中核部分)やCFWアプリ自体のアップデートを確認・実行できます。
Clash for WindowsのGUIをマスターすることで、Clashの基本的な運用は非常に簡単になります。しかし、Clashの真のパワーは、設定ファイルを直接編集してカスタマイズすることによって引き出されます。次のセクションでは、その具体的な方法について深く掘り下げていきます。
7. カスタム設定ファイルの作成と編集(実践編)
ClashのGUIは便利ですが、その機能は設定ファイルで定義された内容を表示・操作するに過ぎません。Clashのルーティングを完全にコントロールし、特定のニーズに合わせた動作を実現するためには、YAML形式の設定ファイルを直接編集するスキルが不可欠です。
このセクションでは、一般的なカスタマイズのシナリオと、それを実現するためのYAML編集方法を具体的に解説します。
7.1. 基本的なカスタマイズのシナリオ
以下は、Clashユーザーが頻繁に行うカスタマイズの例です。
- 特定のサイトを常にDirectにする:
「普段はプロキシを使いたいが、このサイトは国内サービスだから直接接続したい」「プロキシ経由だとCAPTCHAが頻繁に出るから、このサイトだけはDirectにしたい」。 - 特定のアプリを常にProxy経由にする:
「このゲームだけは海外サーバーに接続したい」「このブラウザは常にプロキシ経由にしたい」。 - 広告ブロックを追加する:
「ブラウザの広告ブロック拡張機能では防ぎきれない広告を、ネットワークレベルでブロックしたい」。 - DNS設定のカスタマイズ:
「より高速でプライバシー保護に優れたDNSサーバーを使いたい」「中国の特定のDNSクエリをブロックしたい」。
これらのカスタマイズは、既存のサブスクリプション設定ファイルに手を加えることで実現できます。
7.2. 既存サブスクリプション設定への追加
ほとんどのサブスクリプションは、標準的なルール(例: Google, YouTubeはProxy、国内IPはDirectなど)を含んでいますが、個人のニーズに合わせた細かい設定は不足している場合があります。サブスクリプション設定をベースにカスタマイズするには、以下の手順を踏みます。
7.2.1. YAMLファイルの編集方法
- 設定ファイルを開く:
Clash for Windowsの「Profiles」タブを開き、現在有効にしている(またはカスタマイズしたい)プロファイルの右側にある鉛筆アイコン(Editボタン)をクリックします。これにより、デフォルトのテキストエディタ(通常はメモ帳)でYAMLファイルが開きます。
注意: 編集前に元のファイルをバックアップすることをお勧めします。 - テキストエディタの利用:
VS CodeやNotepad++のような、YAMLの構文ハイライトやインデント補助機能を持つエディタを使うと、編集作業が格段に楽になります。 - インデントの重要性:
YAMLファイルはインデントに厳格です。スペースのみを使用し、タブは絶対に使用しないでください。一般的にスペース2つまたは4つが使われますが、ファイル全体で統一してください。既存のファイルに合わせるのが最も安全です。
7.2.2. proxies
, proxy-groups
, rules
セクションへの追加例
シナリオ1: 特定のサイトを常にDirectにする
これは最も一般的なカスタマイズの一つです。rules
セクションに新しいルールを追加します。ルールの順序が重要です。より具体的なルールを上位に配置します。
例: example.com
とsub.example.org
をDirectにする。
“`yaml
… (既存のルールより上に記述) …
rules:
– DOMAIN,example.com,DIRECT # example.com を直接接続
– DOMAIN-SUFFIX,sub.example.org,DIRECT # sub.example.org とそのサブドメインを直接接続
# … (既存のルール) …
– MATCH,🚀 Proxy # 最終フォールバックルールは常に最後
“`
変更を保存すると、Clashが自動的に設定を再読み込みし、新しいルールが適用されます。
シナリオ2: 特定のアプリを常にProxy経由にする
PROCESS-NAME
ルールを使用します。Windowsのタスクマネージャーなどでアプリケーションのプロセス名を確認します(例: WeChat.exe
)。
“`yaml
…
rules:
– PROCESS-NAME,WeChat.exe,🚀 Proxy # WeChat.exe は常にプロキシ経由
– PROCESS-NAME,Steam.exe,🚀 Proxy # Steam.exe もプロキシ経由
# …
– MATCH,🚀 Proxy
“`
ただし、これはシステムプロキシが有効な場合にのみ機能します。TAPモードを利用している場合や、アプリケーションがプロキシ設定を無視するタイプの場合は、このルールが適用されないことがあります。
シナリオ3: 広告ブロックを追加する
rules
セクションに広告ドメインをブロックするルールを追加します。大量の広告ドメインを手動で追加するのは非現実的なので、rule-providers
機能を利用して外部リストを読み込むのがベストプラクティスです。
まず、rule-providers
セクションを追加(または既存のものに追記)します。
yaml
rule-providers:
ad_block:
type: http
behavior: domain # ドメインベースのルールリスト
url: "https://raw.githubusercontent.com/BlackJackPai/rule/main/rule-set/rules.txt" # 例: 広告ブロックルールリストのURL
path: "./rules/ad_block.yaml" # ローカルに保存されるファイルパス
interval: 86400 # 24時間ごとに更新(秒)
次に、rules
セクションの適切な位置(通常は一般的なDIRECTルールの上、MATCH
ルールより前)でこのルールセットを参照します。広告をブロックするには、ポリシーとしてREJECT
またはREJECT-DROP
を指定します。
“`yaml
…
rules:
– DOMAIN,example.com,DIRECT # このルールより下に ad_block を置くと、example.com内の広告はブロックされる
– RULE-SET,ad_block,REJECT # 広告ドメインをブロック
# …
– MATCH,🚀 Proxy
“`
RULE-SET
は、rule-providers
で定義したad_block
を参照しています。これにより、GitHub上のリストが自動的にダウンロードされ、Clashのルールとして適用されます。
シナリオ4: DNS設定のカスタマイズ
Clashは高度なDNS機能を内蔵しており、DNS漏洩の防止や、DNS over HTTPS (DoH) / DNS over TLS (DoT) の利用が可能です。dns
セクションを編集します。
yaml
dns:
enable: true
listen: 0.0.0.0:53 # ローカルDNSサーバーとして動作するポート
enhanced-mode: redir-host # または fake-ip
nameserver: # 主要なDNSサーバー
- 114.114.114.114
- 223.5.5.5
fallback: # フォールバックDNSサーバー (主にDoH/DoTでプライバシー強化)
- https://dns.google/dns-query # Google Public DNS (DoH)
- tls://dns.cloudflare.com:853 # Cloudflare DNS (DoT)
fallback-filter: # フォールバックDNSを使う条件
geoip: true # GEOIPに基づきフォールバックするか
geoip-code: CN # 中国からのクエリをフィルタリング (例)
ipcidr: # 指定IP範囲からのクエリをフィルタリング (例)
- 240.0.0.0/4 # 中国の偽装IP範囲など
enhanced-mode: redir-host
: DNSクエリの結果をIPアドレスではなくホスト名で処理し、Clashのルールエンジンがドメインベースのルールを適用できるようにします。最も一般的で互換性が高いです。enhanced-mode: fake-ip
: DNSクエリに対してClashが偽のIPアドレスを応答し、実際の通信時にClashがドメイン解決を行います。一部のアプリケーション(例: ジオブロックされたアプリ)で必要になることがありますが、互換性の問題が生じることもあります。fallback-filter
: 中国など特定の地域からのアクセスや、疑わしいIPアドレスからのクエリに対して、フォールバックDNSを利用するかどうかを設定できます。
7.2.3. その他の応用例
- プロキシノードの追加:
もし自分でVPSを立ててShadowsocksやVmessサーバーを運用している場合、その情報をproxies
セクションに手動で追加できます。
“`yaml
proxies:- name: “My Own VPS”
type: ss
server: my.vps.ip
port: 8080
cipher: chacha20-ietf-poly1305
password: “my_secure_password”
…
proxy-groups:
– name: “🚀 Proxy”
type: select
proxies:
– “My Own VPS” # ここに新しく追加したプロキシ名を追記
– “♻️ Auto Select”
– DIRECT
“` - name: “My Own VPS”
- より複雑なプロキシグループのネスト:
proxy-groups
内で他のproxy-groups
を参照することで、階層的なプロキシ選択ロジックを構築できます。
“`yaml
proxy-groups:- name: “Global Main”
type: select
proxies:- “Japan Region” # 日本リージョンを選択するグループ
- “US Region” # 米国リージョンを選択するグループ
- DIRECT
- name: “Japan Region”
type: url-test
url: http://www.google.com/generate_204
interval: 300
proxies:- “🇯🇵 Tokyo – Node A”
- “🇯🇵 Osaka – Node X”
- name: “US Region”
type: url-test
url: http://www.google.com/generate_204
interval: 300
proxies:- “🇺🇸 US – Node B”
- “🇺🇸 US – Node Y”
“`
この例では、「Global Main」から日本リージョン全体か米国リージョン全体を選択でき、それぞれのリージョン内ではURLテストで最適なノードが自動選択されます。
- name: “Global Main”
7.3. よくある問題とトラブルシューティング
設定ファイルを編集する際やClashの運用中に発生しやすい問題と、その解決策です。
- インターネットに接続できない / 特定のサイトにアクセスできない:
- Clashが有効になっているか確認: CFWの「General」タブで「System Proxy」がONになっているか、あるいは「TAP Mode」がONになっているか確認します。
- プロキシが機能しているか: 「Proxies」タブで選択されているプロキシノードの遅延テストを実行し、正常に機能しているか確認します。もし赤字でエラーが出る場合は、そのプロキシノード自体が使えない可能性があります。別のノードを試すか、サービスプロバイダーに問い合わせてください。
- ルールが正しく適用されているか: 「Logs」タブでアクセスできないサイトのログを確認します。意図しないポリシー(REJECTやDIRECT)にマッチしていないか確認し、必要であれば
rules
セクションの順序や内容を見直します。 - DNSの問題:
dns
設定を確認します。特にenhanced-mode
がfake-ip
の場合、一部のサイトで問題が発生することがあります。redir-host
に戻してみるか、nameserver
やfallback
に信頼できるDNSサーバー(例: 8.8.8.8, 1.1.1.1)を設定してみてください。
- Clashが起動しない / 設定ファイルの読み込みエラー:
- YAML構文エラー: これが最も多い原因です。YAMLのインデントが間違っているか、コロン
:
やハイフン-
などの記号の使い方が間違っている可能性があります。VS CodeなどのエディタでYAMLのシンタックスチェック機能を利用するか、オンラインのYAMLバリデーターでチェックしてみてください。 - ファイルパスのエラー:
rule-providers
やproxy-providers
で指定したpath
が正しくない、またはアクセス権限がない場合があります。 - 既存の設定との競合: 複数のClashインスタンスが同じポートを使用しようとしていないか確認します。
- YAML構文エラー: これが最も多い原因です。YAMLのインデントが間違っているか、コロン
- ログの活用方法:
「Logs」タブはClashの「目」です。何か問題が発生したら、まずここを確認してください。- ログレベルを
debug
に上げると、より詳細な情報が得られます。 - 接続したいドメイン名やIPアドレスをログフィルターに入力し、その通信がどのルールにマッチし、どのポリシー(PROXY/DIRECT/REJECT)で処理されたかを確認します。これにより、問題の原因となっているルールやプロキシを特定しやすくなります。
- ログレベルを
カスタム設定は強力ですが、同時に設定ミスのリスクも伴います。一つずつ変更を加え、その都度動作を確認する「アジャイル」なアプローチが推奨されます。
8. セキュリティとプライバシーに関する注意点
Clashのようなプロキシツールを利用する際には、その便利さの裏にあるセキュリティとプライバシーに関する潜在的なリスクを理解し、適切な対策を講じることが重要です。
8.1. プロキシサービスの選定基準
Clash自体はオープンソースのツールであり、悪意のある機能は含まれていませんが、そのClashが利用するプロキシサーバーの提供元には注意が必要です。
- 信頼性: 運営元が不明確な無料プロキシサービスは避けるべきです。悪意のあるプロキシは、あなたの通信内容を盗聴したり、個人情報を収集したり、マルウェアを配布したりする可能性があります。
- ログポリシー: プロキシサービスがあなたの通信ログを記録しているか、どのような情報を記録しているか(IPアドレス、アクセス時間、トラフィック量など)、そしてそれらの情報をどの程度の期間保持するかを明確にしているか確認しましょう。プライバシーを重視するなら、ノーログポリシーを掲げているサービスを選ぶべきです。
- 利用規約: サービスの利用規約を読み、データ利用に関する項目を確認しましょう。
- 支払い方法: 匿名性を重視する場合、暗号通貨などの匿名性の高い支払い方法に対応しているかどうかも考慮点となります。
8.2. 無料プロキシのリスク
インターネット上には「無料プロキシリスト」のようなものが多く存在しますが、これらを利用することは非常に危険です。
- セキュリティリスク: 多くの無料プロキシは悪意のある第三者によって運営されており、あなたの通信内容(パスワード、クレジットカード情報など)が盗まれたり、コンピューターがマルウェアに感染したりする可能性があります。
- パフォーマンスの低下: 無料プロキシは多くのユーザーで共有されているため、帯域幅が制限され、通信速度が極端に遅くなることが多いです。
- 安定性の欠如: 無料プロキシは頻繁にダウンしたり、IPアドレスが変更されたりするため、安定した利用が期待できません。
信頼できる有料のプロキシサービスを利用することをお勧めします。
8.3. Clashの設定ファイルに含まれる情報
Clashの設定ファイル(特にサブスクリプションから取得したもの)には、利用しているプロキシサーバーのIPアドレス、ポート番号、認証情報(パスワード、UUIDなど)が平文で含まれています。
- ファイル管理の注意: 設定ファイルを安易に他人と共有したり、オンラインストレージに公開設定で保存したりしないでください。これらの情報が漏洩すると、第三者があなたのプロキシサービスを不正利用したり、あなたの通信活動を追跡したりする可能性があります。
- セキュリティ対策: Clashが動作するPCは、最新のOSアップデートを適用し、信頼できるアンチウイルスソフトウェアを使用するなど、基本的なセキュリティ対策を怠らないでください。
8.4. TAPモード使用時の注意点
Clash for WindowsのTAPモードは、システムレベルでプロキシを適用する強力な機能ですが、いくつかの注意点があります。
- ネットワークアダプターの追加: TAPモードを有効にすると、仮想ネットワークアダプターが追加されます。これにより、Windowsのネットワーク設定に影響を与える可能性があります。
- 競合: 他のVPNクライアントやネットワーク仮想化ソフトウェアと競合し、ネットワーク接続の問題を引き起こすことがあります。問題が発生した場合は、まずTAPモードを無効にしてみてください。
- DNS設定: TAPモードでは、Clashが提供するDNS解決がシステム全体に適用されるため、DNS漏洩の防止に役立ちますが、
dns
設定が適切でないと、DNS解決に問題が生じることもあります。
8.5. VPNとの併用に関する注意
一般的に、ClashとVPNクライアントの同時利用は推奨されません。両者が同時にネットワークトラフィックを制御しようとすると、競合が発生し、通信が不安定になったり、意図しないルーティングが発生したりする可能性が高いです。
- もし両方を使う必要がある場合は、どちらか一方を有効にし、もう一方を完全に無効にするように切り替える運用が推奨されます。
- ClashをVPNの「後段」として利用する(VPNでトンネルを確立し、そのVPN経由のトラフィックをさらにClashでルーティングする)といった高度な設定も不可能ではありませんが、これは非常に複雑で、詳細なネットワーク知識が必要です。通常は、ClashのルールベースルーティングでVPNの代替とできるケースが多いでしょう。
Clashは強力なツールですが、その利用は自己責任で行う必要があります。これらのセキュリティとプライバシーに関する注意点を常に意識し、安全なインターネット利用を心がけましょう。
9. Clashのさらに深い世界へ:応用と情報収集
本記事で解説した内容は、Clashの基本的な利用と設定ファイルのカスタマイズの入門に過ぎません。Clashはその設計思想とオープンソースである性質上、非常に奥深く、さらなる応用が可能です。
9.1. Clash.Meta:高機能なフォーク
Clashの公式版(Dreamacro/clash)とは別に、より多くのプロトコルや高度な機能をサポートするフォーク(派生版)が存在します。その中でも特に有名なのが「Clash.Meta」です。
- 特徴:
- 新しいプロキシプロトコル(TUIC, Hysteria2など)のサポート。
- より詳細なルーティング機能(Rule-Script, Rule-Setの柔軟な利用)。
- 強化されたDNS機能。
- VLESSなどの最新プロトコルへの対応。
- 利用方法: Clash for Windowsの「Settings」タブには、「Clash Core」のバージョンを選択するオプションがあり、Clash.Metaをダウンロードして利用できるようになっている場合があります。また、専用のクライアント(例:
Clash-Verge
など)も存在します。 - 注意点: Clash.Metaは公式版よりも開発が活発な一方で、一部の機能は実験的であったり、互換性の問題が生じたりする可能性もあります。上級者向けの選択肢と言えます。
9.2. Clash Dashboard (Yacd):Webベースの管理UI
Clashはexternal-controller
ポートを介して外部からAPIで制御できます。このAPIを利用して、よりリッチなユーザーインターフェースを提供するWebベースのダッシュボードが存在します。最も有名なのが「Yacd (Yet Another Clash Dashboard)」です。
- 特徴:
- WebブラウザからClashの設定変更、プロキシの切り替え、ルーティングルールの確認、リアルタイムトラフィックモニターなどが可能。
- Clash for Windowsに組み込まれているほか、独立したWebページとして提供されているものもあります。
- 利用方法: CFWの「Settings」タブの「General」セクションにある「Dashboard」ボタンをクリックすると、デフォルトブラウザでYacdが開きます。
9.3. コミュニティと情報源
Clashに関する最新情報や詳細な設定例、トラブルシューティングのヒントなどを得るためには、以下の情報源が役立ちます。
- GitHub Issue/Discussions:
- Clash本体: https://github.com/Dreamacro/clash/
- Clash for Windows: https://github.com/Fndroid/clash_for_windows_pkg/
- Clash.Meta: https://github.com/MetaCubeX/Clash.Meta/
開発元が提供する公式のリポジトリで、IssueやDiscussionsタブから質問したり、既存のQ&Aを検索したりできます。
- Reddit:
/r/Clash_Proxy
や/r/v2ray
など、Clashやプロキシ技術全般に関するコミュニティが存在します。 - Telegramグループ:
Clashに関する非公式なTelegramグループが多数存在し、リアルタイムでの情報交換やサポートが行われています。ただし、言語は英語や中国語が主流であり、情報源の信頼性には注意が必要です。 - 技術ブログ/フォーラム:
Qiita、Zenn、Medium、ブログサイトなどで、Clashに関する詳細な設定例や応用技術が解説されています。特定のユースケース(例: Netflixのジオブロック回避、特定のゲームの遅延改善など)に関する記事を探すと良いでしょう。
9.4. ルールセットの収集と活用
Clashの強力なルーティング機能は、高品質なルールセットがあってこそ最大限に発揮されます。コミュニティによって維持されている様々なルールセットを活用することで、自分で一からルールを書く手間を省き、より効率的なルーティングを実現できます。
- ACL4SSR / ConnersHua / BlackJackPai など:
これらのプロジェクトは、Clash向けに最適化された様々なルールセット(広告ブロック、国内サービス、海外サービス、特定のストリーミングサービスなど)を提供しています。rule-providers
機能と組み合わせて利用することが推奨されます。 - カスタムルールの作成:
必要に応じて、既存のルールセットを参考にしながら、自分だけのカスタムルールを作成・維持するスキルも重要です。
Clashは、単なるプロキシツールにとどまらず、インターネット通信を深く理解し、それを自在に操るための強力なプラットフォームです。これらの応用技術や情報源を活用することで、あなたのインターネット利用体験はさらに進化するでしょう。
10. まとめと今後の展望
本記事では、「Clash設定ファイル入門」として、Clashの基本的な概念から、ダウンロードとインストール、設定ファイルの構造理解、GUIの活用、そしてYAMLによるカスタム設定まで、網羅的に解説してきました。約5000語にわたる詳細な説明と実践的なステップを通じて、あなたはClashの複雑な設定を理解し、自分自身のニーズに合わせてカスタマイズするための基礎を習得できたことでしょう。
10.1. Clashの可能性の再確認
Clashは、そのルールベースルーティングの柔軟性により、従来のVPNでは実現が難しかった「通信の最適化」を可能にします。特定のサイトはプロキシ経由、国内サイトは直接接続、不要な広告はブロックといった、細やかな制御を通じて、より快適で安全、そして効率的なインターネット環境を構築できます。これは、プライバシー保護、地理的制限の回避、そしてネットワークリソースの有効活用において、非常に強力なツールとなります。
10.2. セキュリティ意識の重要性
Clashの強力な機能は、その利用に伴う責任も増大させます。信頼できないプロキシサービスの利用、設定ファイルの不適切な管理は、あなたのセキュリティとプライバシーを危険にさらす可能性があります。常に「誰がこのプロキシを運営しているのか?」「私のデータはどのように扱われるのか?」という問いを意識し、安全な運用を心がけることが不可欠です。本記事で述べたセキュリティとプライバシーに関する注意点を再確認し、リスクを最小限に抑えるように努めましょう。
10.3. 今後のClashの進化
Clashはオープンソースプロジェクトであり、Clash.Metaのような派生版も含め、活発に開発が続けられています。新しいプロトコルのサポート、より高度なルーティング機能、パフォーマンスの改善など、その進化は止まりません。ClashのコミュニティやGitHubリポジトリを定期的にチェックし、最新の情報をキャッチアップすることで、常にClashの最先端の恩恵を受けることができるでしょう。
この入門記事が、あなたがClashの広大な世界へと足を踏み入れ、インターネットをより自由で、より安全に、そしてより快適に利用するための一助となれば幸いです。Clashの学習は一度で終わりではなく、常に新しい発見と挑戦があります。ぜひ、自分自身のインターネット体験を最適化する旅を続けてください。