はじめに / 初期設定

Clashのサブスクリプション取り込み
と接続設定

まず設定を有効にし、「ルール」モードを選んでから、リクエストの通信経路を確認します。以下の4ステップで、初期設定は約10分で完了します。エラーが出たらその手順で確認し、何度も再インストールする必要はありません。

事前準備:有効なサブスクリプションを用意

クライアントをインストールしただけでは、プロキシの出口は利用できません。有効な設定サブスクリプションURL、またはプロキシとルーティング設定を含むYAMLファイルが必要です。サブスクリプションは利用するサービスの提供元から入手してください。当サイトではプロキシノードやサブスクリプションアカウントを提供していません。サービスの管理画面で「Clash」「Clash Meta」または「Mihomo」と表示されたサブスクリプション項目を探し、URL全体をコピーします。ブラウザーのアドレスバーに表示されたアカウント管理ページのURLを、サブスクリプションURLと取り違えないようにしてください。

初回設定時は、ネットワークを制御しているほかのプロキシクライアントやVPNアプリを終了することをおすすめします。プロキシ未接続の状態で通常のウェブページを開けることと、端末の日付・時刻が正しいことを確認してください。こうしておくと、問題が起きた際に、もともとのネットワーク、サブスクリプションのダウンロード、新しい設定のどれに原因があるか切り分けやすくなります。デスクトップでは、まずTUNを有効にしたりDNSを変更したりせず、必要最低限の設定で接続を確認しましょう。

サブスクリプションURLにはアカウントを識別する情報が含まれる場合があるため、パスワードと同様に慎重に保管してください。URL全体を公開コメント欄に貼り付けたり、出所の分からないオンライン変換サイトに渡したりしないでください。問い合わせる際は、エラーメッセージ、クライアント名、操作手順だけを共有し、スクリーンショットに写ったサブスクリプションURLやアカウント情報は隠してください。

01 サブスクリプションを追加して設定を有効化

クライアントの「設定」または「サブスクリプション」画面を開き、「URLからインポート」「サブスクリプションを追加」など、URLの追加にあたる項目を探します。先ほどコピーしたサブスクリプションURLを省略せずに貼り付けます。名前の入力欄があれば、自分が識別しやすい名称を付けてください。URLの先頭と末尾を確認し、説明文や空白、改行が一緒にコピーされていないことを確かめてから、「インポート」「ダウンロード」または「保存」をクリックします。通常、クライアントが内容を取得し、プロキシ、プロキシグループ、ルールを解析します。

ダウンロードが完了すると、設定カードまたはファイルの一覧に名前や更新日時が表示されます。インポート後は、その設定を有効にしてください。設定カードをクリックするか、メニューから「使用」「有効化」などを選びます。現在の設定を示すマークが新しい項目に移ったことを確認してから、「プロキシ」画面を開きます。プロキシグループと選択肢が表示されていれば、設定がコアに読み込まれています。一覧にファイルが表示されただけでは、設定が有効になったとは限りません。

YAMLファイルをインポートする場合

サービス提供元からローカルファイルを受け取った場合は、同じ設定画面で「ファイルからインポート」を選び、ダウンロードした .yaml または .yml ファイルを指定して、前述の手順で有効にします。ウェブページを保存して拡張子だけ変更しないでください。ログインページが保存されている可能性があります。ファイルからのインポートは通常ローカルコピーとして扱われ、更新に対応するかどうかはクライアントと設定の配布元によって異なります。URL経由の自動更新に対応したサブスクリプションと同じものだと考えないでください。

インポートに失敗したら、まず失敗した段階を確認

