Windows
Clash PlusやClash Verge Revなどから選べます。初回接続では、まずシステムプロキシを設定し、ブラウザーも同じポートを使っているか確認します。他のアプリの通信も経由させる場合は、TUNとサービスの権限を設定してください。
ダウンロードページへ01 / CLIENT DOWNLOADS
デスクトップではGUIクライアントを、サーバーやルーターではアーキテクチャに合ったmihomoコアを選びます。
クライアントはサブスクリプション管理や画面操作、システム連携を担い、コアは接続とルールの処理を担います。まずOS、CPUアーキテクチャ、パッケージ形式を確認し、該当するインストール手順を参照してください。既存の設定は、インポート時にローカルルールが上書きされないよう、事前にバックアップしましょう。
Clash PlusやClash Verge Revなどから選べます。初回接続では、まずシステムプロキシを設定し、ブラウザーも同じポートを使っているか確認します。他のアプリの通信も経由させる場合は、TUNとサービスの権限を設定してください。
ダウンロードページへApple Silicon用またはIntel用のパッケージを選択してください。ClashのmacOSダウンロードページでは、GUIクライアントとアーカイブ版の配布元を案内しています。ClashX Metaのダウンロード情報を確認する際は、メンテナンス状況と使用中のmacOSとの互換性に注意してください。
ダウンロードページへ端末のアーキテクチャに合ったAndroidパッケージを選んでください。初回起動時にシステムのVPN使用許可を確認し、接続後はバックグラウンド動作の制限を確認します。アプリを切り替えるとプロキシが切れる場合は、サブスクリプションを何度も読み込み直すのではなく、バッテリー最適化とバックグラウンド動作の設定を見直してください。
ダウンロードページへダウンロードページでClash PlusのApp Storeリンクと公式サイトclashplus.ioを確認できます。インストール後、対応する設定を読み込み、システムの案内に従ってVPN構成を追加してください。ルールやポリシーグループが使えるかどうかは、クライアントの対応状況によって異なります。
ダウンロードページへGUI環境ではClash Verge RevまたはFlClashを選べます。Debian系とRPM系では、それぞれ対応するパッケージ形式を選択してください。GUIのないサーバーではmihomoを直接実行できます。まずuname -mでアーキテクチャを確認し、ディレクトリとサービスを設定してください。
パッケージ形式とCPUアーキテクチャは別のものです。ディストリビューションがそのパッケージをインストールできても、パッケージ内のバイナリが端末に対応しているか確認が必要です。GUIクライアントを使う場合は、同じ待ち受けポートを使う独立したコアを同時に起動しないでください。
すべてのクライアントを見る02 / CONFIGURATION WORKSPACE
待ち受け先から常駐サービスまで、必要に応じて設定を追加します。
以下は設定項目の抜粋であり、完全なサブスクリプション設定ではありません。まずローカルのプロキシポートが使える状態にしてから、通信の取り込みやルールの参照を設定します。一度に変更する項目を一種類に絞り、ログを確認してから次へ進むと、設定ミス、権限の問題、上流への接続失敗を切り分けやすくなります。
mihomoは設定の読み込み、ポートの待ち受け、通信の振り分けを担い、GUIクライアントはサブスクリプション管理やシステム連携を提供します。まずmixed-portを設定し、HTTPまたはSOCKSに対応するアプリからローカルの接続先へ明示的に接続します。次に設定チェックコマンドでYAMLを解析できることを確認してください。画面のスイッチだけに頼る方法と比べ、設定ファイルを直接管理する方法はサーバーやリモート端末に適していますが、ディレクトリ、権限、ログを自分で管理する必要があります。管理用のコントローラーはローカルで待ち受けるようにし、ネットワークに直接公開しないでください。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
まずローカルの待ち受けアドレスを確認します。
TUNは仮想ネットワークデバイスを使って通信を取り込み、システムプロキシや環境変数を参照しないアプリに適しています。プロキシポートを手動で指定する方法とは異なり、デバイス権限、ルーティングテーブル、DNSの設定が関わるため、通常のプロキシで接続を確認してから有効にしてください。Linuxではまず/dev/net/tunの存在を確認し、実行方法に応じて必要な権限を付与します。自動ルートを有効にした後は、LANへのアクセスが正常か確認してください。VPN、コンテナブリッジ、独自のポリシールーティングを使用している場合は、通信を取り込む仕組み同士が同時にルートを書き換えないよう、既存の設定を先に保存してください。
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
ルートを変更する前に権限を確認します。
ルールモードでは上から順に接続を照合し、最初に一致したルールで接続先が決まります。まずドメインとLANの例外を明示し、次にルールセットを追加して、最後をMATCHで締めくくります。ポリシー名は既存のポリシーグループと完全に一致させてください。すべての通信を一つのポリシーにまとめるClashのグローバルモードとは異なり、ルールモードでは直接接続する通信とプロキシ経由の通信を個別に扱えます。トラブル時はログに表示されるドメイン、宛先アドレス、適用ルールを確認してください。Webページが開くかどうかだけで、ルールが正しいと判断しないでください。リモートのルールセットでは、ダウンロードの成功、形式の互換性、rulesからの参照も確認が必要です。
# ポリシーグループ Proxy は完全な設定内で定義してください
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,Proxy
上から順に照合します。
Providerを使うと、ノードの取得元とローカルポリシーを分けて管理できるため、独自ルールを維持したい環境に適しています。proxy-providersはノードを、rule-providersはルールを提供し、両者は互換ではありません。サブスクリプション全体で設定を上書きする方法と比べ、取得元を分離すると個別に更新でき、ローカルの変更が置き換わるリスクを減らせます。まず取得内容が互換性のあるYAMLか確認し、パス、更新間隔、ポリシーグループからの参照を設定してください。サブスクリプションURLには通常、アクセス情報が含まれます。ローカルに保管し、ログや設定を共有する前にURL内の機密情報を削除してください。
proxy-providers:
local-nodes:
type: file
path: ./providers/nodes.yaml
proxy-groups:
- name: Proxy
type: select
use:
- local-nodes
取得元の名前とuseでの参照名を一致させます。
systemdを使うと、端末での手動起動を状態確認や再起動ができるサービスにできます。まずユーザーサービスユニットを作成し、バイナリの絶対パスと設定ディレクトリを指定してから、設定チェックと起動のコマンドを実行してください。バックグラウンドで起動する方法と比べ、サービスユニットならログをまとめて記録し、終了後の動作も定義できます。ユーザーサービスはシステムサービスとは異なり、ログインセッション終了後も動作するかどうかはlingerの設定に左右されます。また、サービスを有効にしてもTUNの権限は自動で付与されません。バイナリを更新した後は、必要な権限が引き続き有効か確認してから、サービスと待ち受け状態を確認してください。
mihomo -t -d ~/.config/mihomo
systemctl --user daemon-reload
systemctl --user enable --now mihomo
systemctl --user status mihomo
journalctl --user -u mihomo -b
まずサービスユニットを作成し、その後サービスを有効にします。
設定項目は相互に参照します。ノードはポリシーグループに入り、ポリシーグループはルールから参照されます。DNSとルーティングも、通信が意図どおりコアに届くかどうかを左右します。設定チェックの成功はファイルを受け付けられたことを示すだけなので、実際にリクエストを送って確認してください。
config.yamlの設定項目を確認03 / FIRST CONNECTION
まず検証可能な接続を確立し、その後に透過プロキシを有効にします。
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エコシステムにはプロキシコア、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ページが開かないからといって、サービスが停止したとは限りません。待ち受けポート、明示的にプロキシを指定したリクエスト、該当するログを合わせて確認すると、モードを何度も切り替えるより原因を特定しやすくなります。
インストール後すぐにノードを使えますか?ソフトウェアとサブスクリプションは別途提供されるため、対応する設定を自分で読み込む必要があります。ClashのVPNサービスが提供するサブスクリプションの接続権限、内容の形式、有効期限は提供元が管理します。クライアントをインストールできても、サブスクリプションを利用できるとは限りません。
グローバルモードであらゆる接続の問題を解決できますか?ポート、DNS、権限の確認に代わるものではありません。まず通信がコアに届いていることを確認し、ルールの適用に問題があるかを調べるためにモードを切り替えてください。テスト後は、使用予定のモードに戻します。
TUNとシステムプロキシはどう使い分けますか?まずシステムプロキシで接続の基準を確認します。プロキシ設定を参照しないアプリがある場合に、TUNを有効にしてください。通信を取り込む位置が異なるため、片方で成功したからといって、もう一方も正しく設定されているとは限りません。
05 / DEPLOYMENT NOTES
実際の導入で直面した問題に応じて読み進め、初回のインストール手順にすべての設定項目を詰め込みません。
初回の接続が完了してから、定期更新、設定項目の整理、モバイル端末でのバックグラウンド動作を調整しましょう。記事内の設定例は既存の設定と組み合わせて使用してください。コピー前に項目の階層を確認し、変更後は実行時の設定をチェックします。同じリクエストを使って、変更前後の動作を比較してください。
設定ファイルの構成に沿って、共通ポート、動作モード、DNS、proxies、proxy-groups、rulesの書き方と項目間の参照関係を順に解説します。各項目にはコピーして使える例も掲載しています。
記事を読むモバイル端末でプロキシを常時実行すると電池消費が増える原因を解説します。ヘルスチェックの頻度、ログレベル、メーカーごとのバックグラウンド制限、バッテリー最適化の対象外設定、VPNモードでの省電力方法を取り上げます。
記事を読むサブスクリプション取得のタイムアウト、証明書エラー、UAによる拒否、形式の不一致など、よくあるエラーの意味を整理します。proxy-providersのintervalとヘルスチェックを使った自動更新方法も解説します。
記事を読む