Network: Connection refused
サーバーが接続を拒否した場合のエラー
概要
サーバーへの接続を試みたが、サーバー側が接続を拒否した場合に発生するエラーです。サービスが起動していない、ポートがリッスンされていない場合に発生します。
エラーメッセージ
Error: connect ECONNREFUSED 127.0.0.1:3000
または
curl: (7) Failed to connect to localhost port 3000: Connection refused
原因
- サービス未起動: アプリケーションが起動していない
- ポートの不一致: 異なるポートでリッスンしている
- バインドアドレス: localhost のみバインドしている
- ファイアウォール: ポートが閉じられている
解決策
1. サービスの起動確認
| |
2. ポートの確認
| |
3. バインドアドレスの確認
| |
| |
4. Docker での接続
| |
| |
5. ファイアウォールの設定
| |
6. 待機とリトライ
| |
7. ヘルスチェックエンドポイント
| |
8. Docker Compose の依存関係
| |
9. Kubernetes での確認
| |
10. ローカル開発での確認
| |
よくある間違い
- Docker内で localhost を使用(代わりにサービス名を使用)
- 127.0.0.1 と 0.0.0.0 の違いを理解していない
- 環境変数でポートが上書きされている
- 複数のサービスが同じポートを使用
Network の他のエラー
この記事は役に立ちましたか?