ダウンロードがタイムアウトした、または接続できないと表示された場合は、まず元のネットワークからサブスクリプションの配布元にアクセスできるか、URLの有効期限が切れていないかを確認します。この時点では設定がまだ読み込まれていない可能性があるため、すぐにプロキシモードを変更しないでください。yaml: unmarshal errors、形式エラー、解析エラーが表示される場合は、取得した内容とクライアントが対応する設定形式を確認します。URLからウェブページやエラーメッセージが返されている、またはClash用の設定ではない可能性があります。意味を確認せずに、メッセージを消すためだけに設定全体を削除しないでください。

サブスクリプションを更新した後は、現在の設定を示すマークを確認し、意図した項目が引き続き使用されていることを確かめてください。サービス側でプロキシグループ名が変更され、以前選んだ出口が使えなくなる場合もあります。YAMLとほかのサブスクリプション形式の違いは、用語解説の「サブスクリプションと設定ファイル」をご覧ください。ダウンロードに繰り返し失敗する場合は、トラブル対処のサブスクリプション関連の手順を確認してください。この手順の完了条件は、設定が有効で、プロキシ画面に対応するプロキシグループが表示されていることです。確認できたらモード選択に進みます。

02 ルールモードと出口を選ぶ

設定の読み込み後、ホーム画面、「プロキシ」または「設定」から「ルール / グローバル / 直結」のモード選択を開きます。初回は「ルール」を選びます。対応する設定キーは mode: rule です。このモードでは、読み込んだ設定のルールに従ってリクエストの出口を選びます。たとえば、一部のリクエストを直結し、ほかのリクエストを指定したプロキシグループに送ります。通信の振り分けは設定内容によって決まり、モード名だけでクライアントがすべてのサイトの用途を判断するわけではありません。

次に「プロキシ」画面を開き、ルールから実際に参照されているメインのプロキシグループを探します。「Proxy」「ノード選択」のような名前や、サービス提供元独自の名前が付いている場合があります。読み込んだ設定に合わせればよく、チュートリアルと同じグループ名を探す必要はありません。グループを開き、利用可能なプロキシ出口を選びます。グループ内に「自動選択」や「フォールバック」のサブグループがある場合は、設定の意図に沿って選んでも構いません。ただし、そのサブグループに利用可能な項目が含まれていることを確認してください。

プロキシモードの切り替えと、プロキシグループの出口選択は別の操作です。「ルール」モードでも、ルールが参照するプロキシグループで DIRECT を選んでいれば、該当するリクエストは直結します。反対に、ルールから参照されていないプロキシグループの出口を変更しても、現在表示しているウェブページには影響しない場合があります。初回のテストではメインのプロキシグループだけを変更し、元の選択を記録しておきましょう。比較できる状態を保つため、すべてのグループを変更するのは避けてください。

グローバルモードと直結モードの使い分け

「グローバル」では、コアが処理するリクエストをグローバルプロキシグループに送ります。一時的な比較に便利です。同じウェブページがルールモードでは失敗し、グローバルモードでは表示できる場合は、ルールの適用先やプロキシグループの選択を確認します。ただし、端末上のすべてのアプリが自動的に制御されるわけではありません。アプリの通信がコアに入るかどうかは、システムプロキシ、VPN、TUNの設定によって異なります。グローバルに切り替えた後は、グローバルプロキシグループで選択されている出口も確認してください。モードを切り替えるだけでは確認は完了しません。

「直結」では、コアが処理するリクエストをプロキシを使わずに接続します。一時的にプロキシ出口を経由しない状態と比較するのに便利ですが、クライアントが終了するわけではなく、システムプロキシの設定が解除されるとも限りません。テスト後は「ルール」に戻し、メインのプロキシグループの選択も確認してください。プロキシグループ、ルール、出口の関係が分からない場合は、プロキシグループの解説をご覧ください。普段の使い方はFAQで紹介しています。このページでは、引き続き基本の接続を確認します。

03 接続とシステムによる通信制御を開始

