# mihomoコア · マルチプラットフォームクライアント

Clash Meta ダウンロードmihomo対応マルチプラットフォームクライアント

OSに合ったクライアントを選び、mihomoコアでルールに応じて通信を振り分けます。サブスクリプションの読み込みからシステムプロキシとTUNまで、設定と通信経路を順に確認しましょう。

  • オープンソース
  • Clash YAML
  • mode: rule
  • 日本語ドキュメント

# 設定の入口 → ルール判定 → プロキシの出口

  • mihomo
  • Clash YAML
  • Rule Providers
  • Fake-IP
  • TUN

# proxy-groups

ルールによる振り分けと通信の制御

設定ファイルを読み込めたのは、最初の確認にすぎません。次に、通信がどの入口から入り、どのルールに一致し、最終的にどのプロキシグループへ送られるかを確認します。以下では実際の設定順に沿って5つのポイントを解説します。画面例は設定項目の関係を示すもので、すべてのクライアントに同じ画面があるとは限りません。

01

ルールモードと評価順

普段使いでは、まずルールモードを選びます。mihomoは設定ファイルのrulesを上から順に評価し、最初に一致したルールのポリシーを適用します。先にあるドメインルールに一致すると、後続の地域ルールは評価されない場合があります。独自ルールは末尾のMATCHより前に追加し、参照するプロキシグループが実際に存在することを確認してください。グローバルモードと異なり、ルールモードでは社内ネットワーク、普段使う直接接続サービス、プロキシ経由の通信を別々の経路に振り分けられます。変更後はページが開くかどうかだけで判断せず、接続画面で一致したルールとプロキシ経路を確認しましょう。

config.yaml · rules
mode: rule
rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY
02

システムプロキシとTUNの通信制御範囲

初回接続にはシステムプロキシが適しています。有効にすると、システムプロキシ設定に従うブラウザーやアプリがローカルポートへ通信を送ります。一部のコマンドラインツールやゲーム、独自のネットワーク処理を行うアプリはこの設定に従いません。その場合はTUNの利用を検討します。TUNは仮想ネットワークインターフェースとルーティングを使って通信を制御し、デスクトップでは通常、サービスモードや適切な権限が必要です。どちらも通信の入口を制御する機能であり、ノードや振り分けルールの代わりにはなりません。まずシステムプロキシで基本動作を確認し、その後TUNを個別に試すと、権限やルート、DNSの競合を特定しやすくなります。

config.yaml · tun
mixed-port: 7890
allow-lan: false
tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
03

Fake-IPとDNSマッピング

Fake-IPモードでは、ドメイン名に対して仮想IPアドレスを返します。コアはマッピングからドメイン情報を復元し、通信の振り分けと接続を行います。すべてのドメインを特定のノードに固定する機能でも、単独で有効にすればDNS通信をすべて制御できる機能でもありません。設定時はDNSの上流サーバー、TUNによるDNS制御、ブラウザー独自のセキュアDNS設定も確認してください。LAN内デバイスの検出、社内ドメイン、特定アプリの互換性に問題がある場合は、対象ドメインをfake-ip-filterに設定して動作を確認します。最初からDNSの経路全体を置き換えると、原因の特定が難しくなることがあります。

config.yaml · dns
dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "localhost"
04

プロキシグループの選択とノードのテスト

ノードテストで測定されるのは、クライアントから指定のテスト先へアクセスした結果であり、すべてのサイトでの実際の速度を示すものではありません。select型のプロキシグループでは手動でノードを選択し、url-test型ではテスト結果に応じて候補ノードを自動選択します。実際の動作は、テスト間隔や許容差、ヘルスチェックの設定にも左右されます。初回は手動選択のグループでノードを1つ選び、目的のサービスに接続できることを確認してから自動選択を有効にしましょう。タイムアウトが起きたら、サブスクリプションの有効性、ノードのプロトコル、ローカルネットワークを個別に確認します。設定を何度も一斉に切り替えたり、1回のテスト失敗をすぐにコアの不具合と判断したりしないでください。

config.yaml · proxy-groups
proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - AUTO
      - DIRECT
  - name: AUTO
    type: url-test
    use:
      - subscription
05

サブスクリプションの更新とローカル上書き設定

サブスクリプションには、設定一式を提供するものとノード一覧だけを提供するものがあり、同じファイルとして扱うことはできません。更新時にクライアントが設定ファイルを再取得して元の内容を置き換える場合があります。長く使う独自ルールは、クライアントが対応する上書き、マージ、または独立したルールセットで管理するのがおすすめです。更新後は有効な設定、プロキシグループの参照先、読み込みログを確認し、新しい内容が適用されたことを確かめてください。サブスクリプションURLにはアクセス情報が含まれることが多いため、公開リポジトリやオンライン変換サービスに入力しないでください。トラブルの相談で情報を共有する前に、URLやノードのパスワード、その他の識別情報を削除しましょう。

サブスクリプション管理 · 確認項目
設定形式       Clash YAML一式
更新間隔       クライアントで設定
現在の設定     選択状態を確認
ローカルルール 独立した上書き設定を使用
更新完了後     読み込みログを確認
全プラットフォームのインストール・設定ガイドを見る →

