インストール / サブスクリプション / 通信のプロキシ設定 / トラブルシューティング
Clash 全プラットフォーム
インストール・設定ガイド
初めて接続する場合は、まず利用ガイドのクイックスタートをご覧ください。このページは設定を詳しく確認するためのガイドです。共通の準備を済ませたら、利用する端末の章に進み、ダウンロード、インストール、設定の追加、通信のプロキシ設定の順に確認してください。接続はできているものの不具合がある場合は、最後の「設定に関するよくある質問」から該当箇所を探せます。
クライアントによって画面上の項目名は異なります。以下では「設定」「サブスクリプション」「システムプロキシ」などの機能名を使って説明します。特定のボタンの位置がすべてのクライアントで共通するとは限りません。
共通の準備:クライアントと設定ファイルを理解する
クライアントが動作を担い、サブスクリプションが接続情報を提供
Clashのエコシステムには、すべての端末で使える単一のインストーラーがあるわけではありません。クライアントは操作画面を備えたアプリで、コアは設定の読み込み、ルールの照合、通信の転送を担います。mihomoはこのエコシステムで広く使われているコアです。Clash.Metaはmihomoへと発展した系譜にありますが、古いクライアントが新しい設定項目に対応しているとは限りません。ダウンロード前にOS、CPUアーキテクチャ、クライアントのメンテナンス状況を確認し、サブスクリプションの提供元が対応する設定形式も確かめましょう。ファイル名にClashとあるだけで、どの端末でも使えると判断しないでください。
初めて選ぶ場合は、まずClash Plusを確認しましょう。それ以外のクライアントは、プラットフォームや使い方に合わせて選びます。アプリをインストールしただけでは、接続先ノードは利用できません。サブスクリプションは通常、個別のアクセス情報を含むURLで、ノード、グループ、ルールなどの設定を取得します。URLを入手したら、クライアント用のサブスクリプションURLなのか、アカウントのログインページやWeb共有ページなのかを確認してください。ブラウザーでページが開けても、クライアントがそのURLを読み込めるとは限りません。
端末の環境と接続条件を記録する
まず、端末の日時、空き容量、基本的なネットワーク接続を確認します。日時が大きくずれていると、暗号化接続の検証に影響することがあります。ネットワーク認証ページが必要な場合は、先に認証を済ませてください。会社や学校が管理する端末では、アプリのインストール、VPN、ネットワーク拡張が制限されている場合があります。管理ポリシーを無効にして回避しないでください。CPUアーキテクチャはシステム情報で確認し、PCの外観やスマートフォンのメーカーから推測しないようにしましょう。モバイル端末では、ほかのVPN、パケット解析ツール、ローカルVPNを使うフィルターアプリが動作していないかも確認します。
次の4点を事前に記録しておくと便利です。通常の直接接続ができるか、Wi-Fiとモバイルデータのどちらを使っているか、手動プロキシが設定されているか、プリンターやLAN内サーバーへのアクセスが必要か。クライアントを有効にした後で問題が起きても、元からあったネットワークの不具合と、新しい設定による変化を切り分けやすくなります。最初からシステムプロキシ、TUN、カスタムDNS、グローバルモードを同時に有効にしないでください。まず最小限の構成で接続し、その後に機能を一つずつ追加します。
| 方式 | 対象となる通信 | 事前に確認すること |
|---|---|---|
| システムプロキシ | システムプロキシ設定に従うアプリ | プロキシポートとクライアントの待ち受けポートが一致していること |
| TUN | 仮想ネットワークインターフェース経由で処理する通信 | 権限、ルーティング、DNSの処理状況 |
| スマートフォンのVPN接続 | システムからクライアントに渡される通信 | VPNの許可とバックグラウンド動作の制限 |
ルールモードと設定ファイルの役割を理解する
ルールモードでは、設定内のルールに従って通信ごとに出口を選びます。すべての通信がプロキシ経由になるわけではありません。グローバルモードでは、通常はモード設定に従う通信にグローバルポリシーを適用しますが、OS側で通信を取り込む設定の代わりにはなりません。DIRECTモードは、プロキシを経由せずに接続するための設定です。初めて使う場合は、まずルールモードを選び、実際にルールから参照されているグループでノードを選択しましょう。使われていないグループを変更しても、現在の通信の出口は変わりません。
YAMLはインデントでデータの構造を表すテキスト形式です。以下はよく使われる項目の例で、ノードを含む完全な設定ではありません。既存の設定に統合する際は、対応する箇所に追加してください。同じ階層に同じキーを重複して記述したり、スペースの代わりにタブを使ったりしないでください。クライアントに設定画面がある場合は、画面から変更するのがおすすめです。画面で生成された設定と手動編集したファイルが、互いに上書きし合うのを防げます。
mode: rule
log-level: info
allow-lan: false
ipv6: false
インストール先はダウンロードページにまとめています。古いクライアントから移行する場合は、先にサポート終了後の設定バックアップと移行手順を確認してください。元の設定を保管し、新しいクライアントが使えることを確かめてから、古いアプリを削除します。移行中は通信を取り込むクライアントを一度に一つだけ実行し、複数のアプリがルートやプロキシポートを奪い合わないようにしましょう。
Windows:インストールからシステムプロキシ・TUNの設定まで
インストーラーを選び、初回起動する
Windowsのダウンロードでは、まずClash Plusを確認し、必要に応じてClash Verge Rev、FlClash、Clash Nyanpasuを比較してください。Clash for Windowsは開発が終了した旧バージョンです。新しい環境を構築するための選択肢としてはおすすめしません。「設定 → システム → バージョン情報」を開いてシステムの種類を確認し、ダウンロードページの対応情報と照らし合わせましょう。対応アーキテクチャが明記されていない場合、別のアーキテクチャ用インストーラーをネイティブ対応とみなして使わないでください。
ダウンロード後、古いプロキシクライアントを終了してからインストールします。通常のインストールと、管理者権限が必要なサービスのインストールは分けて考えてください。画面が起動しても、TUNに必要なバックグラウンドサービスが準備できているとは限りません。セキュリティ警告が表示されたら、ファイルの配布元とアプリ情報を確認してください。警告を回避するためにシステムの保護機能を一括で無効にしてはいけません。組織のポリシーでインストールが制限されている場合は、端末の管理担当者に相談してください。インストール後はまず画面を開き、問題の原因を切り分けやすくするため、最初はスタートアップを無効にしておきます。
サブスクリプションを追加し、使用中の設定を確認する
設定またはサブスクリプションの画面でURLからの追加を選び、識別しやすい名前を付けて、サブスクリプションURLをすべて貼り付けて保存します。コピー時に先頭や末尾に入った空白は削除しますが、クエリパラメーターは手動で変更しないでください。ダウンロードと解析が完了したら、その設定を明示的に選択します。「サブスクリプションの保存」と「設定の有効化」が別の手順になっているクライアントもあります。リストに項目が追加されただけでは、コアがその設定を使用中とは限りません。
ポリシーグループの画面を開き、ルールモードを選択して、グループ内に選択可能なノードがあるか確認します。DIRECTしかない、またはグループ一覧が空の場合は、システムプロキシを何度も再起動せず、サブスクリプションの形式と解析ログを確認してください。ノードのテストに成功したら、選択した出口を実際に使うWebサイトをブラウザーで開きます。テスト結果が示すのは、その時点でテスト先に接続できたかどうかだけです。すべてのWebサイト、プロトコル、ログイン手順が正常に動くことを保証するものではありません。
まずシステムプロキシを有効にし、必要ならTUNを使う
システムプロキシは、ブラウザーなど一般的なアプリの動作確認に適しています。クライアントで有効にすると、通常はシステムプロキシの接続先がローカルループバックアドレスになり、ポートはクライアントの表示に従います。以下のコマンドは、クライアントの混合ポートが実際に7890の場合に限り、プロキシを明示してリクエストを送るための例です。コマンドをそのまま使うために、正常に動作しているポートを7890へ変更しないでください。
curl.exe --proxy http://127.0.0.1:7890 --head https://example.com
コマンドでは接続できるのに特定のアプリで失敗する場合、そのアプリがシステムプロキシに従うか、独自のプロキシ設定を持つかを確認します。TUNは仮想ネットワークインターフェースを通じて通信を取り込む方式で、システムプロキシを参照しないプログラムに適しています。有効にする際は、クライアントの案内に従ってサービスをインストールするか、必要な権限を許可します。その後、インターフェースやルーティングのエラーがログに出ていないか確認してください。権限の問題をすべて解決する方法として、クライアント全体を常に管理者として実行するのは避けましょう。
ポート、スリープ復帰、終了後に残る設定を確認する
起動時にポートの競合が表示されたら、古いクライアントがタスクトレイやバックグラウンドで動作していないかを確認します。開発用プロキシやコンテナー関連ツールも確認してください。正体の分からないシステムプロセスをむやみに終了しないでください。ポートを変更する必要がある場合は、クライアント、手動のプロキシ設定、ターミナルの環境変数をすべて確認します。システムプロキシとWinHTTPプロキシは別の設定です。バックグラウンドのプログラムには、独自の接続方式を使うものもあります。
スリープからの復帰、Wi-Fiの切り替え、職場のVPNへの接続によって、ルーティングやDNSが変化することがあります。まずクライアントの通信取り込みをいったん無効にして、再度有効にし、復旧するか確認します。毎回起きる場合は、発生時刻に対応するログを保存してください。クライアントを終了する前にシステムプロキシを無効にします。異常終了した場合は、システムプロキシの設定にループバックアドレスが残っていないか確認しましょう。クライアントが終了しているのにブラウザーがローカルポートを参照していると、すべてのページが突然開けなくなることがあります。
最後にスタートアップを設定し、再起動後にバックグラウンドサービス、設定の選択、ポリシーグループが復元されるか確認します。「LANからの接続を許可」を使う場合は、待ち受けアドレス、ファイアウォールの受信ルール、認証設定を理解したうえで有効にしてください。このPCだけで使う場合は無効のままで構いません。個別の問題についてはよくある質問を確認してください。特定のアプリの不具合だけで、環境全体を再インストールする必要はありません。
macOS:チップの種類とネットワーク権限を確認する
アーキテクチャに合ったアプリをダウンロードしてインストール
「このMacについて」を開き、AppleシリコンかIntelプロセッサかを確認してから、macOSのダウンロードで対応するインストーラーを選びます。まずClash Plusを確認し、Clash Verge RevやFlClashも比較できます。ClashX Metaは開発が終了しているため、旧環境を確認する用途にとどめ、新規インストールの標準的な選択肢にはしないでください。互換機能を使えば異なるアーキテクチャのアプリを実行できる場合がありますが、補助サービスやネットワーク機能が同じように動くとは限りません。
ディスクイメージ内のアプリをインストールする場合は、案内に従って「アプリケーション」フォルダーへコピーし、コピー先から起動してください。マウントしたインストールイメージから長期間実行しないようにしましょう。アプリの更新、補助プログラムのパス、ログイン項目を一貫して管理しやすくなります。システムのセキュリティ警告が表示されたら、ダウンロード元と署名情報を確認し、システムが案内する手順で対応してください。インターネット上のコマンドを使って、システム全体のセキュリティチェックを無効にしないでください。
サブスクリプション追加後、最小限の接続を確認する
クライアントの設定画面を開き、URLサブスクリプションを追加して保存し、解析が終わるのを待ちます。設定を有効にしたら、ポリシーグループがそろっているか確認し、ルールモードと実際に使う出口を選択します。サブスクリプションの提供元が汎用設定、mihomo用設定、または特定クライアント向け形式を用意している場合は、現在のコアに合うものを選んでください。ファイルを読み込めたからといって、すべての拡張項目が有効とは限りません。非対応の項目がログに出ていないかも確認します。
最初はシステムプロキシでテストします。macOSのプロキシ設定はネットワークサービスごとに管理され、Wi-Fiと有線LANで別々に設定されている場合があります。ネットワークを切り替えた後、クライアントで有効と表示されているのにブラウザーの接続記録がない場合は、現在のネットワークサービスのプロキシ設定を確認してください。ブラウザー拡張、開発ツール、ターミナルが独自のプロキシ設定を使うこともあります。一つのアプリの結果だけで、PC全体の状態を判断しないでください。
ネットワーク拡張、補助サービス、TUNの許可
TUNが必要な場合は、クライアントの案内に従って許可します。実装によって、特権付き補助プログラム、システムネットワーク拡張、その他の仕組みが使われます。すべてのクライアントで同じ画面が表示されるとは限りません。許可は通常、「システム設定」のプライバシー、セキュリティ、ネットワーク関連の画面で確認します。初回の許可後はクライアントに戻って機能を有効にし、コアのログを確認してください。システムの確認画面が閉じただけで、通信の取り込みが成功したと判断しないでください。
スイッチが自動的にオフに戻る場合は、補助サービスが正しくインストールされているか、確認待ちのシステム許可が残っていないか、古いクライアントが同じリソースを使用していないかを確認します。古いサービスや設定を残したまま何度も再インストールしても、状況が変わらないことがあります。まず古いアプリを通常の方法で終了し、提供元の手順に従ってサービスを無効にしてください。よく分からないシステムフォルダーやネットワークデバイスを手動で削除しないでください。
scutil --proxy
scutil --dns
route -n get default
次の3つの読み取り専用コマンドで、プロキシ、DNS、デフォルトルートを確認できます。機能の有効化前後で比較してください。出力に特定のリゾルバーが表示されても、すべてのクエリがそのリゾルバーを使うとは限りません。システムはネットワークインターフェース、ドメイン範囲、優先順位に応じて名前解決経路を選ぶ場合があります。出力を共有する前に、個人のネットワーク情報を隠してください。DNSを調べる際はクライアントのログと実際にアクセスしたドメインも確認し、一行のアドレスだけで結論を出さないようにしましょう。
LAN、スリープ、ネットワーク切り替えへの対処
TUNの有効化後にプリンター、ファイル共有、ローカル開発サービスが使えなくなった場合は、対象がループバックアドレス、プライベートアドレス、LAN内の名前解決に依存するサービスのどれなのかを切り分けます。プライベートアドレスをDIRECTにするルールで解決するのは、一部のケースだけです。マルチキャストによるデバイス検出、リンクローカルドメイン名、仮想マシンのネットワークには、クライアント固有の除外設定が必要な場合があります。LAN全体をむやみに外部プロキシへ送ったり、プリンターを使うためにグローバルモードへ固定したりしないでください。
スリープ後に再接続すると、既存の通信セッションが無効になっていることがあります。まずネットワークの復旧を待ち、クライアントの接続を再確立してください。DNSが古いネットワークの結果を使い続ける場合は、通信の取り込みを停止してから再開し、変化があるか確認します。スマートフォンのテザリング、職場のネットワーク、自宅のネットワークを切り替える際は、認証ページや別のVPNにも注意が必要です。プロキシを調べる前に基本のネットワーク接続を確認し、上流のネットワーク障害を設定の破損と取り違えないようにしましょう。
別のMacへ移行する場合は、まずサブスクリプションを再追加し、必要な上書き設定やルールを戻します。補助サービス、絶対パス、旧マシンのネットワークインターフェース名までそのまま移さないでください。ブラウザー、ターミナル、よく使うアプリで動作を確認してからログイン時の起動を有効にし、アプリ終了時にシステムプロキシが正常に元へ戻るかも確認します。
Android:VpnServiceの許可とバックグラウンド動作
インストール前にアーキテクチャと旧アプリを確認
Androidのダウンロードでは、まずClash Plusを確認してください。用途に応じてClash Meta for Android、FlClash、Surfboardも選べます。クライアントによって対応する設定形式は異なり、特にSurfboardでは、あらゆるmihomo YAMLをそのまま読み込めるとは限りません。先にサブスクリプションの提供元が案内する形式を確認し、対応するクライアントを選びます。アーキテクチャはシステムの対応状況に従ってください。端末が64ビットCPUを搭載していても、OSが64ビットアプリだけを実行するとは限りません。
外部からダウンロードしたアプリのインストール時に、現在使っているブラウザーやファイル管理アプリからのインストール許可が必要になる場合があります。今回使う配布元に限って必要な権限を許可し、インストール後はその許可を無効にできます。更新時に署名が一致しないと表示されても、すぐに古いアプリをアンインストールしないでください。サブスクリプションや上書き設定をエクスポートし、新旧のインストーラーが同じ配布元から提供されているか確認します。通常のアンインストールでも、アプリの専用領域に保存されたデータは削除されることがあります。
サブスクリプションを追加し、システムVPNを許可する
設定画面でURLからサブスクリプションを追加して保存し、ダウンロードが終わるのを待ちます。追加した設定を選択し、ポリシーグループにノードがあることを確認してルールモードを選びます。初めて接続する際、AndroidにVPN接続の要求が表示されます。VpnServiceはAndroidが提供するインターフェースで、クライアントはこれを使って通信を受け取るローカルの仮想経路を作ります。VPNアイコンが表示されても、通信が特定のリモートサーバーを経由しているとは限りません。
許可する前に、ダイアログに表示されたアプリ名を確認してください。許可を拒否しても、クライアントに設定やノード一覧が表示される場合がありますが、ほかのアプリの通信は取り込めません。接続を再開して許可を求めてください。ダイアログが表示されない場合は、別のVPN、仕事用プロファイルのVPN、端末管理による制限を確認します。通常、Androidでは同じユーザー領域のVPN接続を、一般アプリが2つ同時に使用することはできません。
ルール、アプリごとの振り分け、常時接続VPN
まずルールモードのままブラウザーで接続を確認し、その後にアプリごとの振り分けを調整します。アプリごとの振り分けには、「選択したアプリのみを含める」と「選択したアプリを除外する」という、逆の動作があります。チェックを付ける前に説明をよく読んでください。除外したアプリはコアのログに表示されないことがあり、ノードを変更してもプロキシ接続は復旧しません。決済、LAN機器の操作、仕事用アプリに問題がある場合は、一つずつ確認し、一度に多数のアプリを除外しないでください。
システムVPN設定の「常時接続VPN」は、指定したVPNアプリをシステムに継続して関連付ける機能です。「VPNなしの接続をブロック」は、VPN接続が確立されていないときに通信を遮断することがあります。この2つは別の機能です。端末の再起動後やネットワーク切り替え後にクライアントが復帰することを確認してから、通信を遮断する設定を検討してください。サブスクリプションの期限切れ、アプリの制限、起動失敗が起きると、スマートフォン全体が一時的にネットワークへ接続できなくなる可能性があります。
画面ロック後に切断される場合は、まずバッテリー制限を確認
画面ロック後に接続が切れ、画面を点灯すると復旧する場合は、アプリのバッテリー設定を確認してください。クライアントのバックグラウンド動作を許可するか、バッテリー最適化の対象外に設定します。メーカーによっては自動起動の許可や、タスク管理画面でのアプリの固定も必要です。設定名はOSによって異なりますが、画面ロック中もVPNサービスを動作させることが目的です。通知権限や継続的な通知もクライアントの説明に従って設定します。ただし、通知を有効にするだけではバッテリー制限を回避できません。
画面を点灯した状態で一度速度を測っただけで、問題が解決したと判断しないでください。接続したらしばらく画面をロックし、ロック解除後にクライアントの動作状態と切断時刻を確認します。その後、Wi-Fiとモバイルデータで別々にテストしてください。データセーバー、バックグラウンドデータの制限、メーカー独自の省電力機能も動作に影響します。設定の場所が分からない場合は、VpnServiceの許可とバッテリー最適化の除外設定を参考に、項目ごとに確認してください。
DNS、テザリング、クライアント間の移行
Androidでは、プライベートDNS、ブラウザーのセキュアDNS、クライアント内のDNS設定が同時に動作している場合があります。ドメイン名を解決できない場合は、まず各設定を記録し、一度に一つだけ変更して確認してください。「DNS」と書かれた設定をすべて無効にするのは避けましょう。どのアプリからリクエストが送られ、VPNに入っているか、最終的にどのリゾルバーを使うかを確認する必要があります。ノードの接続先にも名前解決が必要です。ノードサーバーのドメインを解決できなければ、後続のルールが正しくても接続できません。
スマートフォンでテザリングを有効にしても、接続した端末がスマートフォン上のVPN経路を自動的に共有するとは限りません。通信の転送方式や権限の制限はOSによって異なります。「LANからの接続を許可」を、テザリング接続を簡単にプロキシ化する機能と解釈しないでください。クライアントを移行する際は、アプリごとの対象リスト、省電力設定、VPNの許可も改めて確認します。通常、これらはYAMLファイルと一緒には移行されません。画面ロック、再起動、ネットワーク切り替えの3つをテストしてから、古いクライアントを無効化または削除してください。
iOS:App Storeからのインストール、設定の互換性、VPN接続
Clash PlusをApp Storeからインストール
iOSではClash Plusをおすすめします。iOSのダウンロードから進むか、Clash PlusのApp Storeページを直接開いてください。公式サイトはclashplus.ioです。インストール前に、App Storeに記載されたOSの対応要件を確認し、端末のOSとストアの情報を基準にしてください。デスクトップ版の機能一覧を、そのままスマートフォン版にも当てはめないようにしましょう。
初回起動後は、まず設定のインポート画面と接続画面を確認し、多数の詳細項目を一度に変更しないでください。iOSアプリは通常、システムのネットワーク拡張を使ってVPN接続を確立します。システムの許可とサブスクリプションの内容は別のものです。接続を許可してもノードが提供されるわけではなく、サブスクリプションを追加できても、システムがアプリによる通信の取り込みを許可したとは限りません。それぞれの手順を完了し、個別に動作を確認してください。
リンクの名前だけでなく、設定形式も確認する
クライアントが対応するインポート画面にサブスクリプションURLを貼り付けて保存し、対応する設定が選択されていることを確認します。ファイルから読み込む場合も、ファイル形式と対応する項目の範囲を確認してください。Clashのエコシステムにある設定は、すべての実装で共通の形式ではありません。コアの拡張機能、ルールプロバイダー、ローカルファイルのパス、スクリプト機能には差がある場合があります。デスクトップで読み込めるYAMLでも、スマートフォンでは調整が必要だったり、サブスクリプション提供元が用意する互換形式を使う必要があったりします。
インポートに失敗した場合は、ダウンロードエラーか解析エラーかをまず確認します。ダウンロードエラーなら、URLの有効性、ネットワーク認証の要否、URLの一部がコピーされていないかを確認してください。解析エラーなら、返された内容が設定ファイルか、ログインページやエラーメッセージが混入していないかを確認します。サブスクリプションURL全体を公開のQ&Aに貼り付けないでください。問い合わせる場合は、エラーの種類と項目名を残し、URLのパラメーター、ノードのパスワード、個人アカウントを特定できる情報は隠しましょう。
VPN構成の追加を許可し、接続先を選択する
初回接続時に、システムからVPN構成の追加を求められることがあります。端末のパスコードや生体認証で確認してください。完了後はアプリに戻って接続状態を確認し、システムのVPN一覧で現在のアプリに対応する設定かどうかも確認します。アプリが作成するVPN構成と、デバイス管理プロファイルは別のものです。通常のサブスクリプション追加に、提供元が不明な管理プロファイルのインストールは必要ありません。一般的なプロキシ接続のために、端末全体の管理権限を許可する必要もありません。
クライアントが対応する範囲で、まずルールモードを選び、実際に使われているポリシーグループでノードを選択します。ページは開けても特定のアプリで接続できない場合、すべてのネットワーク設定を切り替える前に、アプリごとの通信の振り分けに違いがないか確認してください。iOSでは、アプリによって既存の接続が維持される場合があります。ポリシーを変更した後、新しい出口を確認するには、アプリを開き直すか接続を再確立する必要があります。テスト時には、キャッシュされたページと新たに送信されたリクエストを区別してください。
| 項目 | 役割 | よくある誤解 |
|---|---|---|
| サブスクリプション設定 | ノード、ルール、ポリシーの情報を保存する | 保存後に有効化されているか確認が必要 |
| VPNの許可 | アプリによるネットワーク接続の確立を許可する | 許可してもノードは提供されない |
| デバイス管理プロファイル | 管理ポリシーやシステム設定を適用する | 通常のサブスクリプションの代わりではない |
画面ロックとネットワーク切り替えは個別に確認
iOSのVPNネットワーク拡張とアプリの前面表示は、ライフサイクルが異なります。Androidのバックグラウンド固定の方法をそのまま使わないでください。バックグラウンド動作の確認のために、アプリを何度もスワイプして終了しないようにしましょう。通常の手順でホーム画面に戻り、画面をロックした後に再接続できるか確認します。低電力モード、ネットワークの切り替え、システムのリソース状況も接続の復旧に影響します。アプリがマルチタスク画面に残っているかではなく、再接続が必要かどうかを確認してください。
Wi-Fiからモバイルデータへ切り替えると、既存の接続が切れて再確立されることがあります。特定のWi-Fiだけで問題が起きる場合は、認証ページやアクセス制限を確認してください。ほかのVPN、デバイス管理ポリシー、プライバシー関連のネットワーク機能が同時に有効な場合は、現在の状態を記録し、一つずつ無効にして競合を確認します。すべての不具合をノードのせいにしたり、比較用の情報を失うほど一度にすべてのネットワーク設定をリセットしたりしないでください。
サブスクリプションの更新・移行時に復旧手段を残す
サブスクリプションを更新する前に、既存のローカルルールや、クライアントが対応する設定のバックアップを保存しておきます。更新後はポリシーグループ名と選択内容が変わっていないか確認してください。ノードが削除されたりグループ名が変わったりすると、以前の選択が無効になることがあります。スマートフォンとPCで同じサブスクリプションを使う場合は、サービス提供元の端末数や同時接続に関する条件も守ってください。同じURLを追加できても、無制限の端末で同時に接続できるとは限りません。
スマートフォンを機種変更したら、アプリを再インストールし、サブスクリプションを再追加して許可を与えてください。システムのバックアップでVPNの状態まで完全に復元されるとは限りません。ブラウザー、よく使うアプリ、画面ロック、モバイルデータでの動作を確認してから、旧端末の設定を削除します。クライアントによる違いは、スマートフォン向けクライアントの比較で対応範囲を確認してください。他のアプリの操作手順を、現在の画面にも当てはまる固定の手順として扱わないようにしましょう。
Linux:デスクトッププロキシと独立したコアの導入
デスクトップクライアントとサーバー用コアを区別する
Linuxのダウンロードでは、デスクトップ環境向けのGUIクライアントとしてClash Verge RevやFlClashなどを提供しています。独立したmihomoコアは、サーバーやルーター、自分でサービスを管理する環境に適しています。ディストリビューション、パッケージ形式、CPUアーキテクチャを確認してからインストーラーを選びましょう。Debian系とRPM形式を採用するディストリビューションは、拡張子が似ているだけでパッケージを流用できるとは限りません。デスクトップコンポーネントの依存関係も異なる場合があります。
デスクトップ環境では、依存関係とアンインストール情報を管理できるよう、対応するクライアントをパッケージマネージャーからインストールするのがおすすめです。起動後、設定画面でURLサブスクリプションを追加し、有効化してからポリシーグループとルールモードを確認します。権限の問題を回避するために、GUI全体を管理者アカウントで常時実行しないでください。TUNに必要な特権サービスは、クライアントのドキュメントに従ってインストールします。アプリ画面の権限とネットワークインターフェースの権限は、分けて扱ってください。
システムプロキシとターミナルの環境変数は別々に設定する
GNOMEやKDEなどのデスクトップ環境には、それぞれネットワークプロキシの設定があります。ただし、すべてのアプリがそれを参照するわけではありません。コマンドラインのプログラムは環境変数や個別の設定ファイルを使うことが多く、コンテナー内のプログラムは独自のネットワーク空間を持ちます。クライアントのシステムプロキシが有効でも、ターミナルの通信が直接接続になるのはよくあることで、コアの異常とは限りません。まずプロキシを明示したリクエストで待ち受けポートを確認し、次に各プログラムのプロキシ設定を調べてください。
curl --proxy http://127.0.0.1:7890 --head https://example.com
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
unset http_proxy https_proxy no_proxy
上記の例は混合ポートが7890の場合を想定しています。実際の設定に合わせてください。環境変数が影響するのは、その変数を引き継いだプロセスだけです。すでに起動しているプログラムの設定は自動で変わりません。また、ツールによって環境変数の大文字・小文字の扱いが異なります。ここでは現在のシェルだけに一時設定し、動作を確認してからログイン設定への追加を検討します。プロキシクライアントが起動していないときに保守用コマンドまで通信できなくならないよう、環境変数をシステム全体の設定に直接書き込まないでください。
独立したコアは前景で動作確認してからサービス管理に移す
独立して導入する場合は、実行ファイルと完全な設定を用意し、権限が明確なディレクトリに配置します。以下では、プログラムが/usr/local/bin/mihomo、設定ファイルが/etc/mihomo/config.yamlにあるものとします。まず構文をチェックし、前景で起動してサブスクリプションの参照、ローカルルールファイル、待ち受けポートが正常か確認します。構文チェックに合格しても、設定を読み込めることを示すだけで、ノードに接続できることやルーティングが正しいことまでは保証しません。
/usr/local/bin/mihomo -t -d /etc/mihomo -f /etc/mihomo/config.yaml
/usr/local/bin/mihomo -d /etc/mihomo -f /etc/mihomo/config.yaml
前景で正常に動作することを確認したら、ディストリビューションに合ったサービス管理方式を使います。systemdサービスでは、プログラムのパス、設定ディレクトリ、実行ユーザー、再起動ポリシー、ログの確認方法を明確にしてください。ローカルプロキシは最小限の権限で実行できます。TUNではネットワークインターフェースの作成とルートの変更が必要なため、追加の権限設計が必要です。出所の不明なサービスファイルをそのまま使わないでください。また、ほかのユーザーが読める起動引数にサブスクリプションの認証情報を書かないでください。
TUN、DNS、コンテナネットワークの注意点
TUNを有効にする前に、システムがTUNデバイスを提供しているか、サービスアカウントに必要な権限があるかを確認します。自動ルーティングは、ほかのVPN、ポリシールーティング、コンテナブリッジ、リモート管理経路と競合する場合があります。リモートサーバーでは、復旧方法を必ず確保してください。新しいルートによって現在のSSH接続が切断されないことを確認してから、設定を永続化します。唯一のリモート接続で全通信の取り込みを試し、そのままサービスを再起動することは避けてください。
DNSはNetworkManager、systemd-resolved、またはほかのコンポーネントが管理していることがあります。/etc/resolv.confを、常に手動で編集できる通常のファイルと考えないでください。シンボリックリンクだったり、サービスによって生成されたりする場合があります。まず既存の管理方式を確認し、クライアントがクエリをどう受け取るか、上流の名前解決先、ノードサーバーのドメイン名の解決方法を決めてください。コンテナー内のループバックアドレスはコンテナー自身を指し、ホストのプロキシへ自動的につながるわけではありません。
コアを更新する前に、現在のプログラムと設定を保存します。更新後はテストコマンドを実行してからサービスを再起動し、起動ログを確認してください。設定項目の互換性に問題がある場合は、Clash、Meta、mihomoのコアの違いを参照し、エラー項目をまとめて削除しないでください。ローカルのリクエスト、DNS、リモート管理、再起動後の復旧がすべて正常に確認できて、導入完了です。
設定に関するよくある質問:再インストールを繰り返さず、通信経路をたどる
サブスクリプションの取得エラーと設定の解析エラーを見分ける
まず、どの段階でエラーが発生したか確認します。接続タイムアウト、ドメイン名の解決失敗、サーバーからの拒否は、サブスクリプションの取得に関する問題です。インデント、項目の型、存在しない参照先に関するエラーは、設定の解析に関する問題です。サブスクリプションURLがWebページを返すと、クライアントがその内容をYAMLとして解析し、実際には参考にならない箇所をエラー位置として示すことがあります。最初のエラー行のインデントだけを変更する前に、URLが有効で期待する形式を返しているか確認してください。
更新後に突然使えなくなった場合は、直前に使えていた設定を保管し、変更点を比較します。サブスクリプション内のグループ名、ルールプロバイダー、プロトコル項目が変更され、古いコアが対応できない場合があります。クライアントの設定テストとログを確認してから、クライアントを更新するか、互換性のあるサブスクリプションに切り替えるか判断しましょう。サードパーティーのオンライン変換サービスは、サブスクリプションの内容を受け取ります。利用前に情報がどこまで公開されるか確認し、単発の読み込みエラーを解決するために個人用URLを不明なサービスへ渡さないでください。
ノードのテストは成功するのにWebページが開かない
「アプリ → 通信の取り込み → ルール → ポリシーグループ → ノード → 接続先サイト」の順に確認します。クライアントに該当する接続記録がない場合は、システムプロキシ、VPNの許可、アプリの除外設定を確認してください。接続記録があり、DIRECTを経由している場合は、ルールの適用結果を確認します。想定したグループに一致しているのにノードが違う場合は、グループ内の選択を確認してください。出口が正しいのに接続できない場合は、DNS、ハンドシェイク、接続先サービスの制限を調べます。一度に一つだけ変更すれば、どの段階で改善したか判断できます。
グローバルモードは、ルールに問題があるかを短時間だけ切り分ける用途には使えますが、すべての不具合に対する最終的な解決策にはなりません。テスト後は元のモードに戻してください。ノードの遅延は特定のテストリクエストで測定され、接続先、タイムアウト、ネットワーク状況によって変わります。ダウンロード速度の順位として単純に解釈できるものではありません。連続して速度を測るとスマートフォンのバッテリー消費も増えます。自動選択を使う場合は、url-test、fallback、load-balanceの違いを理解し、ポリシーグループの設定解説を参考にしてください。
カスタムルールが適用されないのはなぜ?
ルールは通常、上から順に照合されるため、具体的なルールは広範囲に一致するルールより前に配置します。ポリシー名は既存のポリシーグループと完全に一致させてください。名前の空白や大文字・小文字にも注意が必要です。以下は順序を示す部分的な例です。プライベートアドレスはDIRECT、指定したドメインもDIRECTにし、最後に「手動選択」を使います。このポリシーグループがすでに存在する必要があります。参照先を定義せず、ルールだけをコピーしないでください。
rules:
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,手動選択
クライアントがサブスクリプションの上書き、ルールの先行適用、設定のマージに対応している場合は、ダウンロード済みのキャッシュだけでなく、永続化される上書き設定を編集してください。そうしないと、サブスクリプションの更新時に変更が上書きされます。ルールが正しく見えるのに適用されない場合は、実際のリクエストがドメイン名とIPアドレスのどちらを使っているか、変更前から接続が確立していないか、画面に表示されているのが元ファイルか実行中の最終設定かを確認します。サブスクリプションを何度も更新するより、最終的な設定を確認する方が効果的です。
DNSの失敗、IPv6、LANのトラブル
DNSはドメイン名をIPアドレスに変換する仕組みです。名前解決が成功しても、接続できるとは限りません。まずノードサーバーのドメイン名と接続先サイトのドメイン名を区別します。前者を解決できない場合、プロキシの出口を確立できません。Fake-IPを使用すると、クライアントが内部マッピング用のアドレスを返すことがあります。これは必ずしもエラーではありませんが、関連する通信が同じ処理経路を通る必要があります。互換性の問題が起きた場合は、設定を理解したうえで特定のドメインを除外してください。アドレス範囲全体をむやみに変更しないでください。
IPv6も通信経路全体を確認します。システムがアドレスを取得しているか、DNSが対応するレコードを返しているか、クライアントが通信を取り込んでいるか、ノードが出口として対応しているかを調べてください。問題の範囲を絞るためにスイッチを一時的に無効にすることはできますが、すべてのネットワークでIPv6を無効にすべきだと判断する根拠にはなりません。LANの問題では、まずルートとDIRECTルールを確認し、その後でデバイス検出プロトコルと名前解決を調べます。プロキシエラー、証明書エラー、LAN内のデバイス検出の失敗を、同じ「接続できない問題」としてまとめないでください。
| 症状 | まず確認すること | 残しておく情報 |
|---|---|---|
| ノードがすべて空 | サブスクリプションの取得と形式 | 解析エラー、設定名 |
| 特定のアプリだけ失敗する | アプリのプロキシ設定と除外リスト | 接続記録の有無 |
| 画面ロック後に切断される | バックグラウンド制限とVPNの状態 | 切断時刻、ネットワークの種類 |
| 終了後にネットワークへ接続できない | 残っているシステムプロキシと通信遮断の設定 | 終了後のシステム設定 |
バックアップ、復元、問い合わせに必要な情報
信頼できるバックアップには、サブスクリプションの入手元、ローカルの上書き設定、必要なルールファイル、クライアントの設定内容を含めます。機密情報は別途保護してください。復元時は直近で動作していた状態に戻し、変更を一つずつ再現します。クライアント、サブスクリプション、DNSを一度に変更しないでください。問い合わせる際は、OS、クライアント名、通信の取り込み方式、エラーが起きる手順、個人情報を隠したログを共有します。ログの詳細度を上げるのは調査中だけにし、原因が分かったら通常のレベルへ戻して、不要なアクセス情報を記録し続けないようにしましょう。
特定の設定に問題を絞り込めたら、よくある質問を確認してください。用語の意味を調べたい場合は用語ガイドへ。接続手順を最初から確認する場合は、クイックスタートガイドに戻ってください。このガイドの基本は、動作している状態を保存してから、通信経路を段階的に確認することです。リクエストがどの段階で止まっているか分かれば、アンインストールと再インストールを繰り返す必要はありません。