機能とアーキテクチャ

アーキテクチャ
徹底解説

ルーティングエンジンから YAML 設定、Fake-IP DNS からマルチプロトコル対応まで。Clash のコアアーキテクチャを理解し、その可能性を最大限に引き出しましょう。

Core Capabilities

6つのコア機能
プロフェッショナルなプロキシ・エコシステムの構築

Clash は Go 言語で構築された高性能コアをベースに、プロキシツールに必要なすべての主要機能を統合しています。各機能はコミュニティによって長年磨き上げられ、業界標準となっています。

ルールベースのルーティングエンジン

ドメイン、IP、GeoIP、プロセス名などによる多次元で精密なルーティング。国内と海外のトラフィックを分離し、帯域の無駄を徹底的に排除します。

詳細を見る →

マルチプロトコルのシームレスな互換性

Shadowsocks、VMess、Trojan、VLESS、Hysteria 2、TUIC など、主要なプロトコルをネイティブサポート。単一のコアで、断片化されたクライアントをすべて代替します。

プロトコル一覧を表示 →

YAML 宣言型設定

人間とマシンの両方に優しい YAML 構文を採用。バージョン管理に対応し、サブスクリプションリンクによるワンクリック同期が可能で、手動メンテナンスは不要です。

設定例を表示 →

DNS & Fake-IP 漏洩防止

Fake-IP 機構を通じてシステム DNS を制御。DNS クエリのプロバイダーへの漏洩を徹底的に防ぎ、あらゆるネットワーク環境で本当の現在地とデジタル指紋を保護します。

仕組みを理解する →

プロキシグループ & 自動速度測定

select、url-test、fallback、load-balance の4つのグループタイプをサポートし、高可用なプロキシルーティングを実現します。

プロキシグループの詳細 →

RESTful API による外部制御

内蔵の HTTP RESTful API により、Yacd や MetaCubeX などの外部パネルから、ノードの切り替え、トラフィック監視、ルール管理をリアルタイムで行えます。

API ドキュメント →
Rule-Based Routing Engine

ルールベースのルーティングエンジン
精密なトラフィック制御

Clash の最大かつユニークな強みは、その強力な ルールベースのプロキシシステム です。グローバルプロキシや単純な PAC リストしかできない従来のツールとは異なり、多次元でのきめ細かなルーティング制御を提供します。

ルールは優先順位に従って上から順にマッチングされ、ヒットすると対応するアクション(PROXY / DIRECT / REJECT)が実行されます。最後の MATCH ルールがフォールバック(デフォルト)として機能します。

DOMAIN
完全ドメイン一致 ドメイン全体に一致。例:google.com
DOMAIN-SUFFIX
ドメイン接尾辞一致 指定されたドメインおよびすべてのサブドメインに一致
DOMAIN-KEYWORD
ドメインキーワード一致 ドメインに指定されたキーワードが含まれている場合に一致
GEOIP
地理位置 IP 一致 MaxMind GeoIP データベースに基づき、中国(CN)などの IP を正確に識別
IP-CIDR
IP 範囲(CIDR)一致 指定された CIDR 範囲に一致。IPv4 / IPv6 をサポート
PROCESS-NAME
プロセス名一致 特定のアプリケーションに対して、プロセスレベルで専用のルーティングを設定
RULE-SET
リモートルールセット購読 リモート URL からルールセットを動的に読み込み。定期的な自動更新に対応
MATCH
デフォルトルール(必ず最後に配置) どのルールにもマッチしなかったトラフィックに対する最終的な処理
config.yaml · rules スニペット
# ── Rule-based routing configuration ── rules: # Exact domain → proxy - DOMAIN,google.com,PROXY - DOMAIN,youtube.com,PROXY - DOMAIN,openai.com,PROXY # Suffix matching → forward all subdomains - DOMAIN-SUFFIX,github.com,PROXY - DOMAIN-SUFFIX,twitter.com,PROXY # Keyword matching → catch CDN variants - DOMAIN-KEYWORD,googleapis,PROXY - DOMAIN-KEYWORD,gstatic,PROXY # Ad/tracker rejection - DOMAIN-SUFFIX,doubleclick.net,REJECT # Remote rule-set subscription (auto-updates) - RULE-SET,proxy-list,PROXY - RULE-SET,cn-domain,DIRECT # GeoIP: mainland China traffic → direct - GEOIP,CN,DIRECT # Final fallback - MATCH,PROXY
💡

