なぜ Clash.Meta へアップグレードするのか

Dreamacro 氏によって維持されていた Clash の初期バージョン(一般に「Clash Premium」または「オリジナル版 Clash」と呼ばれます)は、2023 年末に公開更新とメンテナンスを停止しました。当時、コミュニティ全体が選択を迫られました。更新が止まった古いカーネルを使い続けるか、あるいはその上で活発に開発が続けられているフォーク版へ移行するか。

Clash.Meta(別名 mihomo)は、まさにこのような背景からコミュニティの主流となりました。オリジナル版 Clash の完全なルール体系と設定構文を継承しつつ、多くの新プロトコルのサポート、パフォーマンスの最適化、セキュリティの強化を導入したことで、多くの開発者とユーザーを惹きつけました。本稿執筆時点で、Clash.Meta の GitHub リポジトリは数万のスターを獲得しており、現在最も活発に進化している Clash 系カーネルの一つです。

名称について:Clash.Meta プロジェクトは 2024 年初頭にリポジトリ名を mihomo へ正式に変更しましたが、コミュニティでは依然として「Clash.Meta」という呼称が広く使われています。本文では両方の名称を併用しますが、どちらも同じプロジェクトを指します。

古い Clash カーネルを使い続けることも不可能ではありませんが、徐々に次のような困難に直面することになります。新プロトコル(Hysteria2、VLESS Reality、Tuic v5 など)が使えない。セキュリティの脆弱性が修正されない。最新の GUI クライアントとの互換性が悪化する。コミュニティでのサポートが得にくくなる。Clash.Meta への移行は「価値のある手間」です。ほとんどの設定はそのまま流用でき、切り替えコストは想像以上に低くなっています。

Clash.Meta と旧版カーネルの違い一覧

移行を始める前に、両者の違いを大まかに把握しておくことで、どの設定を調整すべきか、どれをそのまま使えるかを判断しやすくなります。

機能 旧版 Clash Premium Clash.Meta / mihomo
基本ルール構文 ✓ サポート ✓ 完全互換
Shadowsocks / VMess ✓ サポート ✓ サポート
VLESS / Reality ✗ 非対応 ✓ サポート
Hysteria2 ✗ 非対応 ✓ サポート
TUIC v5 ✗ 非対応 ✓ サポート
TUN モード △ 制限付き ✓ 完全な TUN + システム DNS
活発な開発 ✗ 停止中 ✓ 継続的な進化
セキュリティ修正 ✗ 停止 ✓ 定期的な修正

表からわかるように、Clash.Meta はプロトコル サポートとセキュリティにおいて明らかな優位性を持ちつつ、基本的な設定構文については高い互換性を維持しています。つまり、既存の設定ファイルの大部分はそのまま使え、一部のフィールドをわずかに調整するだけで済みます。

アップグレード前の準備:バックアップと環境確認

いかなるカーネル移行も、まずは完全なバックアップから始めるべきです。以下は、実際の作業前に完了しておくべきチェックリストです:

  1. 現在の設定ファイルのバックアップconfig.yaml(および付随するルールファイルや Provider ファイル)を安全な場所にコピーしてください。クラウドやバージョン管理システムへの保存も推奨します。
  2. 現在の動作状況の記録:現在のプロキシ接続状況や遅延テストの結果をスクリーンショットなどで記録しておくと、移行後の比較に役立ちます。
  3. OS とアーキテクチャの確認:Clash.Meta は Windows (amd64/arm64)、macOS (amd64/arm64)、Linux など、多様なビルドを提供しています。お使いの環境に合ったものをダウンロードしてください。
  4. 管理パネルのバージョン確認:Yacd や MetaCubeX などの Web パネルを使用している場合は、最新版へのアップデートを推奨します。旧版のパネルは新カーネルの API と互換性がない場合があります。
注意:Clash Verge Rev や Clash for Windows などの GUI クライアントを使用している場合、通常はクライアント側でカーネル管理が行われます。クライアント内の設定でカーネルを切り替えるだけで済み、実行ファイルを直接入れ替える必要はありません。本文は主に、コマンドライン カーネルを直接使用しているユーザー向けの内容です。

