• mihomoコア · Linuxへの導入

Clash for Linux クライアントのダウンロードと設定

config.yamlからTUN透過プロキシまで、手順に沿ってsystemdの常駐サービスを設定します。

  • オープンソース
  • ルールによる振り分け
  • 日本語の設定項目リファレンス

01 / CLIENT DOWNLOADS

Clashクライアントのダウンロード

デスクトップではGUIクライアントを、サーバーやルーターではアーキテクチャに合ったmihomoコアを選びます。

クライアントはサブスクリプション管理や画面操作、システム連携を担い、コアは接続とルールの処理を担います。まずOS、CPUアーキテクチャ、パッケージ形式を確認し、該当するインストール手順を参照してください。既存の設定は、インポート時にローカルルールが上書きされないよう、事前にバックアップしましょう。

Windows

Clash PlusやClash Verge Revなどから選べます。初回接続では、まずシステムプロキシを設定し、ブラウザーも同じポートを使っているか確認します。他のアプリの通信も経由させる場合は、TUNとサービスの権限を設定してください。

ダウンロードページへ

macOS

Apple Silicon用またはIntel用のパッケージを選択してください。ClashのmacOSダウンロードページでは、GUIクライアントとアーカイブ版の配布元を案内しています。ClashX Metaのダウンロード情報を確認する際は、メンテナンス状況と使用中のmacOSとの互換性に注意してください。

ダウンロードページへ

Android

端末のアーキテクチャに合ったAndroidパッケージを選んでください。初回起動時にシステムのVPN使用許可を確認し、接続後はバックグラウンド動作の制限を確認します。アプリを切り替えるとプロキシが切れる場合は、サブスクリプションを何度も読み込み直すのではなく、バッテリー最適化とバックグラウンド動作の設定を見直してください。

ダウンロードページへ

iOS

ダウンロードページでClash PlusのApp Storeリンクと公式サイトclashplus.ioを確認できます。インストール後、対応する設定を読み込み、システムの案内に従ってVPN構成を追加してください。ルールやポリシーグループが使えるかどうかは、クライアントの対応状況によって異なります。

ダウンロードページへ

Linux

GUI環境ではClash Verge RevまたはFlClashを選べます。Debian系とRPM系では、それぞれ対応するパッケージ形式を選択してください。GUIのないサーバーではmihomoを直接実行できます。まずuname -mでアーキテクチャを確認し、ディレクトリとサービスを設定してください。

ダウンロードページへ

パッケージ形式とCPUアーキテクチャは別のものです。ディストリビューションがそのパッケージをインストールできても、パッケージ内のバイナリが端末に対応しているか確認が必要です。GUIクライアントを使う場合は、同じ待ち受けポートを使う独立したコアを同時に起動しないでください。

すべてのクライアントを見る

02 / CONFIGURATION WORKSPACE

mihomoの設定と実行方法

待ち受け先から常駐サービスまで、必要に応じて設定を追加します。

以下は設定項目の抜粋であり、完全なサブスクリプション設定ではありません。まずローカルのプロキシポートが使える状態にしてから、通信の取り込みやルールの参照を設定します。一度に変更する項目を一種類に絞り、ログを確認してから次へ進むと、設定ミス、権限の問題、上流への接続失敗を切り分けやすくなります。

mihomoコア

mihomoは設定の読み込み、ポートの待ち受け、通信の振り分けを担い、GUIクライアントはサブスクリプション管理やシステム連携を提供します。まずmixed-portを設定し、HTTPまたはSOCKSに対応するアプリからローカルの接続先へ明示的に接続します。次に設定チェックコマンドでYAMLを解析できることを確認してください。画面のスイッチだけに頼る方法と比べ、設定ファイルを直接管理する方法はサーバーやリモート端末に適していますが、ディレクトリ、権限、ログを自分で管理する必要があります。管理用のコントローラーはローカルで待ち受けるようにし、ネットワークに直接公開しないでください。

mixed-portmodeexternal-controller
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

まずローカルの待ち受けアドレスを確認します。

設定項目は相互に参照します。ノードはポリシーグループに入り、ポリシーグループはルールから参照されます。DNSとルーティングも、通信が意図どおりコアに届くかどうかを左右します。設定チェックの成功はファイルを受け付けられたことを示すだけなので、実際にリクエストを送って確認してください。