Rule Providers(ルールセット購読):rule-providers フィールドを通じて、リモートの YAML/TEXT ルールファイルを読み込みます。Clash は設定された間隔で自動的に更新を取得するため、巨大な設定ファイルを手動で管理する必要がありません。

Multi-Protocol Support

全プロトコルサポート
一つのコアで完結

Clash Meta (mihomo) コアは、オリジナルの Clash をベースに拡張され、現在市販されているほぼすべての主要なプロキシプロトコルをサポートしています。どのようなプロバイダーであっても、Clash 一つで対応可能です。

プロトコル名 トランスポート 暗号化方式 難読化 推奨シーン サポートバージョン
Shadowsocks TCP / UDP AEAD 暗号化 標準 最も広い互換性、空港の標準 オリジナル + Meta
ShadowsocksR TCP / UDP 多重難読化 難読化あり 旧来のプロバイダーとの互換性 オリジナル + Meta
VMess TCP / WS / H2 / GRPC AES / ChaCha20 WebSocket TLS V2Ray エコシステムで推奨 オリジナル + Meta
VLESS TCP / WS / H2 / GRPC 内蔵暗号化なし(TLSに依存) TLS / Reality 軽量で高性能、新規導入に推奨 Meta のみ
Trojan TCP TLS ネイティブ HTTPS サイトへの偽装 強力な耐プロービング性 オリジナル + Meta
Hysteria 2 UDP (QUIC) TLS 1.3 QUIC 難読化 高レイテンシ・パケットロス環境での高速転送 Meta のみ
TUIC UDP (QUIC) TLS 1.3 QUIC 多重化 低レイテンシ環境向け最適化 Meta のみ
Snell TCP AES-256-GCM 標準 Surge エコシステムとの連携 オリジナル + Meta
Socks5 / HTTP TCP TLS オプション なし LAN内の中継 オリジナル + Meta
Reality TCP XTLS / Vision 実在するサイトの TLS 指紋偽装 TLS 指紋検出への最強の対策 Meta のみ

新規ユーザー向けプロトコルの推奨

新しいノードには、VLESS + Reality(最強の耐検出性)または Hysteria 2(高レイテンシ環境での最高速度)が推奨されます。どちらも Clash Meta (mihomo) コアが必要です。最も広い互換性が必要な場合は、Shadowsocks (AEAD) が依然として安定した選択肢です。

Configuration Standard

YAML 宣言型設定
完全構造リファレンス

Clash は唯一の設定形式として YAML を採用しています。完全な設定ファイルは以下のトップレベルフィールドで構成されています。各フィールドの役割を理解することが、Clash マスターへの第一歩です。

01 · 基本ネットワーク設定
# ── Basic network settings ── port: 7890 # HTTP proxy port socks-port: 7891 # SOCKS5 proxy port redir-port: 7892 # Transparent proxy port (Linux/macOS) tproxy-port: 7893 # TProxy port (Linux only) mixed-port: 7897 # HTTP + SOCKS5 combined port allow-lan: true # Allow LAN devices to use as gateway bind-address: '*' # Bind to all interfaces # Running mode: rule | global | direct mode: rule # Log level: silent | error | warning | info | debug log-level: info # External controller for dashboard panels (Yacd / MetaCubeX) external-controller: 127.0.0.1:9090 secret: 'your_api_secret'
02 · DNS 設定 (Fake-IP を含む)
# ── DNS configuration with Fake-IP ── dns: enable: true listen: 0.0.0.0:1053 ipv6: false # Fake-IP mode: prevents DNS leaks enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 # Domains excluded from Fake-IP (LAN / local) fake-ip-filter: - '*.lan' - 'localhost.ptlogin2.qq.com' # Upstream DNS over HTTPS servers nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query # Fallback DNS for non-CN domains (bypasses GFW) fallback: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fallback-filter: geoip: true geoip-code: CN
03 · プロキシノード (proxies)
# ── Proxy server declarations ── proxies: # Shadowsocks node - name: "SS-US-01" type: ss server: us1.example.com port: 8388 cipher: chacha20-ietf-poly1305 password: "your_password" udp: true # VLESS + Reality node (Meta only) - name: "VLESS-Reality-HK" type: vless server: hk1.example.com port: 443 uuid: "your-uuid-here" tls: true reality-opts: public-key: "your-public-key" short-id: "abcdef01" # Hysteria 2 node (Meta only) - name: "HY2-JP-01" type: hysteria2 server: jp1.example.com port: 443 password: "your_password" sni: jp1.example.com
04 · プロキシグループ (proxy-groups)
# ── Proxy groups configuration ── proxy-groups: # Manual selection group - name: "PROXY" type: select proxies: ["Auto-Speed", "SS-US-01", "VLESS-Reality-HK"] # Auto url-test: picks lowest latency - name: "Auto-Speed" type: url-test url: "http://www.gstatic.com/generate_204" interval: 300 proxies: ["SS-US-01", "VLESS-Reality-HK", "HY2-JP-01"] # Fallback: switches on node failure - name: "Fallback" type: fallback url: "http://www.gstatic.com/generate_204" interval: 60 proxies: ["SS-US-01", "HY2-JP-01"] # Load balance across multiple nodes - name: "LoadBalance" type: load-balance strategy: round-robin proxies: ["SS-US-01", "VLESS-Reality-HK"]
Strategy Groups Architecture

