PLATFORM SETUP / CONFIGURATION REFERENCE

Clash 全プラットフォーム
導入・設定ガイド

Windows、macOS、Android、iOS、Linux:インストールからルールの適用まで、通信をどの経路で処理するか順を追って確認します。

OSごとのインストール要件、権限の違い、トラブル時の確認方法を調べるためのページです。初めて使う場合は、まずクイックスタートガイドに沿って設定を読み込み、プロキシを選んで接続してください。その後、システムプロキシ、TUN、DNSの設定をこちらで確認できます。インストーラーはクライアントダウンロードページにまとめています。この記事ではインストーラーの一覧は掲載せず、クライアントごとのボタン配置を共通仕様として扱いません。

おすすめの読み進め方:まず共通の準備を済ませ、利用中のOSの章を確認してください。問題が起きたら、末尾の手順に沿って証拠を残しながら一つずつ切り分けます。

01 / PREREQUISITES

共通の準備:クライアント、サブスクリプション、通信の取り込み方

GUIクライアント・コア・サービス設定の違い

Clashのエコシステムでは、GUIクライアントがサブスクリプションの管理やプロキシの選択、システムとの連携を担い、コアが設定の解析、ルール判定、接続の確立を担います。mihomoは継続的に開発されているコアプロジェクトですが、Clashを名乗るアプリがすべて同じコアを使っているわけではなく、同じ設定項目に対応しているとも限りません。設定を用意する前に、クライアントの「バージョン情報」やコア設定で実際のコアを確認し、サブスクリプション提供元の対応形式と照らし合わせてください。アプリ名が似ているだけでは互換性の判断材料になりません。

一般的なデスクトップ・スマートフォン利用者は、まずClash Plusをお試しください。ダウンロードページには、用途に応じて選べる他のクライアントも掲載しています。LinuxではClash Verge RevまたはFlClashを選択できます。バックグラウンドサービス、ルーターへの導入、設定の自主管理が必要な場合に限り、Mihomoコアを単体で利用してください。プロジェクト同士の関係については、Clash、mihomoとクライアントのエコシステムをご覧ください。クライアントをインストールしただけでは、起動できる状態になったにすぎず、プロキシの出口が使えるとは限りません。

サブスクリプションを準備し、復元用のコピーを保管する

サブスクリプションは通常、設定テキストを返すHTTPS URLで、アクセス用の認証情報が含まれる場合があります。通常の案内ページや、単一のプロキシ共有リンクとは異なります。コピーする際は、改行や空白、チャットアプリが付け加えた句読点が混入していないか確認してください。認証情報を含むURL全体を公開フォーラムに貼り付けないでください。サービスの稼働状況、有効期限、デバイス制限を確認し、汎用形式とmihomo形式が用意されている場合は、すべての入口を試すのではなく、使用中のコアに合った形式を選びます。

初回設定の前に、現在のシステムプロキシの状態、実行中のVPN、ネットワークインターフェース名を控えてください。既存の設定は、先にエクスポートするか、別のディレクトリにコピーし、手動で選んだプロキシも記録します。リモートサブスクリプションの更新でローカル編集が上書きされる場合があるため、個別ルールはクライアントが対応するオーバーライドまたはマージ機能に記述してください。エクスポートした設定やログには、サーバーアドレス、ユーザー名、サブスクリプションURLが含まれることがあります。スクリーンショットを共有する前に項目ごとに隠し、プロキシ名だけを伏せるのは避けてください。

モードを理解してから、通信の取り込み方を選ぶ

ルール、グローバル、DIRECTは通信の出口を選ぶ方法です。一方、システムプロキシとTUNは、通信をコアに渡す経路を決めます。両者は別の設定です。ルールモードは上から順にルールを照合し、グローバルモードはコアに入ったリクエストをグローバル設定に渡します。DIRECTモードではプロキシを経由しません。初回の動作確認ではルールモードにして、利用可能なノードを明示的に選び、接続ログを確認してください。ルールの問題を調べるためにグローバルモードへ切り替えることはできますが、サブスクリプションの期限切れやノードへの接続不能は解決しません。

通信の取り込み方式主な対象範囲有効化前の確認事項
システムプロキシシステムプロキシ設定を参照するアプリローカルの待ち受けポート、現在のネットワークインターフェース
アプリ内プロキシ設定アドレスとポートを明示して設定したアプリHTTPまたはSOCKSの種類、ループバックアドレス
TUN仮想インターフェースとルート設定で取り込む通信サービス権限、DNS、ルート、VPNとの競合

TUNは仮想ネットワークインターフェースとルートを使って通信を取り込み、通常はシステムプロキシより広い範囲をカバーします。ただし、実際の対象範囲はOSの制限、除外ルール、クライアントの実装によって異なります。モバイルではシステムのVPN設定への許可が必要になることが多く、デスクトップでは特権サービスが必要な場合があります。インストール直後に複数の通信制御ツールを重ねて使わず、まず一つの経路で動作を確かめてからTUNを追加してください。問題が起きたら、画面の接続スイッチだけで判断せず、対象の通信がどの入口を通ったかを確認します。