config.yamlの設定項目を確認

03 / FIRST CONNECTION

Linuxを3ステップで始める

まず検証可能な接続を確立し、その後に透過プロキシを有効にします。

GUIクライアントとコアの直接実行では操作方法が異なりますが、確認する順序は同じです。設定の取得元、コアの起動、アプリの通信が実際にプロキシを経由しているかを順番に確認してください。サブスクリプションを読み込めたことを、ネットワーク接続の成功と混同しないでください。

STEP 01

クライアントと設定ディレクトリを選ぶ

デスクトップではGUIクライアントをインストールし、画面から設定を読み込みます。コマンドラインで導入する場合は、ファイルを~/.config/mihomo/config.yamlに配置してください。既存ファイルをバックアップしてから、サブスクリプションが完全な設定なのか、ノードだけのProviderなのかを確認します。内容によって読み込み先が異なるため、拡張子を変更するだけで互いに置き換えることはできません。

設定URLはサブスクリプションの提供元から入手してください。このサイトのダウンロードページで提供するのはソフトウェアであり、ノードは含まれません。リモートサーバーではディレクトリの所有者も確認し、一般ユーザーで実行したときに管理者が作成したファイルを読み込めない事態を避けてください。

STEP 02

設定を確認してコアを起動する

コマンドラインで導入する場合は、まず設定チェックを実行し、インデント、項目、ポリシーの参照に問題がないことを確認してからコアを起動します。初回はinfoレベルのログを残し、待ち受けアドレスが設定どおりか確認してください。ポートが使用中の場合は、まず既存のプロセスを調べます。ポートを何度も変更しながら、アプリに古いプロキシアドレスを残すことは避けてください。

mihomo -t -d ~/.config/mihomo
mihomo -d ~/.config/mihomo

GUIクライアントでは通常、設定を有効にしてサービスを起動します。ボタンの位置は各クライアントの画面で確認してください。

STEP 03

リクエストとルールの適用を確認する

まず明示的にプロキシを指定してリクエストを送り、アプリがローカルポートに接続できることと、該当する接続がログに記録されることを確認します。次にシステムプロキシを有効にしてブラウザーを確認し、最後に必要に応じてTUNを有効にしてください。通信を取り込む仕組みを一つ追加するたびにリクエストをテストすると、問題の発生箇所を特定できます。

curl -I -x http://127.0.0.1:7890 https://example.org

HTTPレスポンスが返ってきても、リクエスト経路から応答があったことを示すだけで、すべてのドメインやルールが正常とは限りません。実際に利用するサイトも選んで確認してください。

Clash Verge Revの使い方を調べる場合は、まずGUIクライアントの手順に沿って設定を読み込み、その後、設定項目リファレンスでコアの動作を確認してください。環境変数の影響を受けるのは、その変数を読み込むプロセスだけです。また、システムプロキシを設定しても、すべての接続が取り込まれるとは限りません。端末では使えてブラウザーでは使えない場合、サブスクリプションをすぐに変えるのではなく、それぞれの接続経路を確認してください。

ガイドをすべて見る

04 / SOURCE & OPERATIONS

オープンソースプロジェクトと導入時の注意

ソフトウェアはプロジェクトの情報を確認し、導入状況は実行ログで確認しましょう。

Clash for Linuxはクライアントのダウンロード先や導入情報をまとめたサイトであり、すべてのクライアントを開発するチームではありません。ページ内のコマンドはLinuxで一般的な例です。実行前にディストリビューション、デスクトップ環境、現在の権限に合わせて確認してください。オープンソースライセンス、機能の対応状況、メンテナンス状況は、それぞれ該当するプロジェクトの情報を参照してください。

Clashエコシステムとmihomoの関係

Clashエコシステムにはプロキシコア、GUIクライアント、関連設定ツールが含まれます。名前が似ていても、同じプロジェクトとは限りません。mihomoはClash.Metaプロジェクトを引き継いで開発され、Clash形式の設定構成を保ちながら、対応プロトコルや実行機能を拡張しています。古い設定を移行する際は、項目ごとに確認してください。どのクライアントでも同じ設定項目が使えるとは限りません。未知の項目がある場合は、ウィンドウのタイトルではなく、実際に動作しているコアを確認しましょう。

