- インストールガイド
- OS別に見る
- Clash / mihomo
Clashの
インストール・設定ガイド
ダウンロード、サブスクリプションの追加、システムプロキシ、TUNモードを解説。OS別の手順を確認し、接続状況に応じて設定を見直せます。
初めて使う場合は、まずクイックスタートガイドに沿って接続を試してください。このページでは、OS別のインストール権限、通信経路、DNS、復旧方法をまとめています。クライアントによってメニューの場所は異なるため、実際の画面に合わせて操作してください。設定ファイル、プロキシグループ、システムのネットワーク設定を分けて説明し、異なる階層の設定を混同しないようにしています。
クライアントはクライアントのダウンロードページから選べます。macOS、Windows、Android、iOSではClash Plusを優先して確認してください。LinuxではClash Verge RevまたはFlClashを選べます。現在のクライアントが安定して動作しているなら、画面の違いだけで乗り換える必要はありません。まず、利用中の設定をコアがサポートしているか確認しましょう。
共通の事前準備
OS・アーキテクチャ・設定の入手元を確認
インストール前に、OSとプロセッサのアーキテクチャを確認しておきましょう。macOSでは「このMacについて」でチップを確認できます。Windowsでは「設定 → システム → バージョン情報」でシステムの種類を確認してください。Linuxでは uname -m を実行します。アーキテクチャはプログラムの起動可否に、ファイル形式はインストール方法に関わるもので、互いに置き換えられません。ファイル名にOS名が含まれているかだけで判断せず、ダウンロード欄のアーキテクチャ表記と、プロジェクトが示す最低システム要件も確認してください。
クライアントをインストールしても、プロキシサービスが使えるようになるわけではありません。クライアントは設定管理、プロキシ接続、通信の取り込みを行います。利用には有効なサブスクリプションURL、または使用可能なアウトバウンドを含むローカル設定が必要です。サブスクリプションの提供元が信頼できること、有効期限内であること、対応クライアントやコアが明示されていることを確認してください。アカウント情報を含むことが多いため、サブスクリプションURLを公開コメントやスクリーンショット、問い合わせに貼り付けないでください。
移行前に既存の設定を保存し、使用中のプロキシグループ、混合ポート、通信の取り込み方法を記録しておきましょう。サブスクリプションの内容はリモート更新で上書きされる場合があります。変更を長期的に維持するには、クライアントのオーバーライド、拡張、マージ機能を使うのがおすすめです。そうした機能がない場合は、設定をローカルにコピーしてテストできますが、そのコピーには以降のサブスクリプション更新が自動反映されません。
設定・アウトバウンド・通信の取り込みを区別する
接続は、設定の読み込み、リクエストを渡すアウトバウンドの選択、アプリの通信をクライアントへ送る処理という、3つの独立した段階で成り立っています。インポートが成功したのは内容が保存されたという意味で、設定が有効になったとは限りません。プロキシグループが表示されても、システムプロキシが有効とは限りません。初期設定ではこの順番で確認し、設定が反映される前にネットワークのスイッチを何度も切り替えないようにしましょう。
| レイヤー | 役割 | 確認場所 |
|---|---|---|
| サブスクリプション設定 | アウトバウンド、プロキシグループ、ルール、DNS項目 | 設定画面・コアのログ |
| アウトバウンドモード | ルール、グローバル、ダイレクト | プロキシ画面・実行設定 |
| 通信の取り込み | システムプロキシ、手動プロキシ、TUN | クライアントのスイッチ・システムのネットワーク設定 |
ルールモードではルールの順に照合され、すべてのリクエストがプロキシを経由するわけではありません。グローバルモードは通常、クライアントに取り込まれたリクエストを選択中のグローバルアウトバウンドに渡します。もともとクライアントを経由しないアプリの通信まで自動で取り込む機能ではありません。ダイレクトモードでもクライアントを終了したことにはならず、通信はローカルのリスナーやDNS処理を経由する場合があります。詳しくは仮想ネットワークアダプターとシステムプロキシの仕組みの違いをご覧ください。
最初は通信の取り込み方法を1つに絞る
デスクトップでは、まずシステムプロキシだけを有効にし、ブラウザーで設定を確認するのがおすすめです。システムプロキシに従わないアプリがある場合に、TUNモードを検討してください。モバイル端末では通常、OSが許可するVPNインターフェースを通じて通信を取り込むため、デスクトップ向けの手動プロキシ設定をそのまま使う必要はありません。初回のテストでは、ほかのVPN、古いプロキシクライアント、通信取り込みツールを終了し、通常のファイアウォールは有効なままにして結果を確認しましょう。複数の設定を同時に変えると原因を特定しにくくなります。
元に戻せるテスト環境を用意する
基本のネットワーク確認には、通常は直接接続できるサイトを1つ選びます。ルーティングの確認には、現在のルールでプロキシ経由になるサイトを選びましょう。接続画面でドメイン、適用されたルール、プロキシグループ、最終的なアウトバウンドを確認してください。ページが開いたかどうかだけでは設定の正しさを判断できません。キャッシュ、既存の長時間接続、ダイレクトルールが結果に影響する場合があります。テストでは新しいリクエストを発生させ、必要に応じてアプリを終了してから再度開いてください。
クライアントを終了する前にシステムプロキシを無効にするか、VPNを切断して、ネットワークが復旧することを確認しましょう。システムにローカルポート宛てのプロキシ設定が残ったまま、クライアントのリスナーが停止すると、アプリがインターネットに接続できないことがあります。何度も再インストールするより、復旧方法をあらかじめ把握しておくほうが効果的です。その後のトラブル対処では設定を一度に1つだけ変更し、内容を記録してください。設定、権限、通信の取り込み方法のどれが原因か判断しやすくなります。
macOSのインストールと設定
チップに合ったアーキテクチャを選んでインストール
macOSクライアントを開き、まずClash Plusを確認してください。設定との互換性に応じて、Clash Verge RevまたはFlClashも選べます。Apple Silicon搭載Macでは対応するアーキテクチャのインストーラーを、Intel搭載MacではIntel版を選んでください。ClashX Metaはメンテナンスが終了したアーカイブ版で、既存環境向けです。新しいmacOSとの互換性が保証されているわけではありません。
ディスクイメージを開き、アプリを「アプリケーション」フォルダにドラッグしてから、そのフォルダから起動してください。ディスクイメージ内から直接起動し続けると、アップデートやヘルパーサービスの配置、権限登録が不安定になる場合があります。ほかの形式のファイルをダウンロードした場合は、ダウンロードページやインストーラーの案内に従ってください。初回起動時はアプリの提供元と名称を確認し、警告を消すためにシステムのセキュリティ機能をまとめて無効にしないでください。
起動できない、またはセキュリティ警告が表示される場合は、アーキテクチャが合わないのか、システム要件を満たしていないのか、初回起動がブロックされているのかを確認してください。提供元を確認できたアプリであれば、「システム設定 → プライバシーとセキュリティ」に該当する起動オプションが表示される場合があります。警告の内容はmacOSのバージョンによって異なります。アプリが破損していると明示された場合は、セキュリティ属性を削除するコマンドをそのまま実行せず、まず信頼できる配布元から再ダウンロードしてください。
サブスクリプションを追加して使用中の設定を確認
設定画面でURLからのインポートを選び、サブスクリプションURLを最後まで貼り付けて保存し、ダウンロードの完了を待ちます。クライアントによっては「設定を追加」や「新規作成」メニューに項目があります。インポート後はその設定を選択し、実行状態とログでコアが正常に読み込まれたことを確認してください。項目は追加されたのにプロキシ画面が空の場合は、設定が有効になっていないか、設定内に有効なプロキシグループがない可能性があります。
ローカルのYAMLファイルはファイルからインポートできます。ただし、相対パスの参照、ルールセット、外部リソースの取得にはネットワーク接続が必要な場合があります。編集前に必ずコピーを残してください。サブスクリプションから生成されたファイルを直接編集すると、更新時に変更が失われることがあります。業務用ドメインにダイレクトルールを追加する場合は、クライアントの永続的な拡張機能を使い、サブスクリプション更新後に変更が反映されているか再確認してください。
まずシステムプロキシを有効にし、必要に応じてTUNを設定
プロキシ画面でルールモードを選び、手動選択が必要なプロキシグループに使用可能なアウトバウンドを指定してから、システムプロキシを有効にします。システムのネットワーク設定を初めて変更するとき、クライアントから許可を求められる場合があります。現在の操作に対応することを確認してから許可してください。「システム設定 → ネットワーク」で現在使用中のネットワークサービスを選び、プロキシがローカルアドレスを参照しているか確認します。ポートがクライアントの混合ポートと一致していることも確認してください。macOSのバージョンにより画面の手順は多少異なります。
ブラウザーは通常、システムプロキシの設定に従いますが、コマンドラインツールはそうとは限りません。アプリごとの動作を確認するには、リクエストをローカルポート経由に明示的に指定できます。以下の例は、混合ポートが 7890 に設定されている場合のみ使用できます。実際のポート番号が異なる場合は、クライアントに表示された値に変更してください。このコマンドは一般的なテスト用URLを使い、明示的なプロキシ経由で接続できるかだけを確認します。すべてのルールが正しいことを証明するものではありません。
curl --proxy http://127.0.0.1:7890 --head https://example.com
ゲーム、コマンドラインツール、システムプロキシに従わないアプリの通信を取り込む必要がある場合に、TUNモードを試してください。クライアントからヘルパーサービスのインストールやネットワーク拡張の許可を求められる場合があります。案内に沿って設定したあと、ログを再確認してください。通常のデスクトップ利用では、LAN接続を許可する必要はありません。TUNのDNS、ルーティング、自動インターフェース検出は使用中のクライアントの説明に従って設定し、ほかのOS向けの仮想ネットワークアダプターの設定をそのまま流用しないでください。
スリープ、ネットワーク切り替え、終了後の設定を確認
Wi-Fiから有線ネットワークに切り替えたときや、スリープから復帰したあとにプロキシ経由の通信だけ失敗する場合は、まず接続を再確立し、実際に使用中のネットワークインターフェースを確認してください。システムプロキシの設定はネットワークサービスごとに保存されます。古いインターフェースの設定が新しいインターフェースにも適用されるとは限りません。TUNを使用している場合は、ネットワークの変化に合わせてルートが再設定されているか確認します。TUNを一度無効にしてから再度有効にして比較し、ネットワーク全体を同時にリセットしないでください。
終了後にネットワークへ接続できない場合は、現在のネットワークサービスでWebプロキシとセキュアWebプロキシがローカルアドレスを参照したままになっていないか確認してください。アプリを削除する前に、残ったプロキシ設定を解除しましょう。ヘルパーサービスをインストールしている場合は、クライアントが案内する方法で削除してください。システムフォルダ内のファイルを無作為に削除しないでください。接続画面とログ画面の見方はクライアント画面ガイドを参考にし、エラーが発生した段階を特定しましょう。
Windowsのインストールと設定
インストーラー、アカウント権限、初回起動
Windowsクライアントを開き、まずClash Plusを選んでください。ほかの選択肢には、Clash Verge Rev、FlClash、Clash Nyanpasuがあります。Clash for Windowsはメンテナンスが終了したアーカイブ版です。選ぶ際はシステムの種類とダウンロード欄の説明を確認してください。ARM64搭載PCだからといって、任意のインストーラーがネイティブ対応するとは限りません。インストーラーとポータブル版の使い方を混同しないようにしましょう。
インストーラーを実行し、案内に沿ってインストール先を選びます。ポータブル版の場合は、現在のアカウントから書き込み可能な固定フォルダに完全に展開してから、メインプログラムを起動してください。圧縮ソフトのプレビュー画面から直接実行しないでください。設定、ログ、更新ファイルはユーザーデータフォルダに保存される場合があり、プログラムの保存場所と設定の保存場所は異なることがあります。PCを移行するときは、クライアントのエクスポート機能や説明に沿ってバックアップしてください。デスクトップのショートカットをコピーするだけでは不十分です。
通常のシステムプロキシ利用では、メイン画面を常に管理者として実行する必要はありません。サービスのインストール、仮想ネットワークアダプターの作成、特定のネットワーク設定の変更時に、権限の昇格を求められることがあります。セキュリティ警告が表示されたら、発行元、入手元、ファイルの場所を確認してください。組織管理下の端末では、ポリシーによる制限がある場合もあります。「管理者として実行」はあらゆる問題に対する万能な解決策ではなく、無効なサブスクリプションや誤ったアウトバウンドは修正できません。
設定の追加とシステムプロキシの確認
設定画面からサブスクリプションを追加し、更新が成功したら該当項目を選択してコアを再読み込みします。プロキシ画面でプロキシグループを確認し、明確なアウトバウンドを選んでからルールモードにしてください。システムプロキシを有効にしたら、「設定 → ネットワークとインターネット → プロキシ」で手動プロキシが有効か確認します。クライアントがローカルアドレスと待ち受けポートを設定するのが一般的ですが、最終的には現在のシステム設定を確認してください。
ブラウザーは使えるのに特定のデスクトップアプリだけ失敗する場合は、そのアプリに独自のプロキシ設定がないか確認してください。システム設定に従うアプリもあれば、独自のプロキシ設定だけを使うものや、異なるWindowsネットワーク機能を使うものもあります。システムプロキシですべてのプロセスの通信を強制的に取り込めるわけではありません。1つのアプリのためにグローバルモードを何度も切り替えないでください。グローバルモードが変えるのはアウトバウンドの選択であり、アプリからクライアントへの通信経路ではありません。
PowerShellでは curl.exe を使い、環境によって動作が異なる curl の別名を避けて、プロキシ経由の通信を明示的にテストできます。まず混合ポートが例と同じ値か確認してからコマンドを実行してください。明示的なプロキシ接続は成功するのに対象アプリの接続記録がない場合は、DNSを変更する前にアプリからクライアントへの通信経路を確認しましょう。テスト結果は接続画面に表示されるルールとアウトバウンドも合わせて判断してください。
curl.exe --proxy http://127.0.0.1:7890 --head https://example.com
TUNサービス、ファイアウォール、UWPループバック
より多くのプログラムの通信をクライアントに取り込む場合は、ソフトウェアの案内に沿ってサービスをインストールし、TUNを有効にしてください。有効化後、権限、ネットワークアダプターの作成、ルートに関するエラーがログにないか確認してから、対象のプログラムをテストします。ファイアウォールの警告はネットワークプロファイルを確認したうえで判断し、必要な範囲だけを許可してください。ローカルで使うだけなら、ついでにLAN共有を有効にしないでください。ファイアウォールは受信アクセスを制御し、TUNとプロキシルールは別の階層を担うため、互いに代用できません。
一部のストアアプリはAppContainerで隔離されており、ローカルのプロキシリスナーに接続できないことがあります。通常のブラウザーが使えても、こうしたアプリでは通信に失敗する場合があります。クライアントにUWPループバックツールがある場合は、まずアプリの識別情報を確認し、必要なアプリだけに例外を設定してください。コマンドライン操作と復元方法はUWPループバック例外とCheckNetIsolationの設定方法をご覧ください。すべてのアプリをまとめて許可しないでください。
ポート競合、プロキシ設定の残存、ネットワークの復旧
ログにアドレスの使用中やリスナーの起動失敗が表示された場合は、別のクライアントも起動していないか、以前のプロセスが終了せずに残っていないか確認してください。混合ポートは現在のコアが正常に待ち受けている必要があります。システム設定のポート番号も一致させてください。待ち受けポートを変更した場合は、手動設定も合わせて更新できます。クライアントの設定をそのままにしてシステムプロキシのポートだけを変更すると、リクエストが待ち受けていないポートへ送られてしまいます。
使用を終えるときは、システムプロキシとTUNを無効にしてからプログラムを終了してください。異常終了後にネットワークへ接続できない場合は、システムプロキシの設定画面で残った設定を解除します。コマンドラインだけで問題が起きる場合は、現在のターミナルのプロキシ環境変数も確認してください。VPN、仮想マシンのネットワーク、企業のセキュリティソフトが同時にルートを変更することがあります。制御可能な通信取り込みツールを一つずつ無効にして記録を残し、ネットワーク全体のリセットは避けましょう。
Androidのインストールと設定
インストールパッケージを選び、インストール権限を設定
Androidクライアントを開き、まずClash Plusを確認してください。用途に応じてClash Meta for Android、FlClash、Surfboardも選べます。クライアントによって対応する設定形式は異なります。サブスクリプション名が似ているだけで互換性があるとは限りません。インポートに失敗して何度も変換を試すより、まずサービス提供元が対応する形式を確認してからクライアントを選ぶほうが効率的です。
インストール前にOSのバージョンとプロセッサのアーキテクチャを確認してください。新しい端末の多くはARM64ですが、端末の外観や発売時期から判断せず、設定画面や信頼できるシステム情報の表示で確認しましょう。汎用パッケージで選択できるのは主にアーキテクチャで、OSのバージョン要件まで解決されるわけではありません。インストーラーに非対応と表示された場合は、似た名前のファイルを次々試すのではなく、ダウンロードページで要件を確認してください。
ブラウザーやファイル管理アプリからインストールパッケージを開くと、Androidからその提供元にアプリのインストールを許可するよう求められる場合があります。信頼できる現在の提供元に限って一時的に許可し、インストール後は元の設定に戻してください。古いアプリと新しいパッケージの署名が一致しないと、上書きインストールを拒否されることがあります。先に設定とサブスクリプションを保存し、元のアプリをアンインストールするか判断してください。バックアップなしでデータを消去しないでください。
サブスクリプションの追加とVPN接続の許可
設定管理画面からリモートサブスクリプションを追加するか、ローカルファイルをインポートします。内容のダウンロードが完了したら、その設定を現在の設定として選択してください。別のアプリからリンクを開いた場合は、選択したクライアントが受信先になっていることを確認しましょう。クリップボードやQRコードから読み込んだリンクも、全文が正しいか確認してください。インポートに失敗した場合は、リンク先から設定の内容が返されているかを確認します。ログイン画面、Webページの説明、エラーメッセージが返されている可能性もあります。
接続を開始すると、システムからVPN接続の許可を求められます。許可すると、クライアントはAndroidのVPNインターフェースを通じてアプリの通信を受け取れるようになります。このシステム権限を許可しても、リモートのアウトバウンドが接続済みとは限りません。プロキシグループで使用可能なアウトバウンドを選び、ログも確認してください。VPNアイコンはインターフェースが動作中であることを示すだけで、サブスクリプション、ルール、DNSの正しさまでは判断できません。
Androidクライアントでは、通信の取り込み設定がネットワーク、ルーティング、VPNなどの項目にあり、デスクトップと同じ名前の「システムプロキシ」スイッチがない場合があります。通常、Wi-Fi設定にローカルHTTPプロキシを追加する必要はありません。以前にWi-Fiのプロキシを手動設定している場合は、追加の転送経路にならないよう、設定を記録してから解除してください。そのWi-Fiから離れると、モバイルネットワークに手動プロキシ設定は引き継がれません。
アプリ別ルール、バックグラウンド動作、バッテリー制限
一部のアプリだけを直接接続したい場合は、アプリ別の対象リストとドメインルールを区別してください。アプリ別設定では、VPNインターフェースを通すアプリと迂回させるアプリを決めます。ルールでは、コアに取り込まれたリクエストをどのアウトバウンドに渡すかを決めます。ホワイトリストとブラックリストの意味はクライアントによって異なる場合があります。保存前に「選択したアプリのみプロキシを使用」か「選択したアプリを迂回」かを確認し、接続画面で動作を検証してください。
設定を変更しても、プログラムが既存の接続を使い続けることがあります。対象のアプリを終了して開き直し、新しい接続記録が表示されるか確認してください。仕事用プロファイル、アプリの複製、複数のユーザー領域では、システムの隔離によってクライアントから見えるアプリの範囲が制限される場合があります。ある領域のVPNがほかの領域にも自動で適用されるとは限りません。
画面をロックすると切断される、しばらくすると更新が止まる場合は、システムのバッテリー管理やバックグラウンド制限が原因のことがあります。まずクライアントのバックグラウンド実行が許可されているか、常時表示が必要なフォアグラウンドサービス通知があるか確認し、端末の設定画面からバッテリー関連の動作を調整してください。メーカーによって設定場所は異なるため、別の端末のメニューをそのまま参考にしないでください。必要なアプリに限って権限を変更し、画面ロック後と復帰後の動作をテストしましょう。
モバイルネットワークの切り替えとDNSトラブルの確認
Wi-Fiとモバイルネットワークを切り替えると、既存の長時間接続が使えなくなることがあります。新しいリクエストを送信し、コアが通信を受信しているか確認してください。記録がまったくない場合は、ほかのアプリにVPNが切り替わっていないか確認します。Androidでは通常、同じユーザー環境で有効にできるVPNは1つだけです。広告ブロック、企業ネットワーク接続、ほかのプロキシツールがVPNを使用している場合もあります。
ドメイン名でのアクセスだけに失敗する場合は、システムのプライベートDNS、クライアントのDNS、ルールモードの関係を確認してください。まず現在の設定を記録し、システムの自動設定で比較してから、クライアント側の名前解決経路を変更するか判断しましょう。ネットワーク保護機能を一度にすべて無効にしないでください。Surfboardなどの設定構文はmihomoのYAMLと異なります。互換性のない設定欄に、この記事のYAMLをそのまま貼り付けないでください。
iOSのインストールと設定
App StoreからClash Plusをインストール
iPhoneとiPadでは、iOSクライアントからClash Plusを確認できます。インストールはClash PlusのApp Storeページから行えます。公式サイトはclashplus.ioです。インストール前に、App Storeに記載された対応OSの要件を確認してください。機能、メニュー名、権限の説明は現在のアプリの案内に従い、デスクトップ向けのサービスインストール手順をモバイル端末に適用しないでください。
初回起動後は、設定管理画面と接続画面を開けることを確認してからサブスクリプションを用意してください。アプリのインストールとシステムVPN設定の追加は別の手順です。ホーム画面にアプリが表示されても、通信の取り込みがシステムに許可されたとは限りません。学校や組織の管理下にある端末では、デバイス管理ポリシーによってVPN設定が制限される場合があります。その場合は、アプリを何度もアンインストールするのではなく、管理者の定める手順に従ってください。
以前のクライアントから移行する場合は、サブスクリプションの提供元、プロキシグループの選択、自作ルールを記録してください。アプリごとの内部データベースやバックアップ形式に互換性があるとは限りません。アプリ固有のファイルを直接コピーするより、元のサブスクリプションや互換性のある設定を移行してください。サブスクリプションが利用できるかどうかは、クライアントが対応する形式やプロトコルによって決まり、ブラウザーでリンクを開けるかどうかとは関係ありません。
設定を追加してVPN権限を許可
アプリで「設定を追加」「サブスクリプション」「ファイルからインポート」などの項目を選び、完全なURLを入力して内容を取得します。追加後はその設定を選び、プロキシグループが表示されることを確認してから接続してください。共有メニューやクリップボードからインポートする際は、内容が途中で切れていないか確認しましょう。クエリパラメーター付きのURLは特に注意が必要です。サブスクリプションは個人情報を含む設定データです。トラブルのスクリーンショットを共有するときは、識別情報を隠してください。
初めて接続するとき、iOSからVPN設定の追加を許可するよう求められ、端末のパスコードやシステム認証で確認する場合があります。許可したらアプリに戻って接続を完了してください。以前に許可を取り消している場合は、関係のない種類のVPNを手動で作るのではなく、アプリから再度接続を開始します。システム設定のVPN一覧では現在の設定を確認できますが、サブスクリプションの更新やプロキシグループの選択はアプリ内で行います。
モバイル端末では通常、システムのネットワーク拡張機能を通じて通信を取り込むため、Wi-FiのHTTPプロキシを設定する必要はありません。Wi-Fiプロキシはそのネットワークにだけ適用され、モバイルデータ通信には適用されません。クライアントのVPNと同時に設定すると、トラブルの切り分けが難しくなる場合があります。アプリにTUNに似た項目があっても、iOS版の説明に従ってください。デスクトップ向けの仮想ネットワークアダプター名、サービスコマンド、ルート設定は流用できません。
ルールモード、接続確認、DNS
まずルールモードにして、手動選択が必要なプロキシグループに有効なアウトバウンドがあるか確認します。ルール上プロキシ経由になるページを開き、アプリの接続履歴やログを確認してください。ルールによりダイレクト接続されても、VPNが無効とは限りません。設定どおりの動作である可能性があります。ページは開けるのにアウトバウンドが想定と異なる場合は、ルールの順序を優先して確認し、接続アイコンだけでルーティングの正しさを判断しないでください。
グローバルモードは、ルールが原因で差が出ているかを一時的に調べるのに便利ですが、長期的なトラブル対処には向きません。グローバルモードで復旧した場合は、元のルールにあるドメイン、ルールセット、フォールバック設定を比較してください。改善しない場合は、アウトバウンド、ネットワーク、DNSを確認します。テスト後は元のモードに戻し、直接接続すべきLAN内サービスや業務アプリの通信経路が変わらないようにしてください。
一部のブラウザー、ネットワークプライバシー機能、カスタムDNS設定によって、リクエスト経路が想定と異なる場合があります。まず端末の設定を記録し、クライアントのログと一つずつ照らし合わせてください。1つのサイトが開けないからといって、システムDNS、アプリのDNS、すべてのプロキシグループを同時に変更しないでください。復旧しても原因がわからなくなります。証明書の警告が出た場合は、通常の接続障害を回避するために不明な証明書を信頼しないでください。
バックグラウンド、オンデマンド接続、ネットワーク切り替え
VPNネットワーク拡張とメインアプリの画面は別のライフサイクルで動作します。アプリをバックグラウンドにしても接続が停止するとは限らず、アプリを強制終了しても明示的に切断したことにはなりません。使用を終えるときは、アプリまたはシステムのVPNスイッチで接続が切れていることを確認してください。オンデマンド接続を使う場合は、有効化前に条件を確認し、切断後にルールによって再接続されないか観察しましょう。スイッチが効かないように見える場合があります。
Wi-Fi、モバイル通信、テザリングを切り替えた後は、既存の接続を再確立する必要がある場合があります。まず現在のネットワークで直接接続できることを確認し、VPNに再接続してから新しいリクエストを送ってください。特定のWi-Fiだけで失敗する場合は、認証ポータル、DNS、アウトバウンド制限を比較します。先にネットワークへのログインを済ませてからプロキシをテストし、通常のネットワーク接続がまだ許可されていない状態をクライアントのエラーと誤認しないようにしましょう。
サブスクリプションの更新をバックグラウンドで行えるか、アプリを前面に表示する必要があるかは、アプリの実装やシステムのスケジュール管理によって異なります。重要な更新後はアプリを開き、設定が読み込まれたことを確認してください。定期更新の設定だけで更新の完了を判断しないでください。別の端末では使えるアウトバウンドがこの端末で失敗する場合は、システムのネットワーク設定をすべて削除する前に、プロトコルの対応状況、設定形式、現在のネットワークを比較してください。
Linuxのインストールと設定
デスクトップクライアントとコアを別々に選ぶ
Linuxクライアントでは、デスクトップ環境向けにClash Verge RevまたはFlClashを選べます。サーバー、ルーター、サービスを自分で管理するユーザーはMihomoコアを確認してください。GUIクライアントは設定管理と状態表示を行い、コア単体では設定の実行を担います。インストール方法と権限の管理はそれぞれ異なります。初めて使うときに両方を同時に導入し、同じポートで待ち受けさせるのは避けてください。
まず uname -m でアーキテクチャを確認し、ディストリビューションが使用するパッケージ形式も確認してください。一般的に x86_64 はAMD64、aarch64 はARM64に対応しますが、実際に使用できるかは各ビルドの要件によります。該当するパッケージ管理環境がないシステムで、別のディストリビューション向けのインストールコマンドを実行しないでください。GUIのないサーバーですべてのLinuxパッケージが使えるとも限りません。
ディストリビューションのパッケージ管理ツールを使うと、依存関係の解決やアンインストール記録を保てます。デスクトップコンポーネント、ランタイム、トレイのサポートが不足していると表示された場合は、まず具体的なエラーを読み、現在のセッション環境を確認してください。Wayland、X11、デスクトップ環境によってトレイの実装は異なります。ウィンドウは動作するのにトレイアイコンが表示されない場合、プロキシコアの起動失敗とは限りません。画面とコアのログを分けて確認しましょう。
GUIからの設定追加とデスクトップのプロキシ
クライアントの設定画面でサブスクリプションを追加して選択し、コアが正常に読み込まれたことを確認してからシステムプロキシを有効にします。Linuxには、すべてのデスクトップやプログラムに適用される共通のプロキシ設定がありません。GNOME、KDE、コマンドラインアプリは、それぞれデスクトップ設定、環境変数、独自のプロキシ設定を参照する場合があります。クライアントでシステムプロキシが有効と表示されても、対象アプリで動作を確認してください。
ブラウザーに独自のプロキシ設定がある場合は、システム設定を参照しているか、アドレスを手動指定しているか確認してください。ターミナルでは明示的なプロキシコマンドを使って、ローカルのリスナーが使えることを確認してから、環境変数の設定を検討します。同じ環境変数をすべての起動スクリプトに追加しないでください。デスクトップセッション、対話型ターミナル、システムサービスでは環境変数の引き継ぎ方が異なるため、設定場所を誤ると一部のプログラムが古いプロキシを使い続けることがあります。
以下の例では混合ポートが 7890 に設定済みである必要があります。設定は現在のシェルと、そこから起動する子プロセスにだけ適用されます。NO_PROXY は、対応するプログラムにローカルアドレスを迂回させるためのもので、コアのダイレクトルール全体を設定するものではありません。大文字・小文字の変数名やワイルドカードの書き方への対応はツールによって異なるため、実際に使う際は各ツールのドキュメントを確認してください。
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1,::1
curl --proxy http://127.0.0.1:7890 --head https://example.com
unset HTTP_PROXY HTTPS_PROXY NO_PROXY
コア単体の設定確認とTUNの権限
Mihomoコアを使う場合は、完全な設定と独立したデータディレクトリを用意し、まず一般ユーザーで設定を確認してください。以下のコマンドは、コアが mihomo としてインストール済みで、設定が指定のパスに保存されていることを前提としています。サブスクリプションの取得やプロキシグループの自動補完は行いません。設定の確認が成功しても、構文を解析できたことを示すだけです。リモートのルールリソースや実際のアウトバウンドは、起動後に別途確認してください。
mkdir -p "$HOME/.config/mihomo"
mihomo -t -d "$HOME/.config/mihomo" \
-f "$HOME/.config/mihomo/config.yaml"
TUNは仮想ネットワークデバイスへのアクセスとルートの変更を必要とするため、通常はネットワーク管理権限または管理された特権サービスが必要です。デスクトップクライアントにサービスのインストール機能がある場合は、その説明に従ってください。サービスを自分で構成する場合は、実行ユーザー、ファイル権限、権限の範囲を明確にしてください。利便性のために設定ディレクトリ全体を書き込み可能にしたり、出所不明のスクリプトを最高権限で長期間実行したりしないでください。
コンテナ、仮想マシン、ホストはそれぞれ異なるネットワーク環境です。コンテナ内のループバックアドレスはコンテナ自身を指し、ホスト上のローカルプロキシが自動的に使えるわけではありません。リスナーを共有する場合は、アドレスの到達性、待ち受け範囲、ファイアウォールルールを設計してから、LAN接続の許可を検討してください。すべてのインターフェースで待ち受けるようにすると、ローカルに限定されていたサービスがほかの端末に公開される可能性があります。
サービス状態、ログ、停止後の復旧
バックグラウンドサービスが起動しない場合は、サービスマネージャーの報告とコアのログを確認し、設定パスの誤り、ディレクトリの読み取り不可、ポート競合、権限不足を切り分けます。GUIクライアントがコアを起動している状態で別のプロセスを手動で実行すると、待ち受けポートが競合することがあります。設定を変更したら、実際の導入方法に応じて再読み込みまたは再起動してください。ファイルを編集しただけで、実行中のコアにすぐ反映されるとは限りません。
TUNを有効にした後にLAN、コンテナ、仮想マシンで通信障害が起きた場合は、追加されたルートが既存のプライベートネットワークを上書きしていないか、DNSリクエストが最終的にどの名前解決経路へ入るかを確認してください。まずTUNを無効にして比較し、通常のプロキシでテストします。ルートやファイアウォールの設定をすべて消去しないでください。リモート管理の接続が切れるおそれがあります。サーバーで操作する前に、別の復旧経路を確保してください。
停止する際は、デスクトップのプロキシ設定、シェルの環境変数、バックグラウンドサービスをそれぞれ確認してください。これらの設定は自動で同期されません。特定のターミナルだけ失敗する場合は、新しいターミナルを開いて環境変数を確認します。デスクトップアプリ全般で失敗する場合は、デスクトップのネットワーク設定を確認してください。コアの設定項目の互換性についてはmihomoとオリジナルClashの設定の違いをご覧ください。古い項目が使えなくなった原因を、単純にディストリビューションの問題と決めつけないでください。
設定に関するよくある質問と確認手順
設定を追加したのに接続できないのはなぜですか?
設定の読み込み、待ち受けと通信の取り込み、ルールの適用、リモート接続の順に確認してください。まず、現在有効な設定が追加した項目か確認します。次に、ログに構文エラーやリソースのダウンロード失敗がないか確認してください。その後、システムプロキシ、VPN、TUNのいずれかが対象アプリの通信をコアに送っているか確認します。接続画面に記録がなければ、まず通信の取り込み方法を直してください。記録がある場合は、適用されたルールと最終的なアウトバウンドを確認します。誤った階層でスイッチを何度も試さないようにしましょう。
すべてのアウトバウンドで失敗する場合は、通常のネットワーク接続とサブスクリプションの状態を確認してください。特定のアウトバウンドだけ失敗する場合は、そのアウトバウンドや対応プロトコルを優先して確認します。設定の更新失敗とプロキシ接続の失敗は、別々の経路で起きる場合があります。更新にはリモートの設定内容を取得する必要がありますが、現在使用中の古い設定では接続できることもあります。更新ボタンでエラーが出ても、唯一使用できる設定をすぐ削除しないでください。先にコピーとエラー情報を保存しましょう。
ログは問題が起きた段階を特定するために使い、細かすぎるログレベルを長期間有効にしないでください。エラーを共有する際は必要な情報だけを残し、サブスクリプションURL、アウトバウンドのアカウント、個人用ドメイン、端末情報を隠します。同じ現象を報告するときは、「接続できない」の一言だけでなく、テスト時刻、使用中のネットワーク、モード、TUNの有効・無効も記録してください。ログが直近のリクエストに対応しており、前回の起動時の古いエラーではないことも確認しましょう。
ルール、混合ポート、YAMLの関係は?
混合ポートは通常、同じローカルリスナーでHTTPプロキシとSOCKSのリクエストを受け付けるためのもので、リモートサーバーのポートとは異なります。ルールは上から順に照合され、より具体的な例外を先に置き、最後にフォールバックルールを設定します。以下はローカルリスナーの動作確認だけを目的とする、最小限のダイレクト接続設定です。リモートプロキシは含まれていません。単体で動作しますが、リモートのアウトバウンド経由で通信を転送することはありません。使用中のサブスクリプションと置き換えないでください。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
rules:
- DOMAIN-SUFFIX,localhost,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,DIRECT
リモートプロキシを使う場合は、完全な設定内で実際のアウトバウンドまたはプロキシグループを定義し、ルールから正確な名前を指定してください。例にあるプライベートアドレスのルールが対象とするのは、記載されたネットワーク範囲だけです。すべてのLANに共通して使える設定ではありません。YAMLではスペースによるインデントを使います。リストのハイフンと項目の階層には意味があるため、タブを混在させないでください。変更後は設定を検証してから再読み込みします。検証に失敗した場合は、直前の正常なコピーに戻してください。
システムプロキシ、TUN、DNS、速度テストはどう違いますか?
システムプロキシは、システム設定に従うアプリに適しています。TUNはより広範囲の通信を取り込めますが、ルーティング、権限、DNSとの連携が必要です。すべてのOSで両方を同時に有効にする必要はありません。Fake-IPはDNSのマッピングと接続先の復元に関わる仕組みであり、プロキシモードでも高速化スイッチでもありません。LAN内ドメイン、固定IPを使うアプリ、特殊なアプリの互換性に問題がある場合は、名前解決と接続の記録を見て調整してください。用語を見ただけで一律に無効にしないようにしましょう。
ブラウザーの暗号化DNS、OSのリゾルバー、クライアントのDNSが、それぞれリクエストの処理に関わる場合があります。システムDNSを変更しても、ブラウザーの名前解決経路が変わるとは限りません。ドメインルールを使っていても、クライアントが常にドメイン名を取得できるわけではありません。リクエストがドメイン名とIPアドレスのどちらを使っているか確認してから、名前解決やスニッフィングの仕組みを調べてください。根拠がないままDNSリダイレクト、スニッフィング、複数の代替リゾルバーを重ねて設定しないでください。
ノードの遅延テストが示すのは、特定の時刻に送った特定のリクエストの結果です。ダウンロード速度や、すべてのサイトでの通信品質を表すものではありません。テストがタイムアウトしても、テスト先のアドレス、証明書、DNS、接続の再利用が原因の可能性があります。実際の選択では、よく使うサイトでの応答、安定性、用途に応じた通信を確認してください。詳しくはノードの遅延と実際の通信速度の違いをご覧ください。アウトバウンドを変更した後は接続を再確立してください。既存の接続がすぐに切り替わるとは限りません。
サブスクリプションの更新、LAN共有、復旧の確認
自動更新ではサブスクリプションの内容を再取得するため、生成されたファイルに直接追加したルールがリセットされる場合があります。変更を長期的に維持するには、クライアントが対応する永続的な拡張機能を使い、マージ後のルール順も確認してください。サブスクリプション変換を使うと、変換サービスが設定内容を扱うことになります。利用前にデータの処理範囲を確認してください。互換性のあるサブスクリプションを直接使えるなら、変換の工程を増やす必要はありません。無料ノードも提供元、有効性、利用条件を確認してください。クライアントが提供元の信頼性を保証することはできません。
LAN接続を許可する必要はありますか?
この端末だけで使う場合は、通常必要ありません。ほかの端末と共有する場合は、待ち受けアドレス、ファイアウォール、クライアントが対応するアクセス制御を合わせて確認してください。プロキシのポートをインターネットに公開しないでください。LANからアクセスできることは、認証機能があることを意味しません。
クライアント終了後もネットワークに問題がある場合、まず何を確認しますか?
デスクトップではシステムプロキシの設定が残っていないかと、ターミナルの環境変数を確認します。モバイル端末では、有効なVPNとオンデマンド接続を確認してください。TUNを使っていた場合は、ルートが復元されているかも確認します。通常のネットワーク接続が使えることを確認してから、設定を一つずつ戻してください。最初からネットワーク設定をすべて消去しないでください。
クライアントを変更すると、サブスクリプションを買い直す必要がありますか?
必ずしも必要ではありません。新しいクライアントがサブスクリプションの形式、プロトコル、サービスの利用条件に対応しているか確認してください。インポート後はプロキシグループ、ルール、DNSを検証しましょう。互換性のない設定項目は新しいコアに合わせて調整する必要があります。ファイルの拡張子が同じでも、動作まで同じとは限りません。
最短の設定手順をもう一度確認する場合はクイックスタートガイドへ、クライアントを変更する場合はダウンロードページからOSに合ったものを選んでください。動作確認済みの設定と変更内容を記録しておくと、複数の設定を同時に試すより、ネットワーク環境を復旧しやすく保てます。