【2024年最新】Clash Meta のすべて:紹介・設定・メリット
はじめに
インターネットの利用が多様化し、プライバシー保護、セキュリティ強化、あるいは地理的な制約の回避といった目的のために、プロキシやVPNといった技術の重要性が増しています。数あるプロキシツールの中でも、近年特に注目を集めているのが「Clash」です。そして、そのClashをさらに進化させ、多くの最新技術や機能を取り込んだ派生版が「Clash Meta」です。
Clash Metaは、オリジナルのClashの強力なルールベースルーティング機能を基盤としながらも、より広範なプロトコルサポート、高度な設定オプション、そしてパフォーマンスの最適化を目指して開発が進められています。2024年現在、Clash Metaは多くのサードパーティ製GUIクライアントのコアとして採用されており、その影響力は増す一方です。
この記事では、このClash Metaについて、その基本的な紹介から、導入、詳細な設定方法、そして利用する上でのメリットまで、網羅的に解説します。Clash Metaが初めての方から、すでに利用しているもののさらに深く理解したいという方まで、すべての方にとって役立つ情報を提供することを目指します。約5000語というボリュームで、Clash Metaの「すべて」に迫ります。
さあ、Clash Metaの世界へ飛び込みましょう。
第1章: Clash Metaとは何か? (紹介)
1.1 Clashの誕生と基本的な機能
まず、Clash Metaの親である「Clash」について簡単に触れておきましょう。Clashは、Golangで書かれたクロスプラットフォームのルールベース型プロキシコアです。ネットワークトラフィックを、ユーザー定義のルールに基づいて異なるプロキシサーバーやポリシーグループに振り分ける機能を持っています。
Clashの登場以前は、Socks5やHTTPプロキシ、あるいはShadowsocks、VMessといった個別のプロトコルに対応したプロキシツールが主流でした。しかし、これらのツールは単一のプロキシサーバーを利用することが多く、特定のサイトはプロキシ経由、別のサイトは直通、といった柔軟なルーティング設定を行うのが難しいという課題がありました。また、複数のプロトコルを利用したい場合、複数のツールを使い分ける必要がありました。
Clashはこれらの課題に対し、以下の主要な機能を提供することで応えました。
- ルールベースルーティング: 宛先ドメイン、IPアドレス、地域(GeoIP)、プロセス名など、様々な条件に基づいてトラフィックを特定のプロキシまたは「DIRECT」(直通)に振り分けることができます。
- ポリシーグループ: 複数のプロキシサーバーを一つのグループにまとめ、自動選択(URLテストによる遅延評価)や手動選択、負荷分散などのポリシーを適用できます。
- 複数プロトコルサポート: Shadowsocks (SS), VMess, Trojan, Snellなど、当時主流だった複数のプロキシプロトコルをサポートしました。
- YAML設定: 人間が読み書きしやすいYAML形式で設定ファイルを記述します。
- HTTP/Socks5プロキシ: ローカルにHTTP/Socks5プロキシサーバーとして動作し、アプリケーションからの接続を受け付けます。
- TUNモード: システムレベルでネットワークインターフェースを作成し、アプリケーションのプロキシ設定に関わらず全てのトラフィックを捕捉してルーティングできます。
- Fake IP DNS: DNSリクエストに対して偽のIPアドレスを返し、その後の接続をClashが捕捉してルーティングする高度なDNS処理機能を持っています。
これらの機能により、Clashは非常に柔軟で強力なプロキシツールとして急速に普及しました。特に、複雑なネットワーク環境下で、特定のサービスはプロキシ経由、別のサービスは直通、といった細やかな制御が必要なユーザーにとって、Clashは不可欠なツールとなりました。
1.2 Clash Metaが開発された経緯
オリジナルのClashは非常に優れたツールでしたが、いくつかの点において限界が見られるようになりました。
- 新しいプロトコルへの対応の遅れ: インターネットの検閲技術は日々進化しており、それに対抗するためにVMessやTrojanに続く新しいプロトコル(例: Hysteria, Reality, TUIC, VLESS flow=xtls-rprx-vision)が登場しました。オリジナルのClashは、これらの比較的新しい、あるいはより洗練されたプロトコルへの対応が追いつかない状況が生まれました。
- 特定機能の実装: Fake IPモードにおけるUDP処理の改善や、より高度なルーティングオプション、パフォーマンスの最適化など、ユーザーからの要望や開発者自身のアイデアに基づく機能拡張の余地がありました。
- 開発体制: オリジナルのClashの開発は一部の主要開発者に依存しており、開発速度やメンテナンス体制に限界がありました。
このような背景から、オリジナルのClashのコードをフォークし、上記の課題を解決し、さらに機能強化を図る目的で開発されたのが「Clash Meta」です。Clash Metaは、Clash Core (Premium) のコードベースを基盤としており、その名の通り「メタ」(超える、上位の)Clashを目指しています。
Clash Metaは、GitHub上で有志のコミュニティによって開発が進められています。オリジナルのClash Coreが開発停止・非公開となった後も、Clash Metaは継続的に開発され、最新技術を取り込み続けています。そのため、2024年現在、Clashの最新機能やプロトコルを利用したい場合、Clash Metaが事実上の標準コアとなっています。
1.3 Clash Metaの主要な特徴
Clash Metaは、オリジナルのClash Core (Premium) をベースにしつつ、以下のような特徴を持っています。
-
広範なプロトコルサポート: これがClash Metaの最大の特徴の一つです。
- VLESS (特にRealityとflow=xtls-rprx-vision): VLESSはVMessの後継プロトコルですが、特にRealityはTLSハンドシェイクを既存のWebサイトに偽装することで検閲耐性を高める技術です。また、
flow=xtls-rprx-vision
はXTLSハンドシェイクとデータ転送を統合し、高いパフォーマンスとセキュリティを実現します。Clash Metaはこれらの最先端技術にいち早く対応しています。 - Hysteria / Hysteria2: TCPではなくQUIC(UDP)を利用し、帯域幅の有効活用や低遅延を目指したプロトコルです。特にHysteria2はQUIC v2ベースで、より堅牢な検閲耐性を持っています。Clash Metaはこれらのプロトコルをサポートしています。
- TUIC: 同じくUDPベースで、輻輳制御に優れ、高いスループットと低遅延を目指したプロトコルです。Clash Metaで利用可能です。
- WireGuard: 近年注目されている軽量かつ高速なVPNプロトコルです。Clash MetaはプロキシとしてWireGuardプロトコルを扱うことができます。
- その他: SS, SSR, VMess, Trojan, Snell, HTTP, Socks5など、オリジナルのClashがサポートしていたプロトコルに加え、これらの新しいプロトコルに対応しています。
- VLESS (特にRealityとflow=xtls-rprx-vision): VLESSはVMessの後継プロトコルですが、特にRealityはTLSハンドシェイクを既存のWebサイトに偽装することで検閲耐性を高める技術です。また、
-
設定ファイルの拡張と改善:
- 新しいプロトコルに対応するための設定項目が追加されています。
- 一部の設定項目の記述方法がより柔軟になったり、新しいオプションが追加されたりしています。
routing
セクションの導入など、ルーティング設定の表現力が向上しています。
-
パフォーマンスと安定性の向上:
- Fake IPモードやUDP処理の最適化。
- メモリ使用量の削減や起動速度の向上。
- 全体的な安定性の向上。
-
追加機能:
- より詳細なログ出力オプション。
find-process-by-port
のようなデバッグ・診断に役立つ機能。- 高度なGEOIPデータベース(MaxMind GeoLite2など)のサポート。
-
活発なコミュニティ: GitHubリポジトリを中心に、開発者やユーザーが積極的に情報交換、バグ報告、機能提案を行っています。これにより、新しい技術への対応やバグ修正が迅速に行われる傾向があります。
これらの特徴により、Clash Metaは2024年現在、最も高機能かつ最新のプロトコルに対応したClash互換コアとしての地位を確立しています。多くのサードパーティ製GUIクライアント(例: Clash for Windowsの後継であるClash VergeやClash.NETなど)は、ユーザーに最新のプロトコルや機能を提供するために、内部コアとしてClash Metaを採用しています。
1.4 GUIクライアントとの関係
Clash Meta自体はコマンドラインツールであり、設定はYAMLファイルを直接編集して行います。しかし、多くのユーザーにとって、GUIクライアントを利用する方が設定や運用が容易です。
ClashのGUIクライアントは多数存在しますが、その多くはClash Metaを内部のプロキシコアとして利用しています。これは、GUIクライアントがユーザーフレンドリーなインターフェースを提供し、その裏側でClash Metaが実際のプロキシ処理やルーティングを行っている構造です。
有名なClash GUIクライアントとしては、以下のようなものがあります(2024年現在)。
- Clash Verge / Clash Verge Rev: Clash for Windowsの開発停止後、その後継として人気を集めているクライアントです。Clash Metaをデフォルトコアとして利用しており、Reality, Hysteria2などの最新プロトコルに対応しています。
- Clash.NET: Windows向けのクライアントで、こちらもClash Metaコアを利用しています。
- Clash for Android (CFA) / ClashT / Nekobox for Android: Android向けのクライアントで、Clash Metaコアを選択できるものや、Clash Metaベースのものがあります。
- Stash / Shadowrocket / Lidong / Surge: iOS向けのプロキシアプリの一部はClashルール形式に対応しているものがありますが、これらはClash Metaのコアを直接利用しているわけではなく、Clash互換の機能(ルールパージングやプロトコル対応)を独自に実装している場合が多いです。ただし、機能や設定形式の多くはClash/Clash Metaにインスパイアされています。
これらのGUIクライアントを利用することで、Clash Metaの設定ファイルを手動で編集することなく、GUI上でプロキシサーバーの追加、ポリシーグループの切り替え、ルールの確認・編集、接続ログの確認などを行うことができます。特に初心者にとっては、GUIクライアントからClash Metaの世界に入るのが最も現実的な方法でしょう。しかし、Clash Metaの真の力を引き出すためには、やはり設定ファイル(config.yaml)の構造と記述方法を理解することが不可欠です。次の章では、その設定方法について詳細に解説します。
第2章: Clash Metaの導入と設定 (設定)
Clash Metaの最も強力な部分は、その柔軟かつ詳細な設定にあります。設定はYAML形式の単一ファイル(通常 config.yaml
という名前)で行います。ここでは、Clash Metaの導入方法と、設定ファイルの主要なセクションについて詳しく解説します。
2.1 Clash Metaの導入
Clash Metaの実行ファイルは、GitHubのClash Meta CoreリポジトリのReleaseページからダウンロードするのが一般的です。様々なプラットフォーム(Windows, macOS, Linux, Android (termuxなど)) 向けのバイナリが提供されています。
- GitHub Releaseページへアクセス:
https://github.com/MetaCubeX/Clash.Meta/releases
- 最新または推奨されるリリースを選択: リリースページには様々なバージョンがあります。通常は最新の安定版(
Latest
またはPre-release
で安定性が高いとされているもの)を選びます。 - お使いのOSとアーキテクチャに合ったファイルをダウンロード:
- Windows:
clash.meta-windows-amd64.zip
(64bit Intel/AMD),clash.meta-windows-arm64.zip
(64bit ARM) など - macOS:
clash.meta-darwin-amd64.gz
(Intel Mac),clash.meta-darwin-arm64.gz
(Apple Silicon Mac) - Linux:
clash.meta-linux-amd64.tar.gz
,clash.meta-linux-arm64.tar.gz
など
- Windows:
- ダウンロードしたファイルを解凍: 解凍すると
clash.meta
(Linux/macOS) またはclash.meta.exe
(Windows) という実行ファイルが得られます。 - 実行ファイルと設定ファイルを同じディレクトリに配置: 後述する
config.yaml
ファイルを作成し、ダウンロードした実行ファイルと同じディレクトリに置きます。 - ターミナルまたはコマンドプロンプトから実行:
- Linux/macOS:
chmod +x ./clash.meta
(実行権限付与),./clash.meta
- Windows:
clash.meta.exe
- Linux/macOS:
GUIクライアントを使用する場合、クライアントがClash Metaコアを内蔵しているか、またはユーザーがコアファイルを指定・ダウンロードする仕組みを提供しています。この場合、ユーザーが直接Clash Metaの実行ファイルをダウンロードする必要はありません。GUIクライアントのマニュアルを参照してください。
2.2 設定ファイルの基本構造 (config.yaml
)
Clash Metaの設定ファイルはYAML形式で記述されます。基本的な構造はいくつかのトップレベルセクションからなります。
“`yaml
基本設定
port: 7890
socks-port: 7891
redir-port: 7892 # Linux/macOS only
mixed-port: 7893 # HTTP and Socks5 on the same port
allow-lan: true
mode: rule # global, rule, direct
log-level: info # debug, info, warning, error, silent
external-controller: 127.0.0.1:9090
secret: your-secret-key # for external controller security
tun:
enable: false # または true
stack: system # または gvisor
dns-hijack:
– “192.168.0.1/24”
– “114.114.114.114”
auto-route: true
auto-detect-interface: true
プロキシ設定
proxies:
– name: “ProxyA”
type: ss
server: server_a.com
port: 443
password: “password_a”
cipher: aes-265-gcm
- name: “ProxyB”
type: vmess
server: server_b.com
port: 80
uuid: your-uuid-b
alterId: 0
cipher: auto
network: ws
ws-path: /path
ws-headers:
Host: server_b.com
# … その他のプロキシ設定
プロキシグループ設定
proxy-groups:
– name: “Proxy Group 1”
type: select
proxies:
– “ProxyA”
– “ProxyB”
– “DIRECT” # 直通
– “REJECT” # 拒否
- name: “Auto Select Proxy”
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300 # 秒
proxies:- “Proxy Group 1” # グループをネストできる
- “DIRECT”
# … その他のプロキシグループ設定
ルーティングルール設定
rules:
– IP-CIDR,192.168.0.0/16,DIRECT
– DOMAIN-SUFFIX,google.com,Proxy Group 1
– GEOIP,CN,DIRECT # 中国国内IPは直通
– MATCH,Auto Select Proxy # デフォルトルール (すべてのトラフィックをAuto Select Proxyへ)
DNS設定
dns:
enable: true
listen: 0.0.0.0:53 # リッスンアドレスとポート
prefer-h3: true # DNS over QUIC (DoQ) を優先
fake-ip-range: 198.18.0.1/16 # Fake IP 用のIPレンジ
fake-ip-filter:
– “.stun..”
– “.nsserv.xyz” # 例外リスト
enhanced-mode: fake-ip # redir-host, tun
nameserver: # ローカルDNS (優先)
– “114.114.114.114”
– “223.5.5.5”
– “https://doh.pub/dns-query” # DoH
– “tcp://8.8.8.8” # DoT (TCP)
fallback: # ローカルDNSが失敗した場合 (検閲回避用など)
– “https://cloudflare-dns.com/dns-query”
– “quic://dns.google” # DoQ (H3)
fallback-filter:
geoip: true # 中国国内IPはfallbackしない
geoip-code: CN
domain:
– “+.google.com”
– “+.youtube.com” # 特定ドメインはfallback
“`
このファイルは、Clash Metaの動作全体を定義します。主要なセクションについて、さらに詳しく見ていきましょう。
2.3 proxies
(プロキシ設定)
ここでは、利用する個々のプロキシサーバーの詳細を設定します。各項目はリスト形式で記述し、name
, type
は必須です。type
に応じて、その後の設定項目が変わります。
主要なプロトコルとその設定例:
-
Shadowsocks (SS):
“`yaml- name: “My-SS-Proxy”
type: ss
server: ss.example.com
port: 443
password: “mypassword”
cipher: aes-265-gcm
udp: true # UDPリレーを有効にするか
plugin: obfs # または v2ray-plugin, ss-plugin など
plugin-opts:
mode: tls # obfs/v2ray-plugin の設定
host: example.com
“` server
,port
,password
,cipher
: サーバー情報。udp
: UDPトラフィックのリレーが必要な場合にtrue
に設定。plugin
,plugin-opts
: Obfuscation (難読化) プラグインを使用する場合に設定。v2ray-plugin
やsimple-obfs
などがあります。
- name: “My-SS-Proxy”
-
VMess:
“`yaml- name: “My-VMess-WS-TLS”
type: vmess
server: vmess.example.com
port: 443
uuid: your-uuid
alterId: 0 # V2Ray互換の冗長な接続数 (通常は0で良い)
cipher: auto # 暗号化方式 (auto推奨)
network: ws # ネットワークタイプ (tcp, ws, h2, grpc)
tls: true # TLSを有効にするか
servername: vmess.example.com # SNI
skip-cert-verify: false # 証明書検証をスキップするか (非推奨)
ws-path: /my-vmess-path # WebSocketパス
ws-headers:
Host: vmess.example.com # WebSocketヘッダーのHost
udp: true
“` uuid
: ユーザー認証のためのUUID。network
: ネットワーク層のプロトコル。ws
(WebSocket) とgrpc
が検閲耐性の観点からよく使われます。tls
: TLSを有効にする場合にtrue
に設定。servername
: TLSのSNI (Server Name Indication)。通常はサーバーのドメイン名。ws-path
,ws-headers
: WebSocketを使用する場合の設定。grpc-service-name
: gRPCを使用する場合の設定。
- name: “My-VMess-WS-TLS”
-
VLESS (Clash Metaの主要な強みの一つ):
“`yaml-
name: “My-VLESS-Reality”
type: vless
server: vless.example.com
port: 443
uuid: your-uuid
network: tcp # Realityは通常TCP
tls: true # Realityは常にTLS
servername: vless.example.com # SNI (通常はサーバーのドメイン名)
skip-cert-verify: false
reality-opts: # Reality固有の設定
public-key: “your-public-key” # 必須
short-id: “your-short-id” # オプション
server-names: # Reality偽装先のドメインリスト
– “www.microsoft.com”
– “github.com”
udp: true -
name: “My-VLESS-WS-TLS” # VMessと同様のWS+TLS設定も可能
type: vless
server: vless.example.com
port: 443
uuid: your-uuid
network: ws
tls: true
servername: vless.example.com
ws-path: /my-vless-path
ws-headers:
Host: vless.example.com
udp: true -
name: “My-VLESS-XTLS-Vision” # VLESS flow=xtls-rprx-vision
type: vless
server: vless.example.com
port: 443
uuid: your-uuid
network: tcp
tls: true
servername: vless.example.com
skip-cert-verify: false
flow: xtls-rprx-vision # XTLS Vision フロー
udp: true
“` uuid
: ユーザー認証のためのUUID。network
: VLESSはTCP, WS, gRPCなどをサポート。tls
: TLSを有効にする場合にtrue
に設定。reality-opts
: Realityを使用する場合の設定。public-key
はサーバー側と一致させる必要があります。server-names
は偽装先のドメインを指定します。flow
: XTLS Visionなどの特殊なフローを使用する場合に設定。xtls-rprx-vision
など。
-
-
Trojan:
“`yaml- name: “My-Trojan-TLS”
type: trojan
server: trojan.example.com
port: 443
password: “mypassword”
network: tcp # Trojanは通常TCP
tls: true # Trojanは常にTLS
servername: trojan.example.com # SNI
skip-cert-verify: false
udp: true
“` password
: パスワード認証。- 設定項目はTLS部分はVMess/VLESSと似ています。
- name: “My-Trojan-TLS”
-
ShadowsocksR (SSR):
“`yaml- name: “My-SSR-Proxy”
type: ssr
server: ssr.example.com
port: 443
password: “mypassword”
cipher: aes-256-cfb
protocol: origin # SSR プロトコル
protocol-param: “”
obfs: plain # SSR 難読化 (obfs)
obfs-param: “”
udp: true
“` protocol
,protocol-param
,obfs
,obfs-param
: SSR固有の設定項目。
- name: “My-SSR-Proxy”
-
Hysteria / Hysteria2 (Clash Metaの主要な強みの一つ):
“`yaml- name: “My-Hysteria2-Proxy”
type: hysteria2
server: hysteria2.example.com
port: 443
password: “mypassword” # または auth: “your-auth-string”
obfs: “salamander” # 難読化 (salamanderなど)
obfs-password: “obfs-password” # 難読化パスワード
tls: true
servername: hysteria2.example.com
skip-cert-verify: false
udp: true # HysteriaはUDPベースだが、UDPリレー設定は必要
# Hysteria v1 の場合は以下の設定項目
# type: hysteria
# up: 5 mbps # 上り帯域制限
# down: 100 mbps # 下り帯域制限
# auth: “your-auth-string” # v1の認証方式
# alpn: # ALPNリスト
# – “h3”
“` password
/auth
: 認証情報。obfs
,obfs-password
: 難読化の設定。up
,down
: Hysteria v1 の上り/下り帯域制限。alpn
: Hysteria v1 のALPN。- Hysteria/Hysteria2はUDPベースですが、Clash Metaの設定で
udp: true
を指定することで、このプロキシ経由でのUDPリレーが可能になります。
- name: “My-Hysteria2-Proxy”
-
TUIC (Clash Metaの主要な強みの一つ):
“`yaml- name: “My-TUIC-Proxy”
type: tuic
server: tuic.example.com
port: 443
password: “mypassword”
uuid: your-uuid # パスワードまたはUUIDで認証
congestion_control: bbr # 輻輳制御アルゴリズム (bbr, cubic, newreno)
udp_relay_mode: native # UDPリレーモード (native, simulate)
disable_udp_relay: false # UDPリレーを無効にするか
tls: true
servername: tuic.example.com
skip_cert_verify: false
# alpn:
# – “h3”
“` password
/uuid
: 認証情報。congestion_control
: 利用する輻輳制御アルゴリズム。udp_relay_mode
: UDPリレーのモード。disable_udp_relay
: UDPリレーを完全に無効にするか。
- name: “My-TUIC-Proxy”
-
WireGuard:
“`yaml- name: “My-WireGuard”
type: wireguard
endpoint: wg.example.com:51820
public-key: “ServerPublicKey=”
private-key: “ClientPrivateKey=”
address:- “10.0.0.2/32” # クライアント側のアドレス
- “fd00::1002/128” # IPv6アドレスも設定可能
dns: - “8.8.8.8” # WireGuardインターフェースに設定されるDNS
mtu: 1420
keepalive: 15
“`
endpoint
: WireGuardサーバーのアドレスとポート。public-key
: WireGuardサーバーの公開鍵。private-key
: WireGuardクライアント(Clash Meta側)の秘密鍵。address
: WireGuardインターフェースに割り当てられるIPアドレス。CIDR形式で指定。dns
: WireGuardインターフェースが使用するDNSサーバー。
- name: “My-WireGuard”
これらの他にも、HTTP, HTTPS, Socks5, Snellなどのプロトコルがサポートされています。各プロトコルの詳細な設定オプションは、Clash Metaの公式Wikiや設定例を参照するのが最も正確です。
2.4 proxy-groups
(プロキシグループ設定)
proxies
セクションで定義した個々のプロキシをまとめるのが proxy-groups
セクションです。これにより、複数のプロキシの中から自動または手動で最適なものを選択したり、特定のポリシーを適用したりできます。
proxy-groups
もリスト形式で記述し、各グループは name
と type
を持ちます。type
によってその挙動が変わります。
主要なグループタイプ:
-
select
: 最も一般的なタイプで、リストアップされたプロキシまたは他のグループの中から、ユーザーが手動で一つを選択します。GUIクライアントでドロップダウンリストとして表示されることが多いです。
“`yaml- name: “Manual Select”
type: select
proxies:- “ProxyA” # proxies セクションで定義した名前
- “ProxyB”
- “Auto Select Proxy” # 別のグループをネストできる
- “DIRECT”
- “REJECT”
“`
- name: “Manual Select”
-
url-test
: リストアップされたプロキシに対して定期的にURLテストを行い、最も遅延が少ない(または到達可能な)プロキシを自動的に選択します。安定した接続を維持したい場合に便利です。
“`yaml- name: “Auto Select Proxy”
type: url-test
url: http://www.gstatic.com/generate_204 # テスト用URL
interval: 300 # テスト間隔(秒)
tolerance: 50 # 遅延の許容範囲(ミリ秒)。ベストの遅延 + tolerance より大きいプロキシは選択されない。
interrupt-exist-connections: true # 切り替え時に既存接続を切断するか
lazy: true # 遅延テストを接続要求時に行うか (trueの場合、起動時に全テストしない)
proxies:- “ProxyA”
- “ProxyB”
- “ProxyC”
“`
- name: “Auto Select Proxy”
-
fallback
: リストアップされたプロキシを順番にテストし、最初の利用可能なプロキシを選択します。url-test
と似ていますが、遅延ではなく単に到達可能かどうかをテストします。フェイルオーバーのシナリオに適しています。
“`yaml- name: “Fallback Proxy”
type: fallback
url: http://www.gstatic.com/generate_204
interval: 300
proxies:- “ProxyA”
- “ProxyB”
- “DIRECT” # 全て失敗したら直通
“`
- name: “Fallback Proxy”
-
load-balance
: リストアップされたプロキシ間でトラフィックを分散します。均等に分散するラウンドロビンや、遅延に基づいて分散するタイプがあります。複数のプロキシで負荷分散したい場合に利用できます。
“`yaml- name: “Load Balance”
type: load-balance
strategy: consistent-hash # または round-robin
proxies:- “ProxyA”
- “ProxyB”
- “ProxyC”
“`
- name: “Load Balance”
-
relay
: 指定された順番でプロキシをチェーン接続します。例えば、ProxyA
->ProxyB
のようにトラフィックを経由させます。
“`yaml- name: “Chained Proxy”
type: relay
proxies:- “ProxyA” # 最初に通過
- “ProxyB” # 次に通過
“`
- name: “Chained Proxy”
-
try-all
: 接続要求時にリストアップされたプロキシを順番に試行し、最初に成功したプロキシを使用します。fallback
に似ていますが、接続ごとに行います。
“`yaml- name: “Try All”
type: try-all
interval: 300 # テスト間隔 (試行に失敗したプロキシを再試行する間隔?)
url: http://www.gstatic.com/generate_204 # 遅延測定に使用
proxies:- “ProxyA”
- “ProxyB”
“`
- name: “Try All”
-
reject
: トラフィックを拒否します。広告ブロックなどに利用されます。
“`yaml- name: “REJECT”
type: reject
“`
- name: “REJECT”
-
direct
: トラフィックをプロキシせずに直通させます。
“`yaml- name: “DIRECT”
type: direct
“`
- name: “DIRECT”
これらのグループを組み合わせることで、非常に複雑なルーティングポリシーを構築できます。例えば、「海外の特定のサービスには最速のプロキシ(url-test
グループ)を使うが、国内のサービスには直通(DIRECT
)させ、その他の海外サイトには手動で選択可能なグループ(select
グループ)を使う」といった設定が可能です。
2.5 rules
(ルーティング設定)
rules
セクションは、どのトラフィックをどのプロキシ(またはプロキシグループ、DIRECT
, REJECT
)に振り分けるかを定義する最も重要な部分です。ルールはリスト形式で記述され、上から順に評価されます。最初にマッチしたルールが適用され、それ以降のルールは無視されます。したがって、より具体的なルールを上に、より一般的なルールを下に配置する必要があります。
ルールの基本形式: RULE-TYPE,VALUE,POLICY[,Extra]
RULE-TYPE
: マッチングの条件タイプ。VALUE
: マッチングの条件値。POLICY
: マッチした場合に適用するポリシー名(proxies
またはproxy-groups
セクションで定義した名前、あるいは組み込みのDIRECT
,REJECT
)。Extra
: オプションのパラメータ(例:no-resolve
)。
主要なRULE-TYPE:
-
DOMAIN-SUFFIX,VALUE,POLICY
:VALUE
で終わるドメイン名にマッチします。サブドメインにもマッチするため、非常に便利です。
“`yaml- DOMAIN-SUFFIX,google.com,Proxy Group 1 # google.com, mail.google.com などにマッチ
- DOMAIN-SUFFIX,cn,DIRECT # .cn で終わるドメインにマッチ
“`
-
DOMAIN,VALUE,POLICY
:VALUE
と完全に一致するドメイン名にのみマッチします。
“`yaml- DOMAIN,www.google.com,Proxy Group 1 # www.google.com のみにマッチ
“`
- DOMAIN,www.google.com,Proxy Group 1 # www.google.com のみにマッチ
-
DOMAIN-KEYWORD,VALUE,POLICY
: ドメイン名にVALUE
が含まれていればマッチします。
“`yaml- DOMAIN-KEYWORD,twitter,Proxy Group 1 # twitter.com, mobile.twitter.com などにマッチ
“`
- DOMAIN-KEYWORD,twitter,Proxy Group 1 # twitter.com, mobile.twitter.com などにマッチ
-
GEOIP,VALUE,POLICY[,no-resolve]
: 宛先IPアドレスの地理情報(国コード、ISO 3166-1 Alpha 2形式)がVALUE
と一致すればマッチします。Clash MetaはGeoIPデータベース(GeoLite2など)が必要です。CN
(中国),US
(アメリカ) などを使用します。no-resolve
を付けると、ドメイン名解決を行わずに直接IPアドレスで判断します。
“`yaml- GEOIP,CN,DIRECT,no-resolve # 中国国内IPは直通
- GEOIP,US,Proxy Group 1 # アメリカ国内IPはProxy Group 1
“`
-
IP-CIDR,VALUE,POLICY[,no-resolve]
: 宛先IPアドレスがVALUE
で指定されたCIDRブロックに含まれていればマッチします。no-resolve
はGEOIP
と同様です。
“`yaml- IP-CIDR,192.168.0.0/16,DIRECT # ローカルネットワークは直通
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,1.2.3.4/32,ProxyA # 特定のIPはProxyA
“`
-
SRC-IP-CIDR,VALUE,POLICY
: 接続元のIPアドレスがVALUE
で指定されたCIDRブロックに含まれていればマッチします。特定のローカルデバイスからのトラフィックを区別したい場合に利用できます。
“`yaml- SRC-IP-CIDR,192.168.1.100/32,ProxyB # 特定のPCからの接続はProxyB
“`
- SRC-IP-CIDR,192.168.1.100/32,ProxyB # 特定のPCからの接続はProxyB
-
PROCESS-NAME,VALUE,POLICY
: 接続を開始したプロセス(アプリケーション)の名前がVALUE
と一致すればマッチします。Windows/macOS/LinuxのTUNモードで利用可能です。
“`yaml- PROCESS-NAME,firefox.exe,Proxy Group 1 # Firefoxからの接続はProxy Group 1
- PROCESS-NAME,thunder.exe,DIRECT # Thunderからの接続は直通
“`
-
MATCH,POLICY
: これまでのどのルールにもマッチしなかった場合の最終的なルールです。常にルールの最後に配置する必要があります。
“`yaml- MATCH,Auto Select Proxy # デフォルトではAuto Select Proxyを使用
“`
- MATCH,Auto Select Proxy # デフォルトではAuto Select Proxyを使用
外部ルールセットの利用:
設定ファイルが長大になるのを避けるため、Clash Metaでは外部のルールセットファイルをインポートする機能があります。これは特に、広告ブロックリストや、特定の国/地域のIPアドレスリストなどを利用する際に便利です。
“`yaml
rules:
– RULE-SET,applications,DIRECT # アプリケーションルールセット
– RULE-SET,private,DIRECT # プライベートIPなど
– RULE-SET,cn,DIRECT # 中国国内IP/ドメインルールセット
– RULE-SET,apple,DIRECT # Appleサービスは直通 (必要に応じて)
– RULE-SET,google,Proxy Group 1 # GoogleサービスはProxy (必要に応じて)
– GEOIP,CN,DIRECT,no-resolve
– MATCH,Auto Select Proxy
rule-providers: # 外部ルールセットの定義
applications:
type: http # or file
behavior: ipcidr # or domain, classical, transcriptional
url: “http://example.com/rules/applications.yaml” # または file: rules/applications.yaml
interval: 86400 # 更新間隔 (秒)
proxies: [“ProxyA”, “ProxyB”] # RULE-SET 内部で利用可能なプロキシ
resource:
type: file
path: ./rules/applications.yaml # ローカルファイルの場合
cn:
type: http
behavior: classical
url: “http://example.com/rules/cn.yaml”
interval: 86400
resource:
type: file
path: ./rules/cn.yaml
``
rule-providersセクションで外部ファイルのリソースを定義し、
rulesセクションで
RULE-SET,PROVIDER-NAME,POLICYの形式で参照します。
behaviorはルールセットのタイプを示します (
ipcidr,
domain,
classical(DOMAIN/IP-CIDR/GEOIP混在),
transcriptional` (プロセス名など特殊ルール))。
2.6 dns
(DNS設定)
Clash MetaにおけるDNS設定は非常に重要です。適切な設定を行うことで、DNSリークを防ぎ、検閲を回避し、パフォーマンスを向上させることができます。
“`yaml
dns:
enable: true # DNS機能を有効にするか
listen: 0.0.0.0:53 # DNSサーバーとしてリッスンするアドレスとポート
ipv6: false # IPv6 DNSリクエストを処理するか
# fake-ip-range: 198.18.0.1/16 # Fake IP 用のIPレンジ (推奨)
# fake-ip-filter: # Fake IP を適用しないドメインリスト
# – “.stun..”
# – “.nsserv.xyz”
# – “music.163.com”
enhanced-mode: fake-ip # DNS強化モード (redir-host, fake-ip, tun)
# redir-host: DNS結果を書き換える (一部アプリで問題あり)
# fake-ip: Fake IP を使用 (推奨)
# tun: TUNモード時のみ有効なFake IP
pool-enabled: true # DNSキャッシュプールを有効にするか
pool-ttl: 60 # DNSキャッシュのTTL (秒)
nameserver: # 通常のDNSサーバー (優先的に使用)
– “114.114.114.114” # 標準DNS over UDP/TCP
– “223.5.5.5”
– “tcp://8.8.8.8” # DNS over TCP (DoT)
– “tls://8.8.8.8:853” # DNS over TLS (DoT)
– “https://doh.pub/dns-query” # DNS over HTTPS (DoH)
– “quic://dns.google” # DNS over QUIC (DoQ) – Clash Metaの強み
fallback: # nameserver が失敗した場合や、特定ドメインに使用するDNS (検閲回避など)
– “https://cloudflare-dns.com/dns-query”
– “tls://1.1.1.1:853”
– “quic://dns.adguard.com:784” # DoQ
– “1.1.1.1” # 標準UDP/TCP DNS
fallback-filter: # fallback DNS を使用する条件
geoip: true # geoip-code に指定された国からのDNSクエリに対してfallbackしない
geoip-code: CN # 中国国内IPアドレスからのクエリ
domain: # 指定ドメインまたはサフィックスに対して fallback を使用
– “+.google.com” # サブドメインを含む
– “youtube.com”
– “twitter.com”
domain-keyword:
– “facebook”
domain-suffix:
– “github.com”
proxy-mode: rule # or direct. DNSクエリ自体のルーティングモード
# rule: ルールに基づいてDNSクエリもルーティング
# direct: DNSクエリは常に直通
# specific-attribute: # ドメインごとの詳細設定 (上級者向け)
# example.com:
# nameserver:
# – 1.2.3.4
# fallback:
# – 5.6.7.8
# proxy-mode: direct
“`
主要な設定項目:
enable
,listen
: DNSサーバー機能の有効化とリッスンアドレス/ポート。通常0.0.0.0:53
に設定し、OSやルーターのDNS設定をこのアドレスに向けることで、システム全体のDNSをClash Metaに任せることができます。fake-ip-range
,fake-ip-filter
: Fake IPモードで使用する設定。Clash Metaは、DNSリクエストに対して実際のサイトのIPではなく、fake-ip-range
で指定した範囲内の偽のIPアドレスを返します。その後、この偽IPへの接続が発生した場合、Clash Metaはその接続を捕捉し、本来のドメイン名に基づいてルーティングルールを適用します。これにより、DNSリクエスト自体がプロキシされるかどうかにかかわらず、すべての接続要求をルーティングルールで制御できるようになります。fake-ip-filter
はFake IPを適用しないドメインのリストです。enhanced-mode
: DNS処理の強化モード。fake-ip
: Fake IPモードを有効化します。最も推奨されるモードです。redir-host
: DNS結果を書き換えますが、Fake IPより互換性が低い場合があります。tun
: TUNモード時のみFake IPを使用します。
nameserver
: 優先して使用するDNSサーバーのリスト。標準的なUDP/TCP DNSに加え、DoT (DNS over TLS), DoH (DNS over HTTPS), DoQ (DNS over QUIC) を指定できます。Clash Metaは特にDoQをサポートしており、これはHysteriaのようなQUICベースのプロトコルと相性が良い場合があります。fallback
:nameserver
が応答しない、あるいは特定の条件(fallback-filter
)に合致する場合に使用するDNSサーバーのリスト。検閲されたドメイン名に対する正しいIPアドレスを取得するために、検閲されていないDNSサーバー(例: Cloudflare, Google, AdGuard)を指定することが多いです。fallback-filter
:fallback
DNSを使用する条件を定義します。特定の国(geoip-code
)からのクエリに対してはfallbackしないように設定することで、国内サイトへのアクセス速度を維持しつつ、海外サイトや検閲対象サイトへのアクセス時にはfallback DNSを利用するといった制御が可能です。domain
,domain-keyword
,domain-suffix
で指定したドメインに対してもfallbackを使用させることができます。proxy-mode
: DNSクエリ自体のルーティング方法。rule
に設定すると、DNSクエリも通常のトラフィックと同様にrules
セクションに基づいてルーティングされます(例: 中国国内のDNSサーバーへのクエリはDIRECT、海外のDoHサーバーへのクエリはProxy)。direct
に設定すると、DNSクエリは常に直通になります。通常はrule
を推奨します。
2.7 tun
(TUNモード設定)
TUNモードは、システムレベルで仮想ネットワークインターフェースを作成し、すべての(または設定された)ネットワークトラフィックをClash Metaが捕捉して処理するモードです。アプリケーションがプロキシをサポートしていない場合でも、TUNモードを使えばトラフィックをClash Meta経由にできます。
yaml
tun:
enable: true # TUNモードを有効にするか
stack: system # TUNインターフェースのスタック実装 (system または gvisor)
# system: OSネイティブ (Windows, macOS, Linux)
# gvisor: Googleのユーザー空間TCP/IPスタック (クロスプラットフォーム、より安定する場合があるがパフォーマンスは低いかも)
dns-hijack: # 指定したIPへのDNSクエリをClash MetaのDNSサーバーにリダイレクト
- "192.168.0.1/24" # 例: LAN内の全てのDNSクエリをリダイレクト
- "114.114.114.114"
- "8.8.8.8"
auto-route: true # TUNインターフェースをデフォルトルートにするか (通常 true)
auto-detect-interface: true # TUNモードが有効な場合に、適切なアウトバウンドインターフェースを自動検出するか
transparent: true # Linuxのみ: 透明プロキシとして動作するか (iptables設定が必要)
# Other options...
enable
:true
に設定するとTUNモードが有効になります。ただし、TUNモードを有効にするには管理者権限が必要です。stack
: TUNインターフェースの実装を選択します。多くの場合system
で問題ありませんが、環境によってはgvisor
が安定する場合があります。dns-hijack
: システムのDNS設定をClash Metaにリダイレクトするための設定です。これにより、アプリケーションがClash MetaのDNSポート(通常53)以外にDNSクエリを送信しても、Clash Metaが捕捉して処理できます。auto-route
:true
にすると、TUNインターフェースがシステムのデフォルトルートとして設定され、全てのインターネットトラフィックがTUNインターフェースを通るようになります。transparent
: Linuxでiptablesと組み合わせて透明プロキシとして動作させるための設定です。
TUNモードは非常に強力ですが、一部のアプリケーションやネットワーク環境で問題が発生する可能性もあります。問題が発生する場合は、まずTUNモードを無効にして確認してみてください。
2.8 その他の重要な設定項目
mode
: Clash Meta全体のルーティングモードを設定します。rule
:rules
セクションに基づいてルーティングを行います(デフォルトかつ推奨)。global
: 全てのトラフィックを指定したプロキシ(通常、proxy-groups
のselect
グループを MATCH ルールで指定)を経由させます。direct
: 全てのトラフィックを直通させます。
log-level
: ログ出力のレベルを設定します。debug
,info
(デフォルト),warning
,error
,silent
があります。問題発生時はdebug
にすると詳細なログが得られます。external-controller
: Clash Metaを外部から操作・監視するためのAPIを有効にします。GUIクライアントは通常このAPIを利用してClash Metaを制御します。127.0.0.1:9090
のようにアドレスとポートを指定します。secret
:external-controller
にアクセスする際の認証用シークレットキーです。セキュリティのため設定を推奨します。geodata
: GeoIPデータベースのパスを指定します。Clash MetaはGeoLite2などの互換データベースを利用できます。GEOIPルールを使用する場合に必要です。
yaml
geodata: ./GeoLite2-Country.mmdb # または ./Country.mmdb
2.9 GUIクライアントを使った設定
上述した設定は全てYAMLファイルを直接編集する方法です。Clash Metaコアを使用しているGUIクライアントを利用する場合、多くの場合、GUI上でこれらの設定項目を操作できます。
- プロファイル管理: GUIクライアントは通常、複数の設定ファイル(プロファイル)を管理し、簡単に切り替えられます。
- サーバー/グループ設定: GUI上でプロキシサーバー情報を入力したり、プロキシグループのメンバーを編集したりできます。
- ルール設定: GUI上でルールを追加、編集、削除したり、外部ルールセットをインポートしたりできます。
- システム設定:
port
,allow-lan
,mode
,log-level
,external-controller
,tun
などの基本的な設定項目をGUI上で変更できます。 - リアルタイム監視: 接続ログ、トラフィック使用量、プロキシの遅延テスト結果などをGUI上で確認できます。
YAMLファイルを理解することはClash Metaの高度なカスタマイズに不可欠ですが、日常的な利用や簡単な変更にはGUIクライアントが非常に便利です。GUIクライアントを利用する際も、裏側でClash MetaのYAML設定がどのように変換されているかを意識すると理解が深まります。
第3章: Clash Metaのメリット (メリット)
Clash Metaは、オリジナルのClashの強力な機能を継承しつつ、さらに多くの改良が加えられています。その利用によって得られる主要なメリットを詳しく見ていきましょう。
3.1 広範かつ最新のプロトコルサポート
これはClash Metaの最も際立ったメリットです。オリジナルのClashがサポートするShadowsocks, VMess, Trojanなどに加え、Clash Metaは以下の最新プロトコルにいち早く対応しています。
- Reality: VLESSプロトコルの一部として、既存のWebサイト(例: microsoft.com, github.com)にTLSハンドシェイクを偽装することで、ネットワーク検閲を回避します。トラフィックが正規のサイトへのアクセスに見えるため、プロキシトラフィックであることが検出されにくいという強力な特性を持ちます。
- VLESS flow=xtls-rprx-vision: VLESSとXTLS技術を組み合わせ、TLSハンドシェイクとデータ転送を統合することで、プロトコルの検出を防ぎつつ、高いパフォーマンスを実現します。特に、CPU負荷を軽減しながら高速な暗号化通信が可能です。
- Hysteria / Hysteria2: QUIC(UDP)ベースのプロトコルであり、TCPよりも検閲耐性が高く、パケットロスが多い環境や高遅延環境でも比較的安定した通信が可能です。特にHysteria2は最新のQUICv2を利用しており、より堅牢です。動画ストリーミングやゲームなど、低遅延・高帯域幅を求める用途に適しています。
- TUIC: Hysteriaと同様にUDPベースですが、独自の輻輳制御アルゴリズムを持ち、高いスループットと効率的な帯域幅利用を目指しています。
- WireGuard: 軽量で高速なVPNプロトコルですが、Clash Metaはこれをプロキシとして扱うことで、WireGuardサーバーへの接続をClash Metaのルールベースルーティングに乗せることができます。
これらの新しいプロトコルは、TCPベースの伝統的なプロトコル(SS, VMess, Trojanなど)よりも検閲耐性が高かったり、特定のネットワーク条件下で優れたパフォーマンスを発揮したりする傾向があります。Clash Metaを利用することで、ユーザーはこれらの最先端技術の恩恵を受けることができます。
3.2 柔軟で高度なルーティング機能
Clash Metaは、オリジナルのClashから受け継いだ強力なルールベースルーティング機能をさらに洗練させています。
- きめ細かいトラフィック制御:
DOMAIN-SUFFIX
,IP-CIDR
,GEOIP
,PROCESS-NAME
など、豊富なルールタイプを組み合わせて、アプリケーション、宛先ドメイン/IP、地理的位置などに基づいた非常に細かいトラフィック制御が可能です。例えば、「特定のゲームだけは低遅延なHysteriaプロキシを使う」「中国国内のIPへのアクセスは直通、海外の金融サイトへのアクセスは特定の高セキュリティプロキシを使う」「広告ドメインは全てREJECTする」といった複雑な設定が実現できます。 - 強力なポリシーグループ:
select
,url-test
,fallback
などのポリシーグループを活用することで、プロキシの自動選択や手動切り替え、フェイルオーバー設定が容易に行えます。特にurl-test
による自動遅延測定機能は、複数のプロキシサーバーを利用する場合に常に最適なサーバーを選択するのに役立ちます。ポリシーグループはネスト(グループの中に別のグループを含めること)できるため、より複雑な選択ロジックを構築できます。 - 外部ルールセットの利用: 外部のYAMLファイルやHTTPからルールセットをインポートする機能により、大規模な広告ブロックリストや特定の国・地域のIPリストなどを容易に利用・管理できます。これにより、設定ファイルが煩雑になるのを防ぎ、メンテナンス性を向上させることができます。
3.3 高性能かつプライバシーに配慮したDNS処理
Clash MetaのDNS機能は、単にドメイン名をIPアドレスに解決するだけでなく、プライバシー保護、検閲回避、パフォーマンス向上に貢献します。
- Fake IPモード: DNSリクエストの結果を偽のIPアドレスに置き換えることで、Clash MetaがすべてのTCP/UDP接続を捕捉し、本来のドメイン名に基づいてルーティングできるようになります。これにより、DNSクエリがプロキシされるかどうかにかかわらず、すべてのトラフィックにルールが適用されることが保証され、DNSリークのリスクを最小限に抑えることができます。
- 多様なDNSプロトコルサポート: 標準的なUDP/TCP DNSに加え、DoT, DoH, DoQといった暗号化されたDNSプロトコルをサポートしています。これらのプロトコルを使用することで、DNSクエリの内容がISPや第三者によって覗き見されるのを防ぎ、プライバシーを保護できます。特にClash MetaはDoQ(DNS over QUIC)に対応しており、これは最新かつ高性能なDNSプロトコルです。
- Fallback DNSとフィルタリング: 主要なDNSサーバー(nameserver)が応答しない場合や、特定のドメインに対してのみ、別のDNSサーバー(fallback)を使用するように設定できます。これにより、通常のインターネット利用は低遅延なローカルDNSを使いつつ、検閲された可能性のあるドメイン名については検閲されていない海外のDNSサーバーを利用して正しいIPアドレスを取得するといったことが可能です。
fallback-filter
を使うことで、fallbackの適用条件を細かく制御できます。
3.4 クロスプラットフォーム対応
Clash Metaコア自体はGolangで記述されており、Windows, macOS, Linux, Androidなど、主要なオペレーティングシステムでネイティブに実行可能です。これにより、デスクトップ、ノートPC、サーバー、さらには一部のモバイルデバイス(Termuxなど)でも利用できます。
さらに、Clash Metaをコアとして利用する多くのサードパーティ製GUIクライアントが存在するため、ユーザーは好みのプラットフォームで、使い慣れたインターフェースを通じてClash Metaの高機能を利用できます。
3.5 高いカスタマイズ性と透明性
Clash Metaの設定は、YAML形式の単一ファイルによって行われます。この形式は人間が読み書きしやすく、エディタを使って簡単に編集できます。すべての設定がファイルに記述されているため、Clash Metaの挙動が非常に透明性が高く、ユーザーは自分のネットワークトラフィックがどのように処理されるかを完全に把握・制御できます。
また、YAML設定ファイルはテキストベースなので、バージョン管理システム(Gitなど)での管理が容易です。複数のデバイス間で設定を共有したり、過去の設定に戻したりといったことも容易に行えます。
3.6 活発なコミュニティによる継続的な開発
オリジナルのClash Coreが開発停止したのとは対照的に、Clash MetaはMetaCubeXを中心に有志のコミュニティによって活発に開発が続けられています。新しいプロトコルへの対応やバグ修正、機能改善が比較的迅速に行われています。
GitHubのリポジトリや関連コミュニティ(Telegramグループなど)では、開発者とユーザーが積極的にコミュニケーションをとっており、問題解決や情報交換が行われています。これにより、最新のネットワーク技術や検閲回避手法に対応し続けることができるという大きなメリットがあります。
3.7 TUNモードによる包括的なプロキシ適用
TUNモードを有効にすることで、Clash MetaはOSのネットワークスタックの下層に介入し、ほぼすべてのアプリケーションのトラフィックを捕捉してルーティングルールを適用できます。これは、個々のアプリケーションがプロキシ設定をサポートしているかどうかに依存しないため、システム全体のトラフィックをまとめて管理したい場合に非常に有効です。特に、ゲームクライアントや特定のP2Pソフトウェアなど、プロキシ設定オプションがないアプリケーションでも、Clash Meta経由で通信させることが可能になります。
第4章: よくある質問 (FAQ)
Q1: ClashとClash Metaの違いは何ですか?
A: オリジナルのClashは開発が停止・非公開になりましたが、Clash MetaはそのClash Core (Premium) をベースに開発が続けられている派生版です。Clash Metaの主な違いは、Reality, Hysteria/Hysteria2, TUIC, VLESS flow (xtls-rprx-vision) など、より広範で最新のプロトコルに対応している点です。また、DNS設定の強化や一部設定項目の改善など、機能拡張や最適化も行われています。
Q2: どのGUIクライアントを使えばいいですか?
A: 2024年現在、Clash Metaをコアとして利用するGUIクライアントがいくつかあります。WindowsユーザーにはClash VergeまたはClash.NETが人気です。AndroidユーザーにはNekobox for AndroidやClash for Android (CFA) のClash Meta対応版などがあります。ご自身のOSや好みに合わせて、機能やインターフェースを確認して選ぶのが良いでしょう。多くの場合、Clash Verge Revが推奨されることが多いです。
Q3: 設定ファイル(config.yaml)はどこで入手できますか?
A: 設定ファイルは以下の方法で入手できます。
1. 自分で作成する: 本記事の解説を参考に、ゼロから自分のニーズに合わせて作成します。これが最も柔軟性が高い方法です。
2. プロバイダから提供される: 多くのプロキシサービスプロバイダは、Clash/Clash Meta用の設定ファイル(サブスクリプションリンク)を提供しています。GUIクライアントでは、これらのリンクから設定を簡単にインポートできます。
3. オンラインツールを利用する: 一部のオンラインツールでは、異なるプロキシ情報を組み合わせてClash/Clash Meta形式の設定ファイルを生成できます。
Q4: パフォーマンスが悪い場合、何を確認すればいいですか?
A: パフォーマンスの問題は様々な要因で発生します。
* プロキシサーバー自体: サーバーの負荷、帯域幅、サーバーとクライアント間のネットワーク状況などが影響します。プロバイダに問い合わせるか、他のサーバーを試してみてください。
* プロトコル: 使用しているプロトコルがネットワーク環境に適しているか確認してください。Hysteria/Hysteria2やTUICはUDPベースで特定の環境に強いですが、サーバー側も対応している必要があります。RealityやVLESS XTLSは高速ですが、サーバー側の設定も重要です。
* url-test
の設定: url-test
グループを使用している場合、テストURLが信頼できるか、テスト間隔が適切か確認してください。lazy: true
にすると、実際に接続が発生するまでテストを遅延させ、起動時の負荷を減らせます。
* ルール設定: ルールが多すぎる、複雑すぎる、あるいは非効率なルール(例: 先頭に MATCH
がある)があるとパフォーマンスに影響します。シンプルなルールセットから試してみてください。
* DNS設定: Fake IPモードが有効か、使用しているDNSサーバー(nameserver
, fallback
)が高速か確認してください。検閲されている可能性のあるDNSサーバーを使用すると、解決に時間がかかることがあります。
* TUNモード: TUNモードはシステムレベルで動作するため、オーバーヘッドが発生する場合があります。問題がTUNモードに起因するか確認するため、無効にして試してみてください。
* CPU/メモリ使用量: Clash MetaやGUIクライアントが過度にCPUやメモリを消費していないか確認してください。
Q5: エラーメッセージの意味が分かりません。どうすればいいですか?
A:
1. log-level
を debug
に設定: config.yaml
の log-level
を debug
に変更し、詳細なログ出力を確認してください。エラーの原因を示す情報が含まれていることが多いです。
2. GUIクライアントのログビューア: GUIクライアントを使用している場合、通常はログを確認できる機能があります。
3. GitHub Issueやコミュニティ: エラーメッセージを検索したり、Clash MetaのGitHubリポジトリのIssuesや関連コミュニティ(Telegramなど)で質問したりしてみてください。同じ問題に遭遇した人がいるかもしれません。
Q6: VPNとの違いは何ですか?
A: VPNは通常、デバイス全体のネットワーク接続を単一のトンネルを通してリダイレクトします。これにより、IPアドレスを隠蔽し、通信を暗号化します。一方、Clash Metaは「ルールベースのプロキシ」です。トラフィックを様々な条件に基づいて異なるプロキシサーバーやポリシーに振り分けることができます。VPNのようにシステム全体を単一の接続に集約することも可能ですが(TUNモードとMATCHルールを組み合わせることでVPNのような使い方もできます)、Clash Metaの真価は、柔軟なルーティングと複数のプロトコル/サーバーを使い分ける能力にあります。例えば、特定のアプリはプロキシ、別のアプリは直通、特定のサイトは高速プロキシ、別のサイトは検閲回避プロキシ、といった使い分けが可能です。
Q7: 利用する上での法的なリスクはありますか?
A: Clash Meta自体の利用が違法となるケースは多くありませんが、その利用方法によっては法的な問題が発生する可能性があります。
* 利用規約違反: アクセス先のサービス(Webサイト、ストリーミングサービスなど)の利用規約でプロキシやVPNの利用が禁じられている場合があります。
* 現地の法律: お住まいの国や地域によっては、特定のプロトコルや暗号化技術の使用、あるいはプロキシツールの利用自体が規制されている場合があります。特にインターネット検閲が厳しい地域では注意が必要です。
* 違法行為への利用: 当たり前ですが、Clash Metaを含むいかなるネットワークツールも、違法なコンテンツの閲覧や違法行為に使用することは厳禁です。
利用は自己責任で行う必要があります。必ず現地の法律や利用規約を確認してください。この記事はClash Metaの技術的な側面を解説するものであり、その合法性や適切な利用方法について法的な助言を行うものではありません。
まとめ
Clash Metaは、オリジナルのClashの革新的なルールベースルーティングとポリシーグループの概念を継承しつつ、Reality, Hysteria2, TUIC, VLESS flowなどの最新かつ高性能なプロトコルに対応した、非常に強力で柔軟なネットワークプロキシコアです。その高度なDNS機能(Fake IP, DoQなど)と組み合わせることで、プライバシー保護、検閲耐性、パフォーマンスの向上を実現できます。
YAML形式の設定ファイルは、初めて触れる方には学習コストがあるかもしれませんが、その構造を理解することで、Clash Metaの持つポテンシャルを最大限に引き出し、自身のネットワーク環境や利用目的に合わせてきめ細かくカスタマイズすることが可能になります。また、Clash Metaをコアとする多くのGUIクライアントの存在は、設定の敷居を下げ、より多くのユーザーがこの強力なツールを利用できるよう手助けしています。
2024年現在、インターネット環境は複雑化し、プライバシーやセキュリティ、そして情報へのアクセスにおける課題は増しています。Clash Metaは、これらの課題に対応するための有効な手段の一つとなり得ます。最新のプロトコルに対応し続ける活発なコミュニティに支えられているClash Metaは、今後もネットワーク技術の最前線を走り続けるでしょう。
この記事が、Clash Metaについて深く理解し、自身のニーズに合わせて使いこなすための一助となれば幸いです。
免責事項
この記事は、Clash Metaの技術的な紹介、設定方法、およびメリットに関する情報提供のみを目的としています。Clash Metaの利用は、ユーザー自身の判断と責任において行ってください。利用地域の法律やネットワークサービスの利用規約を遵守し、違法行為には一切使用しないでください。筆者およびこの記事の提供者は、Clash Metaの利用によって生じたいかなる損害や結果についても責任を負いません。