最小限の動作確認を行う

通常は直接アクセスできるWebサイトと、選択したプロキシ経路が必要な接続先を一つずつ用意してテストします。現在のネットワーク、クライアントのモード、選択中のプロキシグループ、エラーが発生した時刻を記録し、接続画面で同じドメインを探してルール、プロキシ経路、出口を確認してください。レイテンシテストで確認できるのは、その時点で特定のテストリクエストが完了したことだけです。すべてのドメイン、UDP通信、ログイン処理が使えることを保証するものではありません。通常のネットワーク接続自体に問題がある場合は、先に通信の取り込みを停止して通常のインターネット接続を復旧し、その後クライアントを確認します。

02 / WINDOWS

Windows:インストール、システムプロキシ、サービス権限

システムのアーキテクチャに合ったインストーラーを選ぶ

設定の「システム情報」でプロセッサの種類とシステムアーキテクチャを確認し、Windowsクライアントのダウンロードへ進みます。まずはClash Plusがおすすめです。Clash Verge Rev、FlClash、Clash Nyanpasuも選べます。Clash for Windowsは開発が終了したアーカイブ版のため、新しい端末で通常の選択肢として使うことはおすすめしません。同じメーカーのPCでも、別の端末用のインストーラーを流用しないでください。アーキテクチャとアプリ固有のシステム要件をそれぞれ確認します。

インストーラーの発行元とインストール先を確認し、一般的なアプリケーション用フォルダーにインストールしてください。ブラウザーの一時ダウンロードフォルダーから長期間起動するのは避けます。セキュリティソフトにブロックされた場合は、ファイルの入手元と検出内容を確認し、保護機能全体を安易に無効にしないでください。アプリを起動したら、まずシステムプロキシとTUNを無効のままにして、画面、設定の保存先、ログが正常か確認します。その後、プロキシクライアントは一つだけ起動し、別のアプリがバックグラウンドでプロキシ設定を書き換えないようにしてください。

サブスクリプションを追加し、使用中の設定を確認する

設定またはサブスクリプション画面でURLからのインポートを選び、見分けやすい名前を付けて、ダウンロードと解析の完了を待ちます。追加できてもノードが表示されない場合は、読み込んだ内容が完全な設定ファイルか、プロキシ一覧だけなのかを確認してください。ノードだけを含むデータには、providerやテンプレートが必要な場合があります。ダウンロード完了の表示だけで設定が有効になったとは限りません。リストから追加した項目を選び、プロキシ画面にその設定で定義されたプロキシグループが表示されることを確認します。

ルールモードに切り替え、手動選択のグループからノードを一つ選びます。自動テストグループはテスト結果に応じて出口を自動選択するため、最初のトラブルシューティングでは選択肢を絞れるよう、手動でノードを指定してください。サブスクリプション更新後にグループ名が変わると、以前の選択が無効になる場合があります。アプリを再起動するだけでなく、選択状態を確認し直してください。クライアントに設定チェック機能がある場合は、システムプロキシを有効にする前に構文エラーや参照先グループの不備を解消します。

システムプロキシでブラウザーの通信を確認する

クライアントでシステムプロキシを有効にしたら、Windowsの「設定」からネットワークとプロキシの画面を開き、手動プロキシがローカルのループバックアドレスと実際の待ち受けポートを指していることを確認します。よく使われるアドレスは127.0.0.1ですが、ポート番号はクライアントに従ってください。ループバックアドレスはそのPC自身を指します。別の端末に入力しても、このWindows PCには接続できません。LANからの接続を許可する場合は、アクセス元を明確にし、ファイアウォールで範囲を制限してください。

ブラウザーでは接続できるのにターミナルから接続できない場合、ターミナルのツールがシステムプロキシを参照していない可能性があります。次のコマンドで公開HTTPSサイトへのHTTPプロキシ経由の接続をテストできます。ポートは現在の実際の値に置き換えてください。HTTPレスポンスが返れば、指定した入口を通ったことが分かります。プロキシ認証エラーや接続先サイトからの拒否が返った場合は、入口、出口、サイト側の制限を切り分けます。成功以外の結果をすべてポートの不具合と判断しないでください。

PowerShell · プロキシを指定した接続テスト
curl.exe --proxy http://127.0.0.1:7890 --head https://example.com/

TUN、ループバック制限、ポート競合

システムプロキシに対応していないアプリの通信も取り込む必要がある場合は、クライアントのサービスモードとTUNを有効にします。サービスモードは通常、システム権限で仮想インターフェースやルートを管理します。通常の画面が起動しただけでは、サービスがインストール済みで実行中とは限りません。クライアントの案内に従って一度認証し、ログで仮想インターフェースの作成とルート設定が成功したことを確認してください。出所不明のスクリプトにTUNのための管理者権限を与えたり、同じルートを制御する別のVPNを同時に起動したりしないでください。

