Clash Meta(現在は Mihomo とも呼ばれる)は、現在最も活発にメンテナンスされ、最も機能が充実している Clash コアのブランチです。オリジナルの Clash Premium カーネルをベースに、DNS戦略、ルールエンジン、およびプロトコルサポートを大幅に拡張しています。本記事では、Clash Meta の完全な設定体系をゼロから解説します。DNS-over-HTTPS、Tun仮想ネットワークカード、RULE-SETルールセット、そして Provider サブスクリプション管理を網羅し、2026年においても通用する高性能でメンテナンス性の高いプロキシ環境の構築をサポートします。
一、Clash Meta とオリジナル Clash の主な違い
設定を始める前に、Clash Meta(Mihomo)とオリジナルの Clash の違いを整理しておく必要があります。これにより、古い設定をそのまま流用してトラブルに遭うのを防ぐことができます。
オリジナルの Clash 開発は2023年末に停止しました。Premium 版では Tun モードやルールセットが提供されていましたが、更新が滞り、バグ修正も遅れがちでした。Clash Meta はこれらをベースにしつつ、以下の能力を追加しています:
プロトコルの拡張:VLESS、Reality、Hysteria2、TUIC v5 などの新興プロトコルをネイティブでサポートしています。追加のパッチなしで利用でき、高速通信や検知回避を必要とするユーザーにとって不可欠な機能です。
DNS戦略の強化:DNS-over-HTTPS (DoH)、DNS-over-TLS (DoT)、DNS-over-QUIC (DoQ) の3種類の暗号化解析をサポートしています。また、ドメインごとに異なる DNS サーバーを指定でき、「国内ドメインは国内 DNS、国外ドメインは暗号化 DNS」といった詳細なルーティングが可能です。
ルールエンジンの最適化:RULE-SET 外部ルールセットとオンデマンド読み込みをサポートしています。膨大なルールリストによるメモリ消費を大幅に削減し、ルールセットの自動更新も可能です。
二、設定ファイルの基本構造
Clash Meta は YAML 形式の設定ファイルを使用します。デフォルトのパスは、macOS/Linux では ~/.config/clash/config.yaml、Windows では %APPDATA%\clash\config.yaml です。完全な設定ファイルは以下のトップレベルフィールドで構成されます:
# Clash Meta 設定ファイルのスケルトン
port: 7890
socks-port: 7891
mixed-port: 7892
allow-lan: false
mode: rule
log-level: info
ipv6: false
dns:
enable: true
# DNS 設定(詳細は第三章参照)
proxies:
# プロキシノードリスト
proxy-groups:
# プロキシグループ / ポリシールーティング
rules:
# トラフィックルーティングルール
proxy-providers:
# サブスクリプションプロバイダー
rule-providers:
# 外部ルールセット
mixed-port の使用を推奨します。ポートを個別に設定する手間が省けます。mode: rule はルールに従って分流することを意味し、通常はこのモードを使用します。
三、DNS戦略:暗号化解析とドメイン別ルーティング
DNS 設定は Clash Meta で最も誤解されやすい部分の一つです。設定を誤ると、国内サイトの解析が遅くなったり、国外ドメインが DNS 汚染の影響を受けて接続に失敗したりします。
3.1 基本的な DNS 設定
dns:
enable: true
ipv6: false
listen: 0.0.0.0:1053
# フォールバックとしてシステムリゾルバを使用
default-nameserver:
- 8.8.8.8
- 1.1.1.1
# 拡張モード:fake-ip を推奨
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
# 国外ドメイン用の暗号化リゾルバ
nameserver:
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
# 汚染対策のフォールバック
fallback:
- https://1.1.1.1/dns-query
- https://dns.quad9.net/dns-query
fallback-filter:
geoip: true
geoip-code: JP
ipcidr:
- 240.0.0.0/4
fake-ip モード は Clash Meta で最も推奨される DNS モードです。各ドメインに対して仮想のローカル IP アドレスを生成し、実際のドメイン解析はプロキシ側で行われるため、DNS 漏洩や汚染の問題を根本から回避できます。
3.2 ドメイン別 DNS (nameserver-policy)
国内ドメインは国内 DNS(高速)、国外ドメインは暗号化 DNS(安全)を使用したい場合は、nameserver-policy フィールドを使用します:
dns:
nameserver-policy:
# 日本国内のドメインは Google 日本 DNS 等を使用
"geosite:jp": https://dns.google/dns-query
# 特定のサービスは専用の DNS を使用
"geosite:google": https://dns.google/dns-query
四、プロキシノードとポリシーグループの設定
proxies フィールドでプロキシサーバーのノードを定義します。Clash Meta は SS、SSR、VMess、VLESS、Trojan、Hysteria2、TUIC など多岐にわたるプロトコルをサポートしています:
proxies:
- name: "HK-Hysteria2-01"
type: hysteria2
server: hk.example.com
port: 443
password: "your-password"
sni: hk.example.com
skip-cert-verify: false
- name: "US-VLESS-Reality"
type: vless
server: us.example.com
port: 443
uuid: "your-uuid"
network: tcp
tls: true
reality-opts:
public-key: "your-public-key"
short-id: "your-short-id"
proxy-groups でノードの選択戦略を構成します。一般的なタイプには select(手動選択)、url-test(自動速報)、fallback(フェイルオーバー)、load-balance(負荷分散)があります:
proxy-groups:
- name: "プロキシ選択"
type: select
proxies:
- "自動選択"
- "HK-Hysteria2-01"
- "US-VLESS-Reality"
- DIRECT
- name: "自動選択"
type: url-test
proxies:
- "HK-Hysteria2-01"
- "US-VLESS-Reality"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
五、RULE-SET 外部ルールセット:精密な分流の核心
設定ファイル内に膨大なルールを記述するとメンテナンスが困難になり、起動も遅くなります。Clash Meta の rule-providers は、リモート URL からルールセットを読み込み、自動更新することを可能にします。これが本番環境で最も推奨される管理方法です。
rule-providers:
ads:
type: http
behavior: domain
url: "https://example.com/ruleset/ads.txt"
path: ./ruleset/ads.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://example.com/ruleset/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://example.com/ruleset/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
rules フィールドでこれらのルールセットを引用し、分流を完成させます:
rules:
- RULE-SET,ads,REJECT
- RULE-SET,direct,DIRECT
- RULE-SET,proxy,プロキシ選択
- GEOIP,JP,DIRECT
- MATCH,プロキシ選択
REJECT ルールは最優先で記述するのが一般的です。
六、Provider サブスクリプション管理
実運用では、多くのユーザーがプロバイダーから提供されるサブスクリプションリンクを使用します。Clash Meta の proxy-providers は、サブスクリプション URL を直接参照し、ノードを自動的に解析・注入することを可能にします。
proxy-providers:
airport-a:
type: http
url: "https://your-airport.example.com/api/v1/client/subscribe?token=xxx"
path: ./providers/airport-a.yaml
interval: 3600
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
その後、ポリシーグループ内で use フィールドを使用して Provider を参照します。これにより、ノード名を手動で列挙する必要がなくなります。
この方法の最大の利点は、プロバイダーがノードを更新した際、Clash Meta が次の更新サイクルで最新のノードを自動的に取得してくれることです。手動で設定を更新する手間が大幅に省けます。
七、Tun モード:システム全体のトラフィックを制御
従来のプロキシモードでは、明示的にプロキシを設定したアプリケーションのトラフィックしか処理できませんでした。Tun モードは仮想ネットワークカードを作成することで、OS レベルで全ての TCP/UDP トラフィックをキャプチャし、完全な透明プロキシを実現します。プロキシ設定をサポートしていないコマンドラインツールやゲームにおいて非常に有効です。
tun:
enable: true
stack: mixed # gvisor / lwip / mixed (推奨)
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
stack: mixed が推奨される Tun スタックモードです。TCP はシステムスタック(高性能)、UDP は gVisor スタック(高互換性)を使用し、総合的に最高のパフォーマンスを発揮します。
八、設定の検証と一般的なトラブルシューティング
設定が完了したら、以下の手順で動作を確認してください:
1. 構文チェック:Clash Meta の起動ログを確認し、ERROR レベルのログが出ていないか確認してください。特に YAML のインデントや DNS 設定の形式には注意が必要です。
2. DNS 解析テスト:ターミナルで curl -v --proxy http://127.0.0.1:7890 https://www.google.com を実行し、正常なレスポンスが返ってくるか確認してください。タイムアウトする場合は、DNS の fallback 設定を見直してください。
3. ルールのマッチング確認:Clash Meta の RESTful API(デフォルト http://127.0.0.1:9090)を利用して、リアルタイムの接続ログを確認できます。どの通信がどのルールにマッチしているかを把握するのに役立ちます。
4. ルールセットの更新失敗:RULE-SET が取得できない場合は、一時的にファイルをローカルに保存して type: file モードで読み込み、ネットワーク状況が改善してから type: http に戻すことを検討してください。
九、最適なグラフィカルクライアントを選択する
上述の設定内容は、YAML を手書きするには一定のハードルがあります。特にサブスクリプション管理や Tun モードの権限設定などは、少しのミスで接続できなくなる可能性があります。Clash Meta の全機能を活用しつつ、設定の手間を省きたい場合は、高品質なグラフィカルクライアントの使用をお勧めします。
当サイトの Clash クライアント は、Clash Meta カーネルをベースにしており、視覚的なサブスクリプション管理、ワンクリックでのルールセット更新、Tun モードの簡単な切り替えを提供しています。Windows、macOS、Android、iOS、Linux 全てのプラットフォームに対応しており、複雑な YAML 設定を簡単なクリック操作に置き換えることができます。より快適なプロキシ体験をお求めの方は、ぜひダウンロードページをご覧ください。