クライアントのホーム画面または「設定」に戻り、コアが動作中であることを確認します。起動と同時にコアが動作するデスクトップクライアントもあれば、「起動」を押す必要があるものもあります。コアの起動に失敗した場合は、ログにある最初の関連エラーを確認し、ほかのスイッチをむやみに有効にしないでください。システムプロキシがアプリのリクエストを正しい接続先に送るには、ローカルプロキシが正常に待ち受けている必要があります。システムプロキシのスイッチがオンでも、コアが動作しているとは限りません。

デスクトップでは先にシステムプロキシを有効化

WindowsやmacOSなどのデスクトップ環境では、まず「システムプロキシ」を有効にし、TUNはオフのままにします。システムプロキシを有効にすると、通常はシステムのプロキシ設定に従うブラウザーやアプリの接続先が、ローカルの待ち受けアドレスに切り替わります。有効にした後もクライアントは起動したままにしてください。プロセスを終了してもシステムプロキシがローカルポートを参照していると、ブラウザーが接続できなくなる場合があります。Linuxはデスクトップ環境によってプロキシへの対応が異なり、アプリごとの設定が必要な場合もあります。スイッチの状態だけで、すべてのアプリの通信が制御されているとは判断できません。

ブラウザーに独自のプロキシ切り替え拡張機能がある場合は、システム設定を使うように切り替えるか、一時的に無効にします。クライアントが設定したプロキシアドレスが上書きされるのを防げます。同時に、ほかのプロキシソフトやVPNの接続も停止してください。まずは1つのクライアントだけで通信を制御し、基本の接続を確認してから、複数のツールを組み合わせるか検討しましょう。この段階で設定、ポート、モードを同時に変更すると、問題の原因を特定しにくくなります。

モバイルではシステムのVPN接続を許可

AndroidとiOSでは通常、「接続」または「起動」をタップすると、システムのVPN接続許可画面が表示されます。インストールしたばかりの、現在操作しているクライアントからの確認であることを確かめてから許可してください。アプリに戻って接続状態を確認し、システムのVPN表示からトンネルが確立していることも確認します。VPNの表示は通信を制御する方式を示すもので、サブスクリプションに含まれるすべての出口が利用可能という意味ではありません。後ほどウェブページと接続記録でも確認してください。

別のVPNが使用中だとシステムに表示された場合は、もう一方のアプリを切断してから、現在のクライアントで再接続してください。Androidでバックグラウンドにすると頻繁に切断される場合は、初回の動作確認後にバッテリー最適化やバックグラウンド実行の制限を確認します。iOSでは、システムのVPN設定で現在の接続構成が正しいか確認してください。バックグラウンドでの動作維持と、初回のサブスクリプション追加の問題を一緒に扱わないでください。詳しい手順はモバイル版のトラブル対処をご覧ください。

ローカルポートを確認(変更は後回し)

デスクトップ版の「ポート設定」では、混合ポートに mixed-port: 7890 がよく使われ、HTTPとSOCKSの両方のプロキシ接続を受け付けます。ただし、設定によってポート番号は異なるため、実際に待ち受けている番号を確認してください。アプリにプロキシを手動で設定する場合、アドレスは通常 127.0.0.1、ポートにはクライアントに表示されている混合ポートを指定します。external-controller: 127.0.0.1:9090 はコントロール用のインターフェースであり、ブラウザーの接続に使うプロキシポートではありません。間違えて指定しないでください。

ログに address already in use と表示されたら、まずポートを使用している別のクライアントを終了し、起動し直してください。混合ポートを変更する必要がある場合は、元の値を記録してから新しい値を保存し、クライアントの指示に従って再読み込みします。その後、システムプロキシや、手動で設定したアプリも新しいポートを使っていることを確認してください。初回設定では「LAN内の接続を許可」を有効にする必要はありません。これはほかの端末からこの端末へのアクセスに関する設定で、現在の端末が接続できるかどうかとは別の問題です。

04 ウェブページと実際の通信経路を確認