一部のUWPアプリにはループバックアクセス制限があり、ブラウザーが正常でもローカルプロキシに接続できないことがあります。まずシステムプロキシを使用していることを確認し、対象アプリに限ってUWPのループバック制限を解除する方法を参照してください。すべてのアプリを一括で許可するのは避けます。TUNを有効にして挙動が変わった場合も、接続ログでリクエストがコアに到達したか確認し、アプリ独自のログインや証明書エラーをループバックの問題と誤認しないようにします。

ポートが使用中の場合は、PowerShellでGet-NetTCPConnection -LocalPort 7890 -ErrorAction SilentlyContinueを実行し、プロセス番号から使用元を確認します。以前のクライアントが終了したことを確認してから、現在のクライアントを起動してください。正体の分からないシステムプロセスは終了しないでください。待ち受けポートを変更した場合は、システムプロキシ、ブラウザー拡張機能、ターミナルの環境変数も合わせて変更します。終了前に通信の取り込みを無効にしてください。異常終了後にWebサイトへ接続できなくなった場合は、先にシステムプロキシを元の状態に戻し、クライアントを再起動してログを確認します。

03 / MACOS

macOS:チップ、ネットワーク権限、プロキシの復元

チップを確認してアプリをインストールする

Appleメニューの「このMacについて」を開き、AppleシリコンかIntelプロセッサかを確認してから、macOSダウンロードで対応するインストーラーを選びます。まずはClash Plusがおすすめです。画面や機能の好みに応じてClash Verge RevまたはFlClashも選べます。ClashX Metaは開発が終了したアーカイブ版です。古いガイドのメニュー位置やコアの機能を、現在のクライアントにそのまま当てはめないでください。

ディスクイメージからインストールする場合は、アプリを「アプリケーション」フォルダーにドラッグしてから、そのフォルダーから起動します。マウントしたイメージ内から長期間実行すると、アップデートや権限の関連付け、補助サービスの参照先に問題が生じる場合があります。初回起動時にセキュリティ警告が表示されたら、まず入手元とアプリの情報を確認し、「システム設定」の「プライバシーとセキュリティ」に表示される案内に従ってください。アプリが破損している、または検証できない場合は、まず正しいアーキテクチャのファイルを再入手します。セキュリティ属性を再帰的に削除する方法を、あらゆるエラーに対する解決策として使わないでください。

実際に使う機能に必要な権限だけ許可する

システムプロキシ、特権ヘルパーサービス、ネットワーク拡張はそれぞれ異なる仕組みです。現在のネットワークサービスのプロキシ設定を変更するだけでよいクライアントもあれば、TUNの実装にヘルパーサービスやシステムネットワーク拡張が必要なアプリもあります。クライアントが実際に要求し、その機能に必要な場合だけ許可してください。アプリが利用していないスイッチをシステム設定で探す必要はありません。許可したらアプリに戻って状態を確認します。変更によってはアプリの再起動や、システムの案内に沿った再接続が必要です。

キーチェーンのダイアログは、通常、アプリが認証情報を保存または読み込もうとしています。許可する前に、表示されたアプリ名、キーチェーン項目、要求内容を確認してください。プロキシに関連する表示があるからといって、すべてのパスワードアクセスを「常に許可」にしないでください。起動のたびに繰り返し表示される場合は、アプリの移動、署名の変更、補助コンポーネントの参照先を確認します。詳しくはmacOSのネットワーク拡張とキーチェーンの許可をご覧ください。

サブスクリプションの読み込みとネットワークサービスの確認

クライアントの設定画面でサブスクリプションURLを追加し、ダウンロード後に対象項目を有効にして、プロキシ画面でグループを確認します。macOSでは、メニューバーのアイコンとメインウィンドウで、接続状態と設定一覧が別々に表示される場合があります。ウィンドウを閉じてもアプリが終了したとは限りません。別のクライアントがネットワークを制御していないことを確認してください。前面に表示されているアプリと、システムプロキシを書き換えたアプリが異なる可能性があります。ルールモードにしてノードを明示的に選び、接続先をテストします。

システムプロキシを有効にしたら、現在使っているWi-Fiまたは有線ネットワークの詳細設定でプロキシ項目を確認します。macOSはネットワークサービスごとに設定を保存するため、ドック接続のネットワークアダプター、有線ネットワーク、新しいWi-Fiへ切り替えると、設定が以前と異なる場合があります。次のコマンドで現在有効なプロキシを確認できます。特定のフィールド名だけを探すのではなく、有効状態、サーバー、ポートを確認してください。システムプロキシを参照しないターミナルツールでは、プロキシを明示するか、プロセスの環境変数を設定します。

Terminal · 現在のプロキシとネットワークサービス
scutil --proxy
networksetup -listallnetworkservices
lsof -nP -iTCP:7890 -sTCP:LISTEN

TUNとスリープ復帰後の接続回復