設定ファイルの移行詳細

これは移行プロセスにおいて最も重要で、注意深く確認すべき工程です。幸いなことに、Clash.Meta は旧版設定との互換性が非常に高く、ほとんどのフィールドは変更なしで使用可能です。主に以下の点に注目してください:

1. トップレベル フィールドの調整

Clash.Meta では、一部のトップレベル フィールドの名前が変更されたり、拡張されたりしています。よくある変更例は以下の通りです:

config.yaml — 旧版の書き方
external-controller: '127.0.0.1:9090'
secret: ''
log-level: info
allow-lan: false
mode: rule
config.yaml — Clash.Meta 推奨の書き方(新フィールド)
external-controller: '127.0.0.1:9090'
external-ui: './ui'        # ローカル Web パネル ディレクトリ(任意)
secret: ''
log-level: info
allow-lan: false
mode: rule
ipv6: false                # 明示的な宣言を推奨
unified-delay: true        # より正確な遅延測定方式を使用
tcp-concurrent: true       # 並列 TCP 接続(新機能)

2. DNS 設定の移行

DNS 設定は移行で最もトラブルが起きやすい部分です。Clash.Meta ではより細かな DNS 分流制御が導入されました。旧版のシンプルな DNS 設定も動作しますが、漏洩防止のために以下の構造へ更新することを推奨します:

推奨される Clash.Meta DNS 設定構造
dns:
  enable: true
  ipv6: false
  listen: '0.0.0.0:1053'
  enhanced-mode: fake-ip       # または redir-host、用途に応じて選択
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - 'localhost.ptlogin2.qq.com'
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver:
    - 'https://doh.pub/dns-query'
    - 'https://dns.alidns.com/dns-query'
  fallback:
    - 'tls://8.8.8.8:853'
    - 'tls://1.1.1.1:853'
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

3. プロキシ ノードの構文変更

プロキシ ノードのフィールドもわずかに拡張されていますが、旧版のノード定義は概ねそのまま使えます。ただし、新プロトコルを使用する場合は、Clash.Meta のドキュメントに従って対応するフィールドを追加する必要があります:

Hysteria2 ノードの例(Clash.Meta 専用構文)
proxies:
  - name: 'HY2-Node-JP'
    type: hysteria2
    server: example.com
    port: 443
    password: 'your-password-here'
    sni: example.com
    skip-cert-verify: false
    up: '50 Mbps'
    down: '200 Mbps'

4. ルールと Rule Provider

ルール構文と Rule Provider フォーマットは完全に互換性があり、旧版のルールセットをそのまま引き継げます。Clash.Meta ではさらに RULE-SET によるリモート ルールセットの参照がサポートされており(rule-providers フィールドと併用)、頻繁に更新されるドメイン ルールなどを Provider 形式で管理することで、メンテナンスが容易になります。

一般的なエラーと解決策

移行後にユーザーから寄せられることの多いエラーと、その調査の進め方について解説します:

エラー:field xxx is not supported

設定ファイルに Clash.Meta で廃止された、あるいは未実装のフィールドが含まれている場合に発生します。解決策:mihomo 公式ドキュメントを参照してフィールドの状態を確認し、削除するか対応する新しいフィールドに置き換えてください。

エラー:DNS resolve failed

多くの場合、DNS 設定が不完全であるか、fake-ip-filter リストが不足していることが原因です。enhanced-mode が正しく設定されているか確認し、国内の主要なサービス(LINE や銀行アプリなど)に対して fake-ip フィルタを追加してください。

エラー:TUN モードで LAN 内のデバイスがネットに繋がらない

TUN モードにおける最も一般的な問題です。tun.auto-routetun.auto-detect-interface が共に true になっているか確認してください。また、システム ファイアウォールが TUN カードのトラフィック転送をブロックしていないか確認してください(Windows では管理者権限での実行、macOS ではシステム拡張機能の許可が必要です)。

エラー:proxy [xxx] not found