ブラウザーを開いて新しいタブを作り、現在の設定でプロキシ経由になる想定のサイトと、直結になる想定のサイトにアクセスします。使い慣れていて普段から表示できるページを選び、知らないテストサイトだけで判断しないようにしてください。必要に応じてページを再読み込みし、新しいリクエストを発生させます。ブラウザーのキャッシュや既存の接続が以前の状態を引き継ぐことがあるため、設定変更直後に開いたままのページを見ていると、新しい設定が反映されていないと誤解する可能性があります。

続いてクライアントの「接続」画面を開き、先ほどのウェブサイトを再読み込みします。該当するドメインの新しいリクエストを探し、適用されたルール、使用されたプロキシグループ、最終的な出口を確認してください。クライアントによっては、接続の詳細やリクエストの経路表示に情報が記載されています。ウェブページが開き、リクエストの経路も想定どおりであることが、ホーム画面の接続表示より確かな確認方法です。DIRECT と表示されても、必ずしも誤りではありません。そのサイトが本来直結する設定かどうかを確認してください。

ウェブページは開くが、接続画面に記録がない

まず、キャッシュが表示されただけではなく、新しいリクエストが実際に発生したことを確認します。次に、ブラウザーがシステムプロキシを使っているかを確認してください。特定のアプリだけ記録されない場合は、独自のプロキシ設定を使っているか、システムプロキシに従っていない可能性があります。すぐにサブスクリプションを変更せず、「通信がクライアントに届いていない」のか、「クライアントに届いた後、出口で失敗している」のかを切り分けます。さらに通信を制御する必要がある場合は、TUNを検討するか、アプリの説明に従ってプロキシを設定してください。

リクエストはクライアントに届くが、ウェブページが開かない

「ログ」画面を開き、まずは通常 info レベルで確認します。ページに再度アクセスして、同じ時刻に記録されたエラーを調べてください。i/o timeout は操作がタイムアウトしたことを示します。宛先や接続の段階とあわせて判断してください。no such host はドメイン名の名前解決に失敗したことを示し、connection refused は該当する接続が拒否されたことを示します。最後の単語だけで原因を決めつけず、発生時刻と該当リクエストをあわせて確認すると、原因を特定しやすくなります。

メインのプロキシグループで出口を1つ変更し、同じページだけを再試行して結果を確認します。それでも失敗する場合は、一時的にグローバルモードに切り替えて出口を確認し、ルールによる振り分けが原因かを比較します。その後は「ルール」に戻してください。タイムアウトが続く場合はノードのタイムアウト対処へ。ルールが地域判定やデータベースの読み込みに関係する場合は、GeoIP関連のトラブル対処を確認してください。ここまで確認できれば、むやみに再インストールせず、原因に応じた対処に進めます。

動作確認後は、再現できる設定を維持

2つのテストページがどちらも想定どおり表示されることを確認したら、現在の設定、「ルール」モード、動作確認済みのメインプロキシグループの選択を維持してください。サブスクリプションを更新する場合は、設定画面から「更新」を実行し、完了後に有効化されていることを確認します。新しい項目が一覧に表示されても、使用中の設定をむやみに削除しないでください。ルールを手動で変更する前に、復元できるコピーを保存し、クライアントの上書きやマージの仕組みを確認します。次回のサブスクリプション更新で手動変更が失われるのを防げます。

最後に、正常に切断できることを確認します。デスクトップでは先にシステムプロキシをオフにしてから、クライアントの「終了」操作でアプリを終了します。モバイルでは「切断」または「停止」を使います。通常のウェブページに引き続きアクセスできることを確認してから、再接続し、同じ操作を繰り返せることを確かめてください。起動時に自動接続したい場合は、Clashの起動時自動起動ガイドを読み、クライアントの起動、コアの起動、システムプロキシの有効化の違いを確認します。初回設定はここまでです。TUN、LAN内共有、カスタムDNSは、必要になった場合にのみ追加してください。