より多くのアプリの通信を取り込む場合は、クライアントの手順に沿って対応サービスをインストールまたは起動してから、TUNを有効にします。権限不足、インターフェースの作成失敗、ルートの競合がログに出ていないことを確認してください。会社の端末では管理ポリシーによって制限される場合があります。システム設定に項目が表示されていても、一般ユーザーが変更できるとは限りません。企業VPNを併用している場合は、ルートの範囲と利用要件を確認してください。通信を強制的に取り込むために、デバイス管理設定を削除しないでください。

スリープ復帰後に接続できない場合は、まず通常のネットワークが復旧していることを確認し、コアが動作中か、サブスクリプションの設定が有効かを調べます。Wi-Fiの切り替えでデフォルトルートやDNSが変わることがあり、古い接続が再確立されていない場合もあります。接続を停止し、ネットワークが安定するのを待ってから再接続し、新しいリクエストで確認してください。長時間接続したままのWebページを再読み込みするだけでは判断できません。明示的なプロキシは正常でTUNだけが失敗する場合は、すべての設定を再インストールする前に、仮想インターフェース、ルート、DNSを確認します。

アンインストールや移行の前に、アプリでシステムプロキシとTUNを無効にし、クライアントの案内に従ってヘルパーサービスを削除します。アプリが異常終了した場合は、現在のネットワークサービスにローカルプロキシの設定が残っていないか確認し、必要に応じてインストール前の状態に戻してください。すべてのネットワークロケーションやキーチェーン項目を安易に削除すると、他のアプリにも影響します。通常のインターネット接続に戻ったことを確認してから新しいクライアントをインストールし、バックアップから設定を読み込みます。問題の原因を判別しやすいよう、一度に戻す設定レイヤーは一つにしてください。

04 / ANDROID

Android:サブスクリプション形式、VPN許可、バックグラウンド動作

インストールファイルと対応する設定形式を確認する

AndroidダウンロードからClash Plusをダウンロードできます。ほかにClash Meta for Android、FlClash、Surfboardも選べます。ダウンロード前に、端末のアーキテクチャとアプリの最低システム要件を確認してください。比較的新しいスマートフォンの多くはARM64ですが、旧機種や特殊なOSは外見だけでは判断できません。インストール時に非対応と表示されたら、同じファイルを何度もダウンロードするのではなく、アーキテクチャ、OS、インストール済みアプリの署名を確認します。

ブラウザーやファイル管理アプリからインストールするとき、システムがそのアプリからのインストール許可を求める場合があります。現在使うインストール元に限って一時的に許可し、インストール後は必要に応じて無効にしてください。アップデート前にサブスクリプションURLとローカル設定を保管します。署名の不一致で上書きできなくても、すぐにアンインストールしないでください。アプリのデータが消える場合があります。同じ名前の別アプリや異なる配布元を誤って使っていないかを確かめ、バックアップの有無に応じて移行方法を決めます。

クライアントが対応する設定形式は個別に確認してください。Clash Plus、Clash Meta for Android、FlClashで利用できる項目は、コアと実装によって異なります。Surfboardの設定体系はClash YAMLとは異なるため、Clashの設定全体をそのまま貼り付けても使えるとは限りません。サブスクリプション提供元が複数の形式を用意している場合は、アプリが明示的に対応する形式を選んでください。変換サービスにはサブスクリプション情報が渡るため、利用前に提供元を確認し、認証情報を含むURLを出所不明のWebサイトに入力しないでください。

読み込み後に設定を確認してから接続する

設定またはプロファイル画面でリモートURLを追加し、ダウンロード後にプロキシグループとノードが表示されることを確認してから、使用する設定として選びます。URLへのアクセスに成功しても、ログイン画面、期限切れの案内、エラーを示すHTMLが返れば解析に失敗します。まずサブスクリプションの状態とエラーの概要を確認してください。認証情報を含むURLをスマートフォンのブラウザーで何度も開いて公開したり、エラーを回避するためにYAMLの構造をむやみに削除したりしないでください。

初回接続時、Androidでは通常、システムのVPN許可ダイアログが表示されます。新しくインストールしたアプリからの要求であることを確認して許可し、システムのVPN状態とアプリの接続ログを確認してください。ここでのVPNはアプリがシステムの仕組みを使って通信を取り込む方式であり、プロキシノードへの接続を意味するものではありません。ステータスバーにVPNアイコンが表示されていても、プロキシグループがDIRECTを選んでいたり、ノードが利用できなかったりすることがあります。対象へのリクエストを使って、実際の出口を確認してください。

アプリごとの振り分けと他のVPNとの併用

AndroidのVPNインターフェースは通常、複数の一般的なVPNアプリで同時に使用できません。会社のVPN、広告ブロッカー、VPN方式のネットワークツールが動作中の場合、現在のクライアントを起動すると既存の接続が切れることがあります。どの通信経路を使うか決め、「常時接続VPN」が設定されていないか確認してください。組織のポリシーで設定がロックされている場合は、端末管理のルールに従い、回避するためにシステムのネットワーク設定をリセットしないでください。