ルール部分で、存在しないプロキシ グループ名を参照しています。proxy-groups 内のグループ名と、ルール部分での参照が完全に一致しているか(大文字小文字を含め)確認してください。

エラー:Web パネルが読み込めない

外部 Web パネル(MetaCubeX など)を使用している場合、external-ui フィールドが正しいローカル ディレクトリを指しているか確認してください。CDN 版を使用している場合は、ネットワークが CDN リソースにアクセスできるか確認してください。また、external-controller のアドレスがパネルに入力した API アドレスと一致しているか確認してください。

TUN モードの設定とパフォーマンス最適化

TUN モードは、Clash.Meta が旧版から最も劇的に進化させた機能の一つです。システム レベルで仮想ネットワーク カードを作成することで、TUN モードはすべての TCP/UDP トラフィックを傍受し、アプリごとのプロキシ設定なしで真の「グローバル プロキシ」を実現します。

推奨される TUN モード設定 (config.yaml)
tun:
  enable: true
  stack: mixed          # mixed = TCP に gVisor、UDP に system を使用。性能と互換性のバランスが良い
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - 'any:53'          # すべての DNS リクエストをハイジャックし、DNS 漏洩を防止
  device: Meta          # TUN カードの名前(自由に変更可能)

stack モードの選択について:

パフォーマンス最適化の提案

高負荷な環境(P2P ダウンロードや大量の API リクエストなど)では、以下の設定調整でスループットを大幅に改善できる場合があります:

高負荷環境向け最適化設定
tcp-concurrent: true          # 並列 TCP 接続の確立
unified-delay: true           # 遅延計算の統一、測定誤差の排除
keep-alive-interval: 30       # TCP Keep-Alive 間隔(秒)

profile:
  store-selected: true        # 選択したノードを永続化
  store-fake-ip: true         # fake-ip マッピングを永続化

アップグレード後の検証とロールバック

設定の移行が完了したら、「なんとなく」で判断せず、以下の手順で体系的に動作を検証することを推奨します:

  1. 基本接続テスト:国内外の代表的なサイトにアクセスし、分流ルール(国内直結、海外プロキシ)が期待通りに動作しているか確認します。
  2. DNS 漏洩チェックdnsleaktest.com などのツールを使用し、DNS リクエストがプロキシをバイパスしてプロバイダーに漏れていないか確認します。
  3. 遅延と速度の測定:Clash パネルでノードの遅延テストを行い、移行前後で大きな変化がないか、実際のダウンロード速度が正常に出ているかを確認します。
  4. 新プロトコルの動作検証:Hysteria2 や Reality などの新しいプロトコルを使用している場合は、それらのノードの接続性を個別にテストします。
💡 ロールバック手順:移行前にバックアップした古い設定ファイルと旧カーネルの実行ファイルが命綱になります。移行後に解決不能な問題が発生した場合は、実行ファイルを旧版に戻してバックアップ設定を読み込めば、即座に元の状態へ復旧できます。移行後 72 時間程度はロールバックできる状態を維持し、安定稼働を確認してから古いファイルを整理しましょう。

本当に使いやすいクライアントの選択

カーネルの移行を終えると、多くのユーザーが「優れたカーネル + 優れたクライアント」こそが完璧なユーザー体験の鍵であることに気づきます。Clash.Meta カーネル自体はあくまでバックエンド エンジンであり、日常の利用には設定の管理、ノードの切り替え、ログの確認などが容易な GUI クライアントが必要です。

しかし現在、市場にある主要な Clash クライアントには、以下のような共通の課題が存在します:

Clash V.CORE は、まさにこれらの問題を解決するために設計されました。最新版の Clash.Meta カーネルを内蔵し、Windows、macOS、Linux、Android、iOS の全プラットフォームに対応。デスクトップとモバイルで操作性を統一しました。カーネルは上流の更新に追従するため手動での移行作業は不要です。洗練されたインターフェースにより、ノード管理やルール編集も直感的に行えます。カーネル移行を機に、その実力を最大限に引き出せるクライアントを試してみてはいかがでしょうか。