Dashboard は external-controller API へ接続する必要があります。開けない場合は通常、リッスンアドレス、ポート、secret、クロスオリジン、リバースプロキシ、ファイアウォールのいずれかに問題があります。まず端末内で制御アドレスとポートを検証し、Dashboard に同じ secret を設定します。リモートアクセスを有効にするのは最後にし、HTTPS とアクセス制御を追加してください。
connection refused、unauthorized、CORS を見分ける方法
connection refused はインターフェースへ到達できていない状態、unauthorized は応答があっても認証に失敗している状態、CORS はブラウザのクロスオリジン制限を示します。
- external-controller が有効で、正しいアドレスをリッスンしているか
- ポートが 9090、またはクライアントで実際に設定したポートになっているか
- Dashboard に入力した secret が設定と一致しているか
- ブラウザのコンソールまたはログに unauthorized、connection refused、CORS のいずれかが表示されているか
制御アドレス、ポート、secret を一致させる
- まずクライアントまたはカーネルが動作していることを確認します
- 端末内から 127.0.0.1 と制御ポートへアクセスし、API が応答することを確認します
- Dashboard の API アドレスと secret を現在の設定値へ変更します
- ポートが使用中の場合は external-controller のポートを変更し、Dashboard 側も合わせて更新します(参照: 外部コントローラー、ポート競合の FAQ)
- リモートアクセスでは、先にアクセス制御と HTTPS を追加してから、信頼できるネットワークへ公開します
9090 は一般的な例として使われるポートにすぎず、実際のポートは設定に従います
secret が空だと、制御インターフェースのリスクが高まります
external-controller をインターネットへ直接公開しないでください
Dashboard が復旧したことを確認する方法
- インターフェースへ到達でき、認証が有効である
- 制御アドレスへアクセスするとバージョン情報が返り、Dashboard に同じ secret を設定するとノードと接続を読み取れます。
- 引き続き接続拒否または未認証と表示される
- connection refused と unauthorized を区別し、リッスンアドレス、ポート、secret、リクエストヘッダーをそれぞれ確認します。
