まずは外部コントロールを有効にする

どのダッシュボードを使う場合も、前提としてコア側でexternal-controllerを有効にしておく必要があります。これはダッシュボードとコアが通信するためのRESTful APIの入り口です。

external-controller: 127.0.0.1:9090
secret: "your-strong-secret"

ダッシュボードは本質的にこのAPIにアクセスするWebアプリケーションです。ローカルのWebページであっても、コアに内蔵された静的リソースであっても、この入り口を通じて接続一覧、ノードの遅延、ログストリームなどの情報を読み取っています。

人気ダッシュボードの方向性

ダッシュボードのエコシステムは更新が速いため、具体的なプロジェクト名はここでは挙げませんが、機能の方向性でおおよそ3タイプに分けられます。

  • 軽量な読み取り専用型 —— 接続状況、遅延、トラフィックのグラフ表示に特化しており、シンプルで読み込みも速く、「ちょっと状態を見たい」場面に向いています;
  • フル機能の管理型 —— 表示に加えてノードの切り替え、ルールの編集、サブスクリプションの管理、詳細ログの確認まで対応しており、機能は最も充実していますがUIも相応に複雑です;
  • モバイル対応型 —— スマートフォンのブラウザ向けにレイアウトを最適化しており、ルーターにダッシュボードを配置してスマホから遠隔で確認したい場合に向いています。

パソコン上でグラフィカルクライアントを使っているだけなら、追加でダッシュボードを接続する必要はほとんどなく、クライアント標準の画面で大半のニーズを満たせます。ダッシュボードはむしろGUIのないデバイス(ルーター、NAS、クラウドサーバーなど)上のコアのために使われることが多いです。

ダッシュボードで確認できること

接続すると、よく使う情報はこの4つです。

  • リアルタイム接続一覧 —— 確立中の各接続について、宛先ドメイン、ヒットしたルール、最終的な処理結果(DIRECT / PROXY / REJECT)を確認できます。「あるサイトがなぜプロキシ経由にならないのか」を調べる最も直接的な入口です;
  • ノード遅延パネル —— プロキシグループ内の各ノードのリアルタイム測定結果を表示し、今使っているのが最も遅延の低いノードかどうかが一目でわかります;
  • トラフィック統計 —— 接続単位・時間単位でアップロード/ダウンロード量を集計でき、あるアプリがバックグラウンドで密かに通信していないかを判断する材料になります;
  • ログストリーム —— リアルタイムに流れる実行ログで、ルールの読み込み失敗やサブスクリプション取得失敗といった問題は、まずここに現れることが多いです。

プレーンテキストのログに比べ、ダッシュボードで可視化した方が問題調査の効率は明らかに上がります。特にルーターやサーバーに長期間常駐させていてGUIを直接確認できない環境では効果的です。

接続前に必ずやっておくべきセキュリティ設定

外部コントロールのインターフェースは設定を誤るとプロキシの操作権限そのものを外部に晒すことになるため、このステップは省略できません。

  • 十分に複雑なsecretを必ず設定し、初期値のままにしたり空欄にしたりしない;
  • ローカルでのみダッシュボードを使うなら、external-controller127.0.0.1にバインドし、0.0.0.0にはバインドしない;
  • どうしても遠隔からダッシュボードにアクセスする必要がある場合(ルーターに配置して他のデバイスから確認する場合など)は、まず内部ネットワーク経由でのアクセスを優先し、リバースプロキシと認証を一段挟むようにして、コントロールポートを直接インターネットに晒さない。
セキュリティ上の注意: 外部コントローラーには追加のログイン制限がないため、secretを入手されるとノードの切り替えや設定変更を含む完全な操作権限を渡してしまうことになります。信頼できないネットワーク環境では暗号化されていないHTTPのダッシュボード接続を使わないでください。

ダッシュボードに接続する基本手順

  1. コア側でexternal-controllerが有効になっており、secretが設定されていることを確認する;
  2. ダッシュボードの接続設定にコアのアドレス(例:127.0.0.1:9090)と先ほど設定したsecretを入力する;
  3. 接続に成功すればリアルタイム接続一覧・ノード遅延・ログが表示されます。失敗した場合は、まずアドレスとポートが正しいか、コアが起動しているか、ファイアウォールが該当ポートを許可しているかを確認してください。

ダッシュボードにつながらないときの調査方法

接続失敗の原因はだいたい次の4パターンに絞られます。1つ目はコア側でexternal-controllerがそもそも有効になっていない、または設定を変更した後に再読み込みしていないケース。2つ目はアドレスやポートの入力ミスで、特に127.0.0.1とLAN内アクセス時に入力すべき内部IPを混同しやすいです。3つ目はsecretの不一致で、コピー&ペースト時に余分な空白や引用符が混入していることがあります。4つ目はファイアウォールやセキュリティソフトが該当ポートへのアクセスをブロックしているケースです。この順番で一つずつ確認していけば、ほとんどの接続失敗は解消できます。

ダッシュボード自体は開けるのにデータが空のままという場合は、多くは接続の問題ではなく、コア側にまだ接続履歴が発生していないだけです。一度何かのサイトにアクセスして通信を発生させてから、ダッシュボードに戻ってデータが更新されるか確認してみてください。external-controllerのより詳しいパラメータについては上級者向けドキュメントをご覧ください。

まだClashを入れていない方は、先にクライアントを準備しましょう

ダッシュボードはあくまで可視化の補助ツールで、核心はまずクライアントをインストールしサブスクリプションを読み込むことです。