アプリごとのプロキシ設定には、対象アプリだけを取り込む「含めるリスト」と、対象アプリを除外する「除外リスト」の二つの方式があります。変更後は現在の方式を確認し、対象アプリを再起動して新しい接続を確立してください。チャットアプリは正常でもブラウザーに問題がある場合、別々のリストに入っているだけかもしれません。必ずしもノードの問題とは限りません。設定変更後は既存の長時間接続と新しい接続を分けて考えます。古いセッションがすぐに別の出口へ切り替わるとは限りません。

バックグラウンド制限、DNS、ネットワークの切り替え

画面をロックしてしばらくすると接続が切れる場合は、システムがクライアントのプロセスを終了したか、VPNの状態が解除されたかを確認します。スマートフォンのメーカーが提供するバッテリー設定で、必要なバックグラウンド動作と自動起動を許可してください。アプリが通知付きのフォアグラウンドサービスを提供している場合は、正常な動作に必要な条件を維持します。すべてのアプリの省電力制限を一度に解除しないでください。同じネットワークで画面点灯中、ロック中、復帰後のリクエストをそれぞれテストし、切断が一定の条件で起きるか記録して、プロセス管理とネットワーク切り替えのどちらが原因かを調べます。

AndroidのプライベートDNS、ブラウザーのセキュアDNS、クライアントのDNSは別々の設定です。ドメインの名前解決に失敗したら、まず各設定を記録し、同時に変更しないでください。システムのプライベートDNSが厳格モードの場合、指定サーバーに接続できないと通信に影響することがあります。ブラウザーが独自に名前解決すると、ドメインによる振り分けの確認結果も変わる場合があります。まず確実に把握できる基準の状態に戻し、項目を一つずつ有効にして、ノードの速度だけでなく、接続ログのドメインとエラーの種類を確認してください。

Wi-Fiからモバイルネットワークに切り替えると、通信事業者のネットワーク、IPv6経路、UDPの利用条件が変わる場合があります。まず接続を一時停止して通常のネットワークが使えることを確認し、再接続後に新しいリクエストをテストします。特定のプロトコルだけ失敗する場合は、サービス提供元が明示的にサポートする別のノードと比較してください。記録を残さずにコアの設定を大量に変更するのは避けます。外出前に必要な設定のコピーを保存できますが、ノードが使えるかどうかはサービスの状態によります。ローカルに設定があるだけでは、リモートの出口へ常に接続できるとは限りません。

05 / IOS

iOS:Clash Plusのインストール、設定の読み込み、システムVPN

App Storeからインストールし、対応状況を確認する

iPhone・iPadでは、iOSダウンロードからClash Plusを入手するか、App Storeのページを直接開いてください。クライアントの公式サイトはclashplus.ioです。インストール前にストアのページでデバイスの互換性とシステム要件を確認してください。インストール後はアプリを開いて、設定と接続の画面を確認します。macOSのメニューバー向けガイドや、デスクトップの補助サービスの手順をスマートフォンに当てはめないでください。

iOSの通信取り込みは、システムが提供する拡張機能を利用するため、アプリのスイッチや設定項目はデスクトップクライアントと異なります。パソコンで解析できたmihomo設定でも、TUN、ファイルパス、外部コントローラー、スクリプトの設定がスマートフォンで動作するとは限りません。読み込む前にアプリの対応設定を確認してください。未対応の項目がある場合は、設定全体を無差別に削除せず、サブスクリプション提供元に対応形式を問い合わせます。

サブスクリプションの読み込みとリモート更新

Clash Plusの設定またはサブスクリプション画面でリモートURLを追加し、アプリの案内に従って名前を付けて保存します。貼り付けた後、URLの先頭と末尾、パラメーターが欠けていないか確認してください。メモアプリやチャットからコピーすると改行が混入することがあります。ダウンロード後に項目を選び、プロキシグループが表示されてからノードを選択します。システムの共有機能から読み込める場合でも、最終的に読み込まれた項目を確認してください。同じ名前のサブスクリプションが重複し、古い設定で接続していることがあります。

サブスクリプションの更新では、通常、リモートの内容が再ダウンロードされます。手動での変更がすべて維持されるとは限りません。初回接続後に設定名、モード、プロキシグループの選択を記録し、更新後にグループ構成が変わっていないか確認してください。サブスクリプションURLを公開共有のメモやスクリーンショットに保存しないでください。端末を買い替える前に、アプリが対応するエクスポートまたはシステムバックアップで必要な情報を保存し、機密URLがバックアップに含まれるか確認します。同期の手軽さとアクセス権の管理は別の問題です。

VPN設定を許可し、実際の通信を確認する

初めて接続するとき、システムがVPN設定の追加を求め、端末のパスコードや生体認証で確認する場合があります。表示されたアプリ名を確認して許可し、クライアントに戻って接続結果を待ちます。以前に許可を拒否した場合は、再度接続を開始し、現在のシステムの案内に従ってください。システム設定のVPN一覧で、設定がどのアプリに属するか確認できます。アプリを使うためだけに、用途が分かっている会社や学校の設定を削除しないでください。