# clients

OSに合ったクライアントを選ぶ

クライアント一覧を見る →

ダウンロードセンターでは、プラットフォーム別にクライアント、対応アーキテクチャ、インストール方法を掲載しています。まずGUIクライアントを選び、デバイスのチップとOS要件を確認してください。mihomoのコマンドライン版は、主にサーバーやルーター、プロセスを自分で管理するユーザー向けです。クライアントごとに画面やコアの組み込み方が異なるため、名称だけで機能が完全に同じだと判断しないでください。

Windows

Clash PlusやClash Verge RevなどのGUIクライアントから始めましょう。インストール後、サブスクリプションを読み込み、ルールモードを選んでシステムプロキシを有効にします。TUNを使う場合は、クライアントの説明に従ってサービスの権限を設定してください。複数のプロキシツールを同時に実行すると、ポートが競合したりシステムプロキシの設定が上書きされたりすることがあります。

ブラウザーは使えるのにターミナルで通信できない場合は、クライアントを再インストールする前に、ターミナルのプロキシ環境変数を確認してください。アプリを終了する前に、システムプロキシが元の状態に戻っていることも確認しましょう。

ダウンロードへ →

macOS

まず「このMacについて」でApple SiliconかIntelかを確認し、対応するインストーラーを選びます。システムプロキシ、ネットワーク機能拡張、補助サービスの許可場所は環境によって異なる場合があります。インストール後はシステムの案内を読み、クライアントのドキュメントに従って必要な権限を許可してください。

ネットワークの変更やスリープからの復帰、別のVPNへの切り替え後に接続できなくなった場合は、現在のネットワークサービスのプロキシ設定を確認しましょう。アーカイブ版クライアントは互換性の確認用とし、日常利用には現在もメンテナンスされているものをおすすめします。

ダウンロードへ →

Android

Clash PlusやClash Meta for Androidなどから選び、デバイスのアーキテクチャに合ったものをインストールします。初回接続時に求められるVpnServiceの許可は、アプリがローカルVPNインターフェースを作成するためのシステム権限です。許可しただけで、リモートノードのサービスが利用可能になるわけではありません。

画面ロック後に切断される場合は、バッテリー最適化、自動起動、バックグラウンド実行の制限を確認してください。デバイスで別のVPNを使用している場合は、同時に動作できるか確認が必要です。接続アイコンが表示されていても、実際に通信できるかどうかは別途テストしましょう。

ダウンロードへ →

iOS

ダウンロードセンターにはClash PlusのApp Storeリンクと公式サイトclashplus.ioを掲載しています。インストール後、アプリが対応する方法でサブスクリプションまたは設定を読み込み、システムのVPN許可を済ませてから、プロキシグループを選んで接続をテストしてください。

iOSの通信制御はシステムのネットワーク機能拡張によって管理されるため、デスクトップのシステムプロキシ設定をそのまま当てはめることはできません。設定の互換性、バックグラウンドでの接続動作、利用できる機能は、使用中のアプリの説明をご確認ください。

ダウンロードへ →

Linux

デスクトップ環境ではClash Verge RevやFlClashを選び、ディストリビューションに合ったパッケージを使います。デスクトップのプロキシ設定がターミナル、コンテナ、バックグラウンドサービスにも自動で適用されるとは限りません。それぞれの通信経路を個別に確認してください。

コマンドライン版のコアを使う場合は、設定ディレクトリ、実行権限、サービスログを自分で管理する必要があります。TUNを有効にする前に、既存のルート、DNS管理ツール、コンテナのネットワーク範囲を確認し、ネットワークを復旧できるローカル環境を確保してください。

ダウンロードへ →

# quickstart

サブスクリプションの読み込みから初回接続の確認まで

まず最小限の接続経路を動作させてから、複雑なルールを追加しましょう。クライアントのインストール、ノードサービス、システム通信の制御はそれぞれ独立した要素です。ソフトウェアをインストールしてもノードが使えるとは限らず、ノードが使えてもすべてのアプリがプロキシを経由するとは限りません。

  1. 01

    設定を読み込んで有効にする

    サービス提供元から入手したClash互換のサブスクリプションを用意し、クライアントの設定またはサブスクリプション画面からURLで読み込みます。手元にYAMLファイルがある場合は、ファイルから読み込むこともできます。ダウンロード後にその設定を選択し、プロキシ画面にプロキシグループが表示されることを確認してください。解析に失敗した場合は、サブスクリプションの形式とURLの有効性、ファイルのインデントを確認しましょう。通常のWebページのURLをサブスクリプションURLとして使うことはできません。また、ノードURLを完全な設定ファイルとして読み込めるとは限りません。

    サブスクリプションURLの読み込み手順 →
  2. 02

    ノードを選び、通信制御を有効にする

    プロキシ画面でルールモードを選び、実際に通信の出口となるプロキシグループを開いて、まずノードを1つ手動で選びます。デスクトップではシステムプロキシを有効にし、モバイルではシステムの案内に従ってVPN権限を許可してください。初回のテストではDNS、ルール、TUNを同時に変更しないでください。結果を比較できるよう、一度に変更する項目は1つにします。ポートの競合が表示された場合は、ほかのプロキシプロセスを終了するか、ローカルの待ち受けポートと利用アプリの設定を明示的に変更してください。

    システムプロキシの設定手順 →
  3. 03

    接続とルールの適用状況を確認する

    まずクライアントのノードテストを実行し、プロキシ経由になるはずのサービスにアクセスしてから、接続画面で対象ドメイン、一致したルール、最終的な出口を確認します。続いて、直接接続になるはずのサービスにもアクセスし、設定どおりか比較してください。遅延テストに成功しても、実際のアプリで通信できるとは限りません。ブラウザーだけが使える場合は通信制御の範囲を見直し、通信がコアに届いているのにエラーが続く場合はノードとリモートサービスを確認しましょう。

    ノードのテストと接続確認 →