このサイトではmihomoのLinux導入を中心に解説し、GUIクライアントの情報はインストール先の選択に役立てています。クライアントのサブスクリプション、上書き設定、サービスモードによって独自の設定レイヤーが追加され、コアに渡される内容が読み込んだファイルと完全には一致しない場合があります。参照エラーを調べる際は、元のサブスクリプション、ローカルの上書き設定、実行時の設定を区別してください。

ソースコードとオープンソースライセンス

mihomoのソースコードはMetaCubeX/mihomoリポジトリで公開されており、ライセンスはGPL-3.0です。ソースコード、ビルド方法、Issueの記録を確認すると、項目が対応しているか、挙動の変化がコアとクライアント連携のどちらに由来するかを把握しやすくなります。ソースコードが公開されていても、ダウンロード後すぐに実行できるわけではありません。cloneで取得できるのはプロジェクトのファイルであり、ビルドには上流の手順に従ったツールチェーンの準備が必要です。

右側のコマンドをコピーしてリポジトリを取得すれば、実装の確認や自分でビルドする準備に使えます。一般的なデスクトップユーザーは、ダウンロードページからクライアントを選んでください。サードパーティ製GUIクライアントはそれぞれ独自のリリース計画で運用されています。コアプロジェクトのライセンスや更新履歴を、すべてのクライアントの説明の代わりにすることはできません。

更新前に復元可能な設定を保存

コア、GUIクライアント、サブスクリプションの内容、ルールセットは、それぞれ別の更新対象です。ソフトウェアを更新する前に使用中の設定とサービスユニットを保存し、変更内容を確認してから設定チェックを実行してください。Providerの更新は取得元データを置き換えるもので、コアの更新とは異なります。ローカルルールを変更しても、サブスクリプションのサーバーに自動同期されるわけではありません。各ファイルの管理元を把握しておくと、次回の更新で変更が上書きされるのを防げます。

Linuxのバイナリを直接置き換えた後は、実行権限、サービスのパス、TUNに必要な権限が引き続き有効か確認してください。まずフォアグラウンドで起動を検証し、その後に常駐サービスを再起動します。失敗した場合はエラー出力を残し、設定、ファイルアクセス、ネットワーク接続の順に切り分けてください。

公開範囲を絞り、動作を確認する

単一端末で使用する場合は、プロキシの接続先とコントローラーをループバックアドレスで待ち受けさせ、allow-lan: falseを維持してください。LANにサービスを提供する場合は、待ち受けアドレス、ファイアウォールの範囲、アクセス制御を明確に設定します。コントローラーはコアの管理用です。プロキシが使えるからといって外部に公開しないでください。サブスクリプションURLも、公開のIssueやログに貼り付けないようにしてください。

systemdを使う場合は、ログを最初の調査対象にしてください。サービスが実行中でも、サブスクリプションの読み込み失敗やDNS設定の問題が起きることがあります。反対に、特定のWebページが開かないからといって、サービスが停止したとは限りません。待ち受けポート、明示的にプロキシを指定したリクエスト、該当するログを合わせて確認すると、モードを何度も切り替えるより原因を特定しやすくなります。

05 / DEPLOYMENT NOTES

設定の読み解きとトラブル対処

実際の導入で直面した問題に応じて読み進め、初回のインストール手順にすべての設定項目を詰め込みません。

初回の接続が完了してから、定期更新、設定項目の整理、モバイル端末でのバックグラウンド動作を調整しましょう。記事内の設定例は既存の設定と組み合わせて使用してください。コピー前に項目の階層を確認し、変更後は実行時の設定をチェックします。同じリクエストを使って、変更前後の動作を比較してください。

トラブル対処

Android版Clash Metaのバッテリー消費が多いときに確認すること:バックグラウンド動作、バッテリー最適化、TUNの使い分け

モバイル端末でプロキシを常時実行すると電池消費が増える原因を解説します。ヘルスチェックの頻度、ログレベル、メーカーごとのバックグラウンド制限、バッテリー最適化の対象外設定、VPNモードでの省電力方法を取り上げます。

記事を読む