VPNアイコンは関連する接続状態を示すもので、対象サイトへの通信が選んだプロキシを通った証拠にはなりません。まずルールモードでノードを明示的に選び、新しいWebページを開いてから、クライアントの接続ログで該当ドメインとプロキシ経路を確認します。DIRECTに一致していれば、ルールが直接接続を選んでいます。プロキシ経路に入ったのにタイムアウトする場合は、出口と接続先を調べます。初回確認には通常のブラウザーのページを使い、ログインキャッシュ、アプリストアのセッション、プッシュ接続だけで判断しないでください。

Wi-Fiプロキシとネットワーク拡張の設定を混同しない

iOSのWi-Fi詳細画面にもHTTPプロキシ設定がありますが、クライアントが作成するVPN拡張とは別の接続経路です。以前にローカルまたはLAN上のプロキシを手動で設定したことがある場合は、まず記録し、現在も有効か確認します。モバイル通信では特定のWi-Fiに設定した手動プロキシは引き継がれません。そのため「Wi-Fiでは使えるが、モバイル通信では使えない」場合は、それぞれ別に原因を調べてください。初回のトラブルシューティングでは、必要な接続経路だけを有効にして、複数の方式を重ねないようにします。

同じ端末の他のVPN設定、コンテンツフィルター、デバイス管理ポリシーも接続に影響する場合があります。接続直後に別のツールへ切り替わる場合は、システムのVPN状態と関連ツールの自動接続設定を確認してから、どの設定を使うか決めます。オンデマンド接続がアプリにある場合は、手動接続が安定してから有効にし、起動条件を確認してください。未検証の設定で、操作を省くためにすべての自動再接続を有効にしないでください。

画面ロック、ネットワーク切り替え、モバイル端末のトラブル対処

iOSでは、アプリ画面とネットワーク拡張のライフサイクルは別です。アプリがバックグラウンドに移ったからといって、拡張機能が停止するとは限りません。反対に、画面が表示されたままでも拡張機能が正常とは限りません。画面ロックやネットワーク切り替え後に接続できなくなったら、まず通常のネットワークを確認し、クライアントを開いて接続状態と最新ログを見ます。アプリを繰り返し強制終了することを恒常的な対処にしないでください。強制終了で動作状態が変わり、再現条件が不安定になる場合があります。

モバイル通信で問題が起きたら、アプリにモバイルデータ通信が許可されているか、契約中のネットワークが正常か、ノードが現在のネットワーク条件に対応しているかを確認します。特定のアプリだけで問題が起きる場合は、ブラウザーと比較してから、ドメインルールと接続先サービスの制限を調べてください。ログがDNSエラーを示す場合は名前解決を、接続タイムアウトを示す場合は出口を確認します。証明書エラーの場合は端末の時刻と接続先の証明書を確認し、証明書チェックを無効にして修正の代わりにしないでください。クライアントを切断しても問題が続く場合は、Wi-Fiプロキシの設定残りや他のVPNの状態を確認します。

06 / LINUX

Linux:パッケージ、デスクトップのプロキシ、コアサービス

デスクトップクライアントと単体コアを区別する

デスクトップユーザーはLinuxダウンロードへ進み、Clash Verge Revを第一候補として、FlClashも検討できます。ディストリビューションのパッケージ管理方式に合う形式を選び、CPUアーキテクチャも確認してください。Debian系とRPM系のパッケージは、拡張子を変えただけでは相互に使用できません。ダウンロードページに該当する組み合わせがない場合、別アーキテクチャのファイルが動作すると決めつけないでください。Mihomo単体は、コマンドライン、サーバー、ルーターへの導入が明確に必要な場合に向いています。

デスクトップアプリをインストールする前に、パッケージ管理ツールが表示する依存関係を確認してください。依存関係を強制的に無視して、GUI環境の不足を隠さないでください。最小構成のサーバーには通常、完全なデスクトップ環境がありません。GUIアプリをインストールできても、バックグラウンドサービスとして使う用途には適しません。インストール後は一般ユーザーとしてGUIを起動し、サブスクリプションの保存先に書き込めること、設定を読み込めることを確認します。TUNやサービス操作に必要な場合に限り、クライアントの手順に従って権限を許可してください。

設定を読み込み、デスクトップ環境のプロキシを確認する

GUIクライアントでサブスクリプションURLを追加し、ダウンロード後に設定を有効にして、プロキシ画面でノードを選びます。Linuxのデスクトップ用システムプロキシは、GNOMEやKDEなどの設定機構に依存します。スイッチがデスクトップ設定に反映されても、すべてのアプリがその設定を参照するとは限りません。サンドボックスアプリ、ブラウザー、ターミナルで異なる経路が使われる場合があります。最初にプロキシを明示してコアの待ち受けを確認し、問題がデスクトップ設定の反映にあるかを調べてください。初めからTUNを変更する必要はありません。