詳しいガイドを見る →

# source & maintenance

オープンソースのコアとクライアントの役割

Clash Metaは、プロジェクトの変遷をたどる際によく見かける名称です。現在のコアプロジェクトはmihomoという名称で開発されています。このサイトではダウンロード先と設定方法をまとめています。コアのソースコード、クライアントのリリース情報、ノードサービスの状況は、それぞれ該当するプロジェクトやサービス提供元の情報をご確認ください。

プロジェクトの変遷:Metaからmihomoへ

Clash Metaを検索すると、旧称やモバイルクライアントの名称、mihomoコアのドキュメントが一緒に見つかることがあります。エコシステム上のつながりはありますが、同じインストーラーを指すわけではありません。mihomoはClash互換の設定体系を引き継ぎ、ルール、プロトコル、DNSなどの機能を発展させています。この関係を理解しておけば、設定項目のエラーが起きたとき、デスクトップアプリの名前だけで判断せず、実際に動作しているコアと対応範囲を確認できます。

プロトコルや設定項目の動作は、プロジェクトのドキュメントを確認してください。古い記事では過去のデフォルト値が使われていることがあります。設定例をコピーする前に、現在の環境でも使える項目かを確かめ、いつでも戻せるよう設定の控えを残しましょう。

オープンソース開発:ソースコードと不具合報告

mihomoのソースコード、コミット履歴、IssueはMetaCubeXの公開リポジトリで確認できます。ソースコードが公開されているため、実装や変更の経緯を追うことができます。一方、GUIクライアントには独自のサブスクリプション管理、サービスプロセス、設定の上書き処理が含まれる場合があります。画面操作の問題とコアによる設定解析の問題は分けて調査しましょう。報告時には操作手順、システム環境、機密情報を除いた最小限の設定を添えると、接続失敗のスクリーンショットだけより原因を特定しやすくなります。

トラブル調査用のログには、ドメイン名、ノードアドレス、サブスクリプションの認証情報が含まれることがあります。公開Issueに投稿する前に機密情報を削除し、再現に必要な項目とエラーメッセージだけを残してください。

通信を処理するコアと、設定を管理するアプリ

GUIクライアントは通常、サブスクリプションの読み込み、設定の切り替え、システムプロキシの設定、接続状況の表示を担います。mihomoコアは読み込まれた設定に基づいて通信を解析し、ルールを照合して接続を確立します。画面上のスイッチが設定項目を生成または上書きする場合があるため、ファイルを編集した後は変更がクライアントに保持されているか確認してください。iOSなどのプラットフォームでは独自のアプリ連携方式が使われるため、Clash形式に対応しているだけで、コアの実装まで同じだとは限りません。

サブスクリプションサービスはノードや関連設定を提供するもので、クライアントとは別の要素です。ノードの期限切れや利用量の上限、サービス側の障害は、サブスクリプション提供元に確認してください。ソフトウェアを再インストールしても解決しないことがあります。

更新の管理:3種類を分けて確認

クライアント、コア、サブスクリプションは、それぞれ分けて更新してください。クライアントの更新では画面や権限の要件が変わることがあり、コアの更新ではプロトコルや設定項目の動作が変わることがあります。サブスクリプションの更新ではノードやサービス提供元の設定が新しくなります。更新前に独自ルールと必要な設定を保存し、リリースノートを確認しましょう。更新後は初回接続の手順に沿ってシステムプロキシ、DNS、ルールの適用状況を再確認し、古い設定の残存を新しいプログラムの不具合と取り違えないようにしてください。

長期的に使うルールは、変更履歴を追える方法で上書き管理しましょう。各プラットフォームの詳しい手順は準備とインストールのガイドを、設定の解析や権限、ルーティングの問題は設定に関するよくある質問をご覧ください。

# MetaCubeX / mihomo

コアのソースコードを入手する

以下のコマンドはソースコードのリポジトリをクローンするもので、GUIクライアントはインストールされません。ビルド方法、実行方法、ライセンスについてはリポジトリの説明をご確認ください。

mihomoの公開リポジトリを見る ↗
git clone https://github.com/MetaCubeX/mihomo.git

# technical-notes

最近の技術ノート

記事一覧を見る →