この記事は Clash 公式サイト が編集・監修しました。GUI クライアントは日常的なニーズのほとんどに対応していますが、リアルタイムの接続を確認したり、どのルールがどのノードに当たっているかを診断したり、サーバー上でヘッドレスで Mihomo を実行したりする場合、外部コントロール(External Controller)は欠かせない存在です。RESTful API を通じて、YACD・metacubexd などのサードパーティ Web ダッシュボードがブラウザでトラフィック・ログ・ポリシーグループの状態を可視化し、上級ユーザーの「運用ダッシュボード」として機能します。本記事では、外部コントロールを安全に有効化し、Dashboard を使って Clash を効率的に管理する方法を紹介します。
外部コントロール API とは
Mihomo / Clash Meta はローカルまたは LAN 上で HTTP API ポート(デフォルト 9090)をリッスンし、設定の読み取り・出口の切り替え・速度テスト・接続リストの確認・接続の終了などのインターフェースを提供します。GUI クライアントの多くの操作も、底層では同じ API を使って実行されています。
Web ダッシュボード自体はコアに組み込まれておらず、フロントエンドとしてこの API に接続してデータを可視化します。したがって、API アドレスとシークレットキーが正しく設定されていれば、どのデバイスのブラウザからでも、PC・ソフトルーター・VPS 上で動作しているコアインスタンスを管理できます。
外部コントロールは「リモコン」、Dashboard は「リモコンの画面」です。まず API を有効化し、次にダッシュボードを接続してください。
基本設定例
YAML 設定のトップレベルに external-controller と任意の secret を追加します:
external-controller: 127.0.0.1:9090
secret: "your-random-secret"
external-ui: ./dashboard
127.0.0.1 はローカルホストのみアクセス可能で、最も安全なデフォルト設定です。LAN 内の他のデバイスから管理する場合は 0.0.0.0:9090 に変更できますが、十分に複雑な secret を必ず設定し、ファイアウォールでソース IP を制限してください。
一部のディストリビューションは external-ui で組み込みの静的ダッシュボードディレクトリを指定することをサポートしています。また、独立してホストされている YACD / metacubexd を使用し、ダッシュボードの設定で API アドレスとシークレットキーを入力して接続することもできます。
主要な Web ダッシュボード
- YACD:クラシックで軽量なダッシュボード。接続リスト・ルールテスト・ポリシーグループの切り替えをサポートし、デスクトップブラウザに適しています。
- metacubexd:Meta コア向けに最適化されたモダンな UI で、モバイル対応。ログ・接続・設定プレビューをカバーしています。
- Clash Verge Rev 内蔵ページ:一部のクライアントには Dashboard エントリが統合されており、実際にはローカル API に接続しています。
接続時はダッシュボードで http://127.0.0.1:9090(またはサーバーの IP)を入力し、シークレット欄に設定ファイルと一致するキーを入力します。接続に成功すると、リアルタイムのアップロード/ダウンロード速度と現在の接続数が表示されます。
Dashboard でできること
接続とログの診断
「接続」ページには現在のすべての TCP/UDP セッションがリストアップされ、対象ドメイン・マッチしたルール・使用されているポリシーグループとノードが表示されます。あるサイトが開かない場合、ここを見ればルールが直接接続に設定されているのか、ノードがタイムアウトしているのかが一目で分かることが多いです。「ログ」ページの debug レベル出力と組み合わせることで、DNS 解決とルールマッチングの詳細を追跡できます。
ポリシーグループと速度テスト
メインクライアントに戻らなくても、ダッシュボードから直接「ノード選択」を切り替えたり url-test の速度テストを実行したりできます。リモートサーバー上のコアに対しては、スマートフォンのブラウザからノードを変更できるため、SSH 操作が不要になります。
ルールテスト
一部のダッシュボードは Rule Test ツールを提供しており、ドメインや IP を入力するだけでマッチング結果をシミュレートし、新しいルールが期待通りに DIRECT または PROXY を経由するか検証できます。設定を闇雲に変更するよりもはるかに効率的です。
セキュリティ上の注意事項
API への未認証アクセスはプロキシの制御権を完全に露出させることになります。以下の原則を必ず守ってください:
- ローカル使用時は優先的に
127.0.0.1にバインドし、パブリックネットワークへの露出を避けてください。 - 強力な
secretを必ず設定し、ダッシュボード接続時には HTTPS またはリバースプロキシ TLS を使用してください(本番環境では推奨)。 - VPS 上で 9090 を開放する場合は、ファイアウォールで自分の IP のみを許可するか、SSH トンネル経由でアクセスしてください。
- 公共ネットワークでシークレットキーなしの開放 API を使用しないでください。他者にトラフィックを消費されたり出口を改ざんされたりする恐れがあります。
Linux サーバーでのコアと Dashboard の典型的なフロー
Linux サーバーに Mihomo をデプロイする場合、一般的な構成は systemd でコアをバックグラウンド実行+ブラウザで YACD にアクセスです。コアを起動した後、ローカルで SSH ポートフォワーディングを実行します:ssh -L 9090:127.0.0.1:9090 user@server。これにより、ローカルブラウザでダッシュボードを開いてリモート API に接続でき、管理ポートをパブリックネットワークに公開する必要がありません。
まとめ
外部コントロールと Web Dashboard は Clash を「ブラックボックスのクライアント」から、観測・デバッグ可能なシステムへと変えてくれます。日常ユーザーが毎日ダッシュボードを開く必要はないかもしれませんが、ルールのトラブルシューティング・ノードの最適化・サーバーコアのリモート管理において、これは代替不可能なツールです。リスニングアドレスとシークレットキーを正しく設定することが、利便性を享受しながらセキュリティを保つための前提条件です。
ローカルで完全なクライアント体験をご希望の方は公式ダウンロードページをご覧ください。初回設定はサブスクリプションのインポートとシステムプロキシの有効化のためにセットアップガイドもご参照ください。
関連記事