次の環境変数が影響するのは、現在のシェルと、そこから起動する子プロセスだけです。すでに起動中のプログラムには反映されません。ポートはクライアントと一致させてください。no_proxyはローカル接続などをプロキシの対象外にするために使います。実際の除外項目はアプリの対応に合わせて設定します。テスト後はターミナルを閉じるか、環境変数を削除してください。試験用の値をすぐに全体の起動設定へ書き込むと、クライアントが起動していないときに、パッケージ管理ツールや開発ツールまで接続できなくなるおそれがあります。

Shell · 現在のセッションのプロキシ
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 --head https://example.com/
unset http_proxy https_proxy no_proxy

単体コアは事前に確認してから起動する

Mihomoを単体で使う場合は、ダウンロードページのコア欄からOSとアーキテクチャを選びます。展開したファイルを管理できるディレクトリに置き、実行権限を設定してください。設定用ディレクトリとconfig.yamlを用意し、実行ユーザーが設定を読み込めること、必要なキャッシュを書き込めることを確認します。次のコマンドは、実行ファイルをmihomoとし、設定を現在のユーザーの指定ディレクトリに置いた場合の例です。まず設定をテストし、前面で起動してエラーを確認します。安定動作を確認してからサービス化を検討してください。

Shell · 設定テストとフォアグラウンド起動
chmod u+x ./mihomo
./mihomo -t -d "$HOME/.config/mihomo"
./mihomo -d "$HOME/.config/mihomo"

設定テストに合格したことが示すのは、静的な構造などの検査に通ったことだけです。リモートノードの稼働、ルール用リソースのダウンロード、システムルートへの書き込みが保証されるわけではありません。前面で起動したら、待ち受けアドレスとポート、設定の読み込み結果を確認し、プロキシを明示してリクエストを送ります。サービスとして実行する場合は絶対パスを使い、実行ユーザー、作業ディレクトリ、設定ディレクトリを明確にしてください。対話型ターミナルの環境変数はシステムサービスに自動では引き継がれず、サービスプロセスのホームディレクトリはデスクトップユーザーのホームディレクトリとは限りません。

TUN、DNS、権限管理

TUNを利用するには通常、/dev/net/tunへのアクセスと、ネットワークを設定する権限が必要です。コンテナ、制限されたホスト、ルーターのファームウェアでは同じ条件がそろわない場合があります。デバイスが存在しない、または操作が許可されないと表示されたら、まずホスト環境が対応しているか確認してください。権限の問題をDNSの変更で解決しようとしないでください。クライアントが対応するサービス方式を優先し、自作サービスでは必要最小限の権限を検討します。GUIセッション全体をrootで実行する方法を標準手順にしないでください。

LinuxではNetworkManager、systemd-resolved、ローカルDNSサービスを併用している場合もあります。DNSを取り込む前に、待ち受けているサービスと名前解決の経路を確認してください。/etc/resolv.confを直接上書きしないでください。システムが管理し、ローカルのスタブを参照している場合があります。変更後に一時的に直っても、ネットワーク再接続後に戻る場合は、管理サービスが再度書き換えている可能性があります。元の設定を保管し、どのレイヤーが名前解決を管理しているか確認してから、クライアントが対応する方式で統合してください。

ポートの確認にはss -lntp、ルートの確認にはip routeを使えます。他のユーザーのプロセス情報を読むには追加の権限が必要な場合があります。プロキシポートやコントローラーのインターフェースを全アドレスで待ち受ける設定にして、そのままインターネットに公開しないでください。終了やアンインストール時は、まずサービスを停止し、プロキシ環境変数を解除して、通信を取り込むルートを元に戻してから、通常のネットワーク接続を確認します。システムプロキシが正常でも特定のターミナルアプリが失敗する場合は、コアの障害と決めつけず、そのアプリ独自のプロキシ設定も確認してください。

07 / CONFIGURATION & DIAGNOSTICS

設定に関するよくある質問:リクエストの経路を順に確認する

設定を解析できても、使える出口があるとは限らない

YAMLは空白で階層を表し、リスト項目のハイフンも必要です。タブを混在させないでください。設定の断片を追加する前に、既存のトップレベルキーを確認します。rulesやproxy-groupsを重複して記述すると、上書きされたり拒否されたりする場合があります。プロキシグループが参照する名前は実在し、大文字・小文字や句読点も一致している必要があります。次はmihomoで使える、DIRECTのみの最小診断設定例です。待ち受け、モード、ルールの経路だけを確認でき、リモートのプロキシノードは含まれません。プロキシサービスの動作確認には使えません。

config.yaml · 単体DIRECT診断の例
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxy-groups:
  - name: CHECK
    type: select
    proxies:
      - DIRECT
rules:
  - MATCH,CHECK

この設定でプロキシを明示したリクエストが成功し、元のサブスクリプションで失敗する場合は、元の設定にあるノード、グループの参照、ルール用リソースを確認してください。ローカルの待ち受けにも接続できない場合は、プロセス、ポート、ファイアウォールを先に調べます。唯一のサブスクリプションファイルを診断設定で上書きせず、ローカルに新しい項目を作って元のファイルを保管してください。診断後は元の設定へ戻し、現在有効な項目を確認します。DIRECTのみのテスト環境をプロキシ接続と誤認しないようにしてください。