プロキシグループの4つのタイプ
高可用なルーティング設計

select 手動選択 (Manual Select)

プロキシグループを手動で切り替え

ユーザーがクライアントのUI上で、現在アクティブなプロキシノードまたはサブグループを手動で選択します。Netflixへのアクセスに米国のノードを固定して使用したい場合など、精密な制御が必要なシーンに適しています。

  • 他のプロキシグループの入れ子をサポート
  • proxy-providers によるサブスクリプションの読み込みに対応
  • DIRECT / REJECT 特殊ノードを含めることが可能
url-test 自動速度測定 (Auto Speedtest)

自動レイテンシ測定プロキシグループ

グループ内の全ノードに定期的に HTTP プローブを送信し、最もレイテンシの低いノードを自動的に選択します。手動での測定は不要で、常に最適なネットワーク体験を自動で維持します。

  • url:レイテンシ測定用URL (gstatic 204 推奨)
  • interval:測定間隔(秒)、300s 推奨
  • tolerance:頻繁な切り替えを避けるための許容値 (Tolerance)
fallback フォールバック (Fallback)

障害時自動切り替え高可用グループ

ノードを並び順に使用し、現在のノードで接続に失敗した場合に次の利用可能なノードへ自動で切り替えます。サービスの停止を許容できない重要な業務シーンに適しています。

  • 順次降級:リスト先頭のノードを優先使用
  • ノード復旧時の自動書き戻し
  • ストリーミング配信のブロック解除維持に最適
load-balance ロードバランス (Load Balance)

負荷分散プロキシグループ

トラフィックをグループ内の複数ノードへ分散させます。consistent-hashing (ドメインごとにノード固定) と round-robin (ラウンドロビン) をサポートし、帯域を最大限に活用してスループットを向上させます。

  • consistent-hashing: 送信元IPごとの固定ルーティング
  • round-robin: 均等な分散
  • 大容量マルチタスクやダウンロードシーンに最適
DNS & Privacy Architecture

Fake-IP 機構
DNS 漏洩を徹底的に排除

なぜ標準的なプロキシで DNS 漏洩が起こるのか?

従来のプロキシモードでは、ブラウザがまずプロバイダー (ISP) の DNS サーバーにドメインの IP を問い合わせ、その後にプロキシ接続を確立します。このため、トラフィックが暗号化されていても、どのドメインにアクセスしようとしているかが ISP に筒抜けになります。

Fake-IP はどのように問題を解決するのか?

Clash の Fake-IP モードは、ローカルでシステム DNS を制御し、各ドメインに対して即座にダミーのローカル IP (198.18.x.x など) を返します。アプリはこの IP を使って即座に接続を開始します。Clash 内核はこのダミー IP を認識すると、本来のドメイン名を暗号化されたトンネル経由でリモートのプロキシサーバーへ送り、そこで DNS 解決を行います。これにより ISP への DNS クエリ漏洩を根本から遮断します

