Clashのコアはヘッドレスなコマンドラインプロセスですが、完全なRESTful APIを搭載しており、外部ツールがHTTP経由でリアルタイムにステータスの確認、ノードの切り替え、設定の更新を行えます。ダッシュボードはこのAPI上に構築されたWebフロントエンドで、Clashを再起動することなくほぼ完全なコントロールを提供します。このガイドではAPI設定から完全なビジュアル管理環境の構築まで解説します。
外部コントローラーの有効化
ClashのAPIサーバーはexternal-controllerフィールドで有効化されます。config.yamlに以下を追加してください:
# Clash 外部コントローラー設定 external-controller: 127.0.0.1:9090 # ローカルのみアクセス可能(推奨) secret: your-api-secret # Bearerトークン認証;空にすると無効 external-ui: ui # ダッシュボード静的ファイル(Clashホームからの相対パス) external-ui-url: https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip
external-controllerを127.0.0.1にバインドするとAPIアクセスがローカルマシンのみに制限されます。LAN上の他のデバイスからアクセスが必要な場合(例:スマートフォンからルーターのClashを管理)は0.0.0.0:9090に変更できますが、不正なLANアクセスを防ぐために必ず強力なsecretを設定してください。
ダッシュボードの比較
| 名前 | 特徴 | ハイライト |
|---|---|---|
| Yacd | 軽量クラシック | クリーンなUI・低リソース消費・基本機能をカバー。入門に最適。 |
| Yacd-meta | Mihomo強化版Yacd | Yacdにプロバイダー管理・接続詳細などMihomo固有の機能を追加。 |
| Metacubexd | フル機能・モダンUI | 完全なMihomo APIをサポート。リアルタイムトラフィックグラフ、ルールセット更新、接続トレース。推奨。 |
| Zashboard | ミニマリスト | ノード切り替えのみが必要なユーザー向けのシンプルなインターフェース。 |
Metacubexdのセットアップ(推奨)
MetacubexdはClashの最も機能が充実したダッシュボードです。プロジェクトはローカルインストール不要のCDNホスト版を提供しています。
方法1:CDNホスト版を直接使用
ブラウザでhttps://metacubex.github.io/metacubexd/にアクセスし、以下を入力:
- バックエンドアドレス:
http://127.0.0.1:9090 - シークレット:
config.yamlで設定したsecretの値
方法2:ローカルインストール(オフライン)
Mihomoのホームディレクトリにui/フォルダーを作成し、Metacubexdのgh-pagesブランチをそこに展開します。Clashを起動後、http://127.0.0.1:9090/ui/にアクセスするとローカルホストのダッシュボードを利用できます。
external-ui-urlを設定すると、Mihomoが初回起動時にダッシュボードファイルを自動的にダウンロード・展開します。手動インストール不要です。ダッシュボード内の「更新を確認」ボタンから後で更新することもできます。ダッシュボードの主要機能
プロキシノード管理
プロキシページにはすべてのプロキシグループとノードがカードとして表示されます。グループ内のノードをクリックすると即座に切り替わります。Clashの再起動は不要です。レイテンシ値の隣のカラーインジケーター(緑/黄/赤)でノードの健全性を一目で確認できます。
リアルタイム接続監視
接続ページはデバッグに最も役立つツールです。すべてのアクティブな接続には宛先ドメイン/IP、マッチしたルール(どのルールセットから)、使用されたプロキシグループ、転送バイト数、接続時間が表示されます。本来直接接続すべきアプリがプロキシされているなど、間違ったルートを取っている場合はここですぐに確認できます。
ルールセットとプロバイダー管理
Mihomoのダッシュボードでは、読み込まれたすべてのルールセット(ルールプロバイダー)を表示し、最終更新日を確認して、再起動なしで手動更新をトリガーできます。プロキシプロバイダーも同様に、設定ファイルを変更せずにサブスクリプションノードリストを更新できます。
# "proxy-list"という名前のルールセットの更新をトリガー curl -X PUT http://127.0.0.1:9090/providers/rules/proxy-list -H "Authorization: Bearer your-api-secret" # プロキシサブスクリプションの更新をトリガー curl -X PUT http://127.0.0.1:9090/providers/proxies/my-subscription -H "Authorization: Bearer your-api-secret"
APIによる自動化
Clash RESTful APIはダッシュボードが公開しているものをはるかに超えています。スクリプトで強力な自動化を構築できます:
# すべてのプロキシノードステータスを取得 GET /proxies # プロキシグループを特定のノードに切り替え PUT /proxies/{group-name} Body: {"name": "node-name"} # リアルタイムトラフィック統計(WebSocket) GET /traffic # ライブログストリーム(WebSocket) GET /logs?level=info # 設定ファイルのホットリロード PUT /configs?force=false Body: {"path": "/path/to/config.yaml"}
external-controllerをパブリックIP(例:0.0.0.0)にバインドしてsecretを設定しない場合、誰でもClashインスタンスを操作できます。必ずsecretを設定し、localhostを超えてAPIを公開する場合はファイアウォールルールの導入も検討してください。