サブスクリプションの取得失敗とルールが適用されない問題を見分ける

サブスクリプションのダウンロードに失敗したら、まずエラーの種類で切り分けます。接続エラーなら通常のネットワークとサブスクリプションのドメイン、認証エラーならURLの認証情報とサービスの状態、ダウンロード後の解析エラーなら返された内容と形式を確認してください。サブスクリプションURLへの接続に既存のプロキシが必要なのに、そのプロキシにはサブスクリプションが必要な場合、起動時の依存関係が発生します。提供元にアクセス可能な入口を問い合わせるか、以前使えたローカルバックアップを利用してください。ノードがない状態でグローバルモードを何度も有効にしても、自動では解決しません。

ルールは記述順に評価されるため、範囲の広いルールが先にあると、後続の細かいルールに到達しません。ドメインルールを追加するときは、ブラウザーのアドレス欄をそのままコピーするのではなく、実際にリクエストされるドメインを確認します。ログイン、画像、APIは異なるドメインを使う場合があります。接続ログに表示される一致ルールとプロキシ経路を証拠として照合してください。GeoIPデータを使うルールにはリソースの読み込みも必要です。データベースの形式と更新方法は現在のコアに合わせ、古いガイドのファイル名やディレクトリを流用しないでください。

自動プロキシグループの速度テスト結果は、テスト先、実行間隔、ネットワークの状態にも左右されます。url-testは主にテスト結果に基づいて選択し、fallbackは設定順に利用可能かを確認します。load-balanceはアルゴリズムに応じて接続を振り分けます。これらは異なるプロキシプロトコルではありません。ノードが頻繁に切り替わる場合は、固定の出口が必要かを先に確認してから設定を変更します。項目の詳細は自動プロキシグループの違いと設定方法をご覧ください。

入口、名前解決、出口、接続先の順に確認する

確認できた状況まず確認する項目次に行うテスト
接続画面に対象のリクエストがないシステムプロキシ、アプリのプロキシ、TUNのルートプロキシを明示して新しいリクエストを送る
リクエストは届くが、名前解決に失敗するDNSの上流サーバーと名前解決の取り込み別のドメインとシステムの名前解決を比較する
プロキシのハンドシェイクまたは接続がタイムアウトするノードの状態、プロトコル、通常のネットワーク接続別の利用可能なノードを手動で選ぶ
接続先サイトから拒否応答が返る接続先のポリシー、アカウント、出口の制限ネットワーク接続とサービスの利用権限を切り分ける

DNS設定では特にループに注意してください。コアが上流DNSに名前解決を依頼し、その上流サーバーへの接続に、まだ名前解決できていないプロキシサーバーのドメインが必要だと、起動できなくなる場合があります。設定によってはプロキシサーバー専用の名前解決設定で依存関係を解消できます。具体的な項目は使用中のコアを確認してください。fake-ipを有効にしたとき、システムの名前解決で返される合成アドレスを実際のグローバルIPアドレスとして共有したり、固定ルールに書き込んだりしないでください。アプリの互換性問題は、DNS設定一式をむやみに置き換えず、適切な除外ルールで切り分けます。

TCPは正常でもゲーム、音声通話などのUDP通信が失敗する場合は、ノード、サーバー、クライアントが必要なUDP経路に対応しているかを確認し、実際に通信が取り込まれているか調べます。TUNを有効にしても、もともと出口が対応していないUDP通信を使えるようにはできません。IPv6もOS、コア、DNS、出口の4層を合わせて確認してください。一つの層だけを無効にすると、結果がそろわない場合があります。変更後は毎回新しい接続でテストし、必要ならアプリの通常の手順で古いセッションを終了します。

証拠を残し、安全に元へ戻す

一時的にログレベルを上げる場合は、問題が起きた時刻、接続先ドメイン、一致したルール、エラーの概要を記録し、再現後は通常のレベルに戻してください。問い合わせ前に、サブスクリプションの認証情報、サーバーの認証情報、不要なアクセス履歴を隠します。OS、クライアント、コア、モード、通信の取り込み方式を伝えるほうが、接続失敗のスクリーンショット1枚より原因の特定に役立ちます。画面内の各パネルの意味が分からない場合は、プロキシ・設定・ログ画面の見方をご覧ください。

設定を戻すときは、変更した順序の逆に操作します。TUNを停止し、システムプロキシを無効にし、一時的な環境変数を解除してから、通常のネットワーク接続を確認してください。通常のネットワークが復旧したら、設定、手動で選ぶ出口、システムプロキシの順に戻し、最後にTUNと自動プロキシグループをテストします。1回の確認で変更する項目は一つにし、結果を記録してください。一連の操作を最初から確認する場合はクイックスタートガイドへ、クライアントを変更する場合はダウンロードページで対応状況とインストール要件を確認してください。移行をトラブルシューティングの代わりにしないでください。

クライアントをダウンロード