従来のプロキシ DNS フロー (漏洩あり)
ブラウザがリクエスト発行 プロバイダー (ISP) の DNS クエリ
(アクセス意図の漏洩)
プロキシトンネル接続
Fake-IP モード (漏洩ゼロ)
ブラウザがリクエスト発行 Clash ローカル Fake-IP
(198.18.x.x を即座に応答)
ドメイン名は暗号化トンネル内で
リモート解決される
fake-ip モード 推奨

ダミーIPを即座に返却し、ドメイン名はリモートで解決。DNS 漏洩を完全に防止し、接続レイテンシが最も低くなります。

redir-host モード 互換モード

先にローカルで DNS 解決を行ってからルーティングを判断。互換性は高いですが、DNS 漏洩のリスクがあります。

⚠️

Fake-IP フィルタ (fake-ip-filter): WeChat や QQ のログイン用ドメインなど、一部のローカルサービスは Fake-IP と相性が悪いため、fake-ip-filter で除外設定を行う必要があります。

🔒

推奨 DoH アップストリーム: 国内向けには https://doh.pub/dns-queryhttps://dns.alidns.com/dns-query、Fallack には https://1.1.1.1/dns-query (Cloudflare) を推奨します。

RESTful API & External Control

内蔵 RESTful API
ビジュアル管理パネルの構築

Clash コアには HTTP RESTful API が内蔵されています。external-controller でポートを開放することで、Yacd、MetaCubeX、clash-dashboard などのサードパーティ製パネルから、ノード切り替え、トラフィック監視、接続管理などのすべての操作を、コアを再起動することなくリアルタイムに行えます。

GET プロキシとノードの管理
GET /proxies 全プロキシノードとグループの情報を取得
PUT /proxies/:name 指定したグループのノードを切り替え
GET /proxies/:name/delay ノードごとのリアルタイムレイテンシ測定 (ms)
GET トラフィック監視と接続
GET /traffic WebSocket によるリアルタイムスループット配信
GET /connections 現在アクティブな接続リストを取得
DELETE /connections/:id 特定の接続を切断
PUT 設定のホットアップデート
PUT /configs 設定ファイルをリロード (再起動不要)
PATCH /configs 単一のフィールドを動的に変更
PUT /rules ルールセットのホットアップデート
WS リアルタイムログストリーム
GET /logs レベルによるフィルタリング対応の WebSocket ログ
GET /version コアのバージョン情報を取得
GET /memory コアのリアルタイムメモリ使用量を取得
推奨される管理パネル
Yacd 軽量・ミニマルで読み込みが最も速く、初心者向け GitHub →
MetaCubeX 高機能。Meta 専有機能もサポートし、上級者向け GitHub →
Clash Dashboard 公式のクラシックパネル。全バージョンのコアで動作が安定 GitHub →
Performance Architecture

Go 言語製コア
圧倒的なパフォーマンス

~5MB
コアプロセスのメモリ使用量
Electron系クライアント(200MB+)よりはるかに軽量
10k+
同時接続処理能力
Go goroutine モデルにより、高負荷でも安定
<1%
アイドル時の CPU 使用率
イベント駆動型。トラフィックがないときはリソースをほぼ消費しません
ARM
全アーキテクチャ・ネイティブサポート
x86, ARM64, ARMv7, MIPS まで、あらゆる環境をカバー

Go Goroutine による並行処理

各接続を独立した goroutine が処理。スレッド切り替えのオーバーヘッドがなく、CPU コア数に応じて直線的にパフォーマンスが向上します。

O(1) ハッシュによるルール照合

ドメインルールはハッシュテーブルに格納。ルール数がどれほど多くてもマッチングは常に一定時間で完了し、パフォーマンスを低下させません。

DNS キャッシュとプリフェッチ

内蔵 DNS キャッシュと Fake-IP により、リモート DNS の応答を待たずに即座に接続を開始。体感レイテンシを大幅に削減します。

クロスプラットフォーム・シングルバイナリ

単一の実行ファイルとしてコンパイル。依存関係がなく、Windows, macOS, Linux, Android への導入が極めて容易です。

Quick Start Guide

初心者向け5ステップ入門
インストールから自由なアクセスまで

お使いのOSに関わらず、以下の手順に従えば約5分で Clash の設定が完了し、安定した国際ネットワークへのアクセスが可能になります。

