Clash Verge RevをWindowsで使うとき、ノードの切り替えや接続状況の確認を毎回アプリの画面から行うのは少し面倒です。外部コントローラーを有効にすると、ClashのREST APIとWeb UIを利用して、ブラウザからプロキシグループ、現在の接続、通信量、ルールの適用状況などを確認できるようになります。特に複数のノードを使い分ける場合や、通信が遅い原因を調べたい場合に便利な機能です。この記事では、Clash Verge RevのWindows版を対象に、外部コントローラーを安全に有効化し、Web操作を開始するまでの手順を説明します。
外部コントローラーの役割と仕組み
Clashの外部コントローラーは、Clashのコアが提供するHTTP APIの待ち受け機能です。Clash Verge Revの画面そのものを遠隔操作するのではなく、APIを通して現在の状態を取得したり、プロキシグループの選択を変更したりします。そのAPIに対応したWeb UIを組み合わせることで、ブラウザ上にダッシュボードを表示できます。
代表的な操作には、プロキシグループ内のノード切り替え、ノードの遅延テスト、現在のアップロード・ダウンロード速度の確認、アクティブな接続の確認、ルールによって選ばれた出力先の確認などがあります。Clashを再起動せずに設定状態を確認できるため、設定ファイルを何度も開く必要がありません。
| 項目 | 内容 | おすすめ設定 |
|---|---|---|
external-controller | APIサーバーの待ち受けアドレスとポート | 127.0.0.1:9090 |
secret | Web UIからAPIへ接続するための認証トークン | 推測されにくい長い文字列 |
external-ui | ローカルWeb UIの保存先 | 必要な場合のみ設定 |
external-ui-url | Web UIを取得するためのURL | 信頼できる公式配布元のみ使用 |
自分のWindowsパソコン上のブラウザだけで操作するなら、待ち受けアドレスは127.0.0.1を選ぶのが基本です。0.0.0.0を指定するとLAN上の他の端末からも接続できる可能性があるため、スマートフォンなどから操作する明確な理由がない限り避けてください。
設定前に確認すること
Clash Verge Revを起動したら、まず使用中のコアと設定プロファイルを確認します。Clash Verge Revでは、プロファイルの内容を直接編集する方法と、アプリの設定画面から外部コントローラーを指定する方法があります。バージョンや使用するコアによって項目名が少し異なるため、画面に表示される「Mihomo」「Clash Meta」「External Controller」「External Controller Secret」などの表記を確認してください。
設定を変更する前に、現在のプロファイルをバックアップしておくと安心です。プロファイルを更新すると、手動で追加した項目が上書きされることがあります。サブスクリプションから自動更新される設定を使っている場合は、編集可能なオーバーライド設定、またはアプリ側の補助設定に記述するほうが管理しやすい場合があります。
- Clash Verge Revが起動していることを確認する
- 現在使用しているプロファイル名とコアを確認する
- 設定変更前にプロファイルのバックアップを保存する
- ポート番号が他のアプリと重複していないか確認する
- Web UIを外部公開する必要が本当にあるか検討する
secretを空欄にしたまま0.0.0.0で待ち受けると、同じネットワーク上の端末から操作される危険があります。ローカル利用でも、認証トークンを設定する運用をおすすめします。Windows版で外部コントローラーを有効にする
最初に、Clash Verge Revの設定画面を開きます。アプリの左側メニューまたは歯車アイコンから設定へ移動し、コア設定、一般設定、または外部コントローラーに関する項目を探します。入力欄が用意されている場合は、アドレスに127.0.0.1:9090、Secretに自分で決めた認証文字列を入力します。保存後、必要に応じてコアを再起動します。
設定欄が見つからない場合や、プロファイルへ直接記述する構成では、次のようなYAMLを使用できます。すでに同じキーが存在する場合は、重複させずに値を編集してください。
external-controller: 127.0.0.1:9090 secret: change-this-to-a-long-random-secret # ローカルUIを使う場合のみ指定 external-ui: ui
9090はよく使われる例ですが、必ずしも固定ではありません。別のプログラムが使用している場合は、9091や19090など空いているポートへ変更できます。ただし、Web UIへ接続するときのバックエンドアドレスも同じ番号に合わせる必要があります。
YAMLを直接編集する場合は、インデントや全角記号に注意してください。今回の3項目はトップレベルの設定なので、先頭に余分なスペースを入れません。保存した後、Clash Verge Revでプロファイルを再読み込みし、エラー表示がないことを確認します。設定が反映されないときは、サブスクリプション更新によって元の設定に戻っていないか確認してください。
安全なSecretを作成する
Secretは、Web UIがAPIへ送るBearer認証用の文字列です。名前や誕生日のような推測しやすい値、複数のサービスで使い回しているパスワードは使用しないでください。Windows PowerShellでランダムな文字列を作成する例は次のとおりです。
[Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }))
生成した値をsecretへ設定し、後でWeb UIの接続画面にも同じ値を入力します。Secretを変更した場合、以前に保存されたWeb UIの接続情報が使えなくなることがあります。その場合は、Web UI側の接続設定を削除して新しい値を登録してください。
ブラウザからWeb UIへ接続する
外部コントローラーを有効化したら、APIに対応したダッシュボードを開きます。Web UIには、オンラインのCDN版をブラウザで開く方法と、ローカルへ配置してClashから配信する方法があります。初めて試す場合はCDN版が簡単ですが、接続情報を入力するページのURLや配布元が信頼できるものか確認してください。
Web UIの接続画面では、通常次の2項目を入力します。バックエンドアドレスはClash APIのURL、SecretはClash Verge Revに設定した認証文字列です。
- バックエンドアドレス:
http://127.0.0.1:9090 - Secret:Clash Verge Revの
secretと同じ値
接続に成功すると、プロキシグループやノード一覧が表示されます。プロキシ画面ではグループを選び、使用したいノードをクリックします。切り替え後は、現在選択されているノードの表示が変わることを確認してください。多くのWeb UIでは、ノードの遅延測定ボタンを押して、応答時間を比較することもできます。
通信状況を調べるときは、接続一覧を開きます。宛先ドメイン、適用されたルール、使用中のプロキシグループ、送受信バイト数などを確認できます。例えば、直接接続にしたいサイトがプロキシ経由になっている場合は、接続のルール表示から原因を追跡できます。設定ファイルを推測するよりも、実際の接続結果を見ながらルールを修正できる点がWeb UIの大きな利点です。
http://127.0.0.1:9090を試してください。ポートを変更した場合は、その番号に置き換えます。ローカルWeb UIを使う方法
毎回オンラインのWeb UIを開きたくない場合は、ダッシュボードをローカルに保存してClashから配信できます。Mihomo系コアではexternal-uiでUIフォルダーを指定し、対応している場合はexternal-ui-urlから初回起動時にUIを取得できます。オンライン取得を使う場合は、URLが公式プロジェクトまたは信頼できる配布元であることを確認してください。
external-ui: ui external-ui-url: https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip
この方式では、UIファイルがClashの作業ディレクトリ内に展開されます。コアやアプリの権限によって保存場所が異なるため、設定後にClashのログを確認し、ダウンロードと展開が成功したかを確認してください。すでに別のUIを配置している場合は、同じフォルダーを上書きしないようにバックアップを作成します。
ローカルUIが正常に展開された後は、対応するアドレス、例えばhttp://127.0.0.1:9090/ui/へアクセスします。ただし、UIのパスはコアやダッシュボードの構成によって異なる場合があります。トップページが開かない場合は、まずCDN版からAPIへ接続できるか確認し、その後にローカルUIの配置場所とパスを調べると切り分けが容易です。
接続できない場合の確認手順
外部コントローラーを設定したのにWeb UIが接続できない場合、原因の多くはアドレス、ポート、Secret、コアの再起動のいずれかです。次の順番で確認すると、設定をむやみに変更せずに原因を絞り込めます。
- Clash Verge Revが起動しており、プロキシコアが実行中か確認する
- 設定のアドレスとWeb UIのアドレスが同じか確認する
127.0.0.1の代わりに別のIPを入力していないか確認する- ポート番号が他のアプリと競合していないか確認する
- Secretの前後に空白や改行が入っていないか確認する
- 設定保存後にプロファイルまたはClashコアを再起動する
- Clash Verge RevのログでAPI起動エラーを確認する
Windowsのファイアウォールが原因に見える場合でも、まず127.0.0.1でのローカル接続を試してください。ローカルホスト接続までブロックされているケースは比較的少なく、ポートの入力ミスや設定の未反映のほうが一般的です。PowerShellからポートの待ち受け状態を調べるには、次のコマンドを使えます。
Get-NetTCPConnection -LocalPort 9090 -ErrorAction SilentlyContinue
何も表示されない場合は、Clashがそのポートで待ち受けていない可能性があります。設定のキー名がコアでサポートされているか、プロファイルが実際に読み込まれているか、コアがエラーで停止していないかを確認してください。一方、待ち受けが確認できるのに認証エラーになる場合は、Secretの不一致が疑われます。
安全に運用するためのポイント
外部コントローラーは便利ですが、APIを管理機能として扱うことが重要です。通常のWindows利用では、127.0.0.1に限定し、強力なSecretを設定するだけで大きなリスクを減らせます。LAN内のスマートフォンから操作するために0.0.0.0を使う場合は、ルーターやWindowsファイアウォールで許可範囲を限定し、必要なときだけ有効化してください。
- 外部公開が不要なら必ず
127.0.0.1を使用する - Secretを設定ファイルや画面共有に不用意に公開しない
- HTTP APIをインターネットへ直接公開しない
- 使わなくなったWeb UIの保存情報をブラウザから削除する
- サブスクリプション更新後に外部コントローラー設定が残っているか確認する
- ログやスクリーンショットを共有するときはSecretとサーバー情報を隠す
設定が完了すれば、ノードを切り替えるたびにYAMLを編集したりClashを再起動したりする必要はありません。まずはローカルホスト限定のAPIと認証付きWeb UIから始め、プロキシグループの選択、接続ログ、ルールの適用結果を確認する運用がおすすめです。Clash Verge Revをまだ導入していない場合は、Windows版をセットアップしてから外部コントローラーを有効にすると、より快適に通信を管理できます。
Clash でトラフィックを完全制御
Windows・macOS・Linux・Android・iOS 対応。柔軟なルール、すぐに使えます。