01

お使いのOSに合ったクライアントをダウンロード

お使いのOS用の GUI クライアントを選択:Windows (Clash Verge Rev)、macOS (Clash Verge Rev または ClashX Pro)、Android (Clash Meta for Android)、Linux (Clash Meta コア + Yacd)。

ダウンロードページへ →
02

インストール完了、最初の起動

Windows: .exe ファイルをダブルクリックし、ウィザードに従ってインストールを完了します。macOS: .dmg 内のアプリを Applications フォルダにドラッグします。Android: 「不明なソースからのアプリ」のインストールを許可してから APK をインストールしてください。初回起動時、システムプロキシの権限を求められた場合は許可してください。

03

サブスクリプションリンクのインポート

クライアント画面の「Profiles(構成)」または「サブスクリプション」ページで、プロバイダーから提供されたサブスクリプション URL を貼り付け、「Download」または「Update」ボタンをクリックします。Clash が自動的にすべてのノード情報とグループ設定を解析します。サーバー情報を手動で入力する必要はありません。

04

ノードの選択とレイテンシ測定

「Proxies(プロキシ)」ページで、各グループの「Latency Test(遅延測定)」を実行し、レイテンシが最も低い(通常は緑色で表示)ノードを選択します。サブスクリプションに「url-test」グループが含まれている場合、Clash が最適なノードを自動選択します。

05

システムプロキシを有効にして利用開始

メイン画面で「System Proxy(システムプロキシ)」をオンにします。これで Clash がシステム全体の通信を制御します。ブラウザで Google, YouTube, GitHub などを開き、速度の向上を体感してください。「Start on Boot(開機自始)」を有効にしておくと便利です。

Frequently Asked Questions

設定に関する FAQ
トラブルシューティングガイド

Clash を起動してもブラウザでネットに繋がりません

以下を確認してください:1) 「System Proxy」がオンになっているか。2) サブスクリプションがダウンロードされ、ノードリストが表示されているか。3) 選択したノードのレイテンシ測定が正常か(timeout になっていないか)。4) ファイアウォールが Clash をブロックしていないか。Windows の場合は、システムプロキシ設定が 127.0.0.1:7890 を指しているか確認してください。

DNS 漏洩が発生しているか確認するには?

dnsleaktest.com や ipleak.net にアクセスしてください。もし日本の ISP(例:NTT, KDDI, Softbank)の DNS サーバーが表示された場合は漏洩しています。設定ファイルで DNS の enhanced-mode を 「fake-ip」に変更して再起動してください。

サブスクリプションを更新してもノードが変わりません

一部のクライアントはローカルキャッシュを使用します。「Profiles」ページで、サブスクリプション名の横にある「Force Refresh」や「Update」ボタンをクリックしてください。解決しない場合は、一度削除してから追加し直すか、サブスクリプションの有効期限を確認してください。

すべての通信を接管する TUN モードの設定方法は?

設定ファイルに「tun: enable: true」と「stack: mixed」を追加し、クライアントを管理者/root 権限で実行してください。TUN モードは、システムプロキシに従わないプログラム(ゲームや CLI ツールなど)を制御できます。Windows では Wintun ドライバのインストールが必要です。

Clash Meta とオリジナル Clash の設定ファイルに互換性はありますか?

大部分は共通です。オリジナル Clash 用の設定は Clash Meta (mihomo) でも動作します。ただし、Meta 独自のフィールド(VLESS, Reality, Hysteria 2, TUIC など)は、2023年に開発が終了したオリジナルコアでは動作しません。現在は Meta コアへの移行を推奨します。

Linux サーバーで Clash を透明プロキシゲートウェイにするには?

1) Clash Meta バイナリをダウンロード。2) YAML 設定で「tproxy-port: 7893」と「allow-lan: true」を有効化。3) iptables / nftables でトラフィックを 7893 ポートへ転送。4) systemd でデーモン化。他のデバイスのゲートウェイをこのサーバーに向ければ完了です。

準備はいいですか?

お使いのプラットフォーム用の Clash クライアントをダウンロードしましょう。3分で設定が完了し、高速で安定したアクセスを楽しめます。

最新バージョンを無料ダウンロード GitHub リポジトリ