この記事で解決すること

ブラウザで localhost:3000localhost:8080 にアクセスしたら、こんなエラーが出た。

このサイトにアクセスできません
localhost で接続が拒否されました
ERR_CONNECTION_REFUSED

プログラミングの学習中によく出るエラーです。原因は単純なので、順番に確認すれば解決します。

原因1:サーバーが起動していない(最も多い)

一番多い原因です。ブラウザでlocalhostにアクセスする前に、サーバーを起動する必要があります。

確認方法

ターミナルを見てください。サーバーが起動していれば、こんな表示があるはずです。

Server running on http://localhost:3000

この表示がなければ、サーバーが起動していません。

解決方法

使っているフレームワークに応じて、サーバーを起動してください。

# Node.js / Express
node app.js

# React
npm start

# Python / Flask
python app.py

# Python / Django
python manage.py runserver

原因2:ポート番号が違う

サーバーは起動しているけど、ブラウザでアクセスしているポート番号が違う場合。

確認方法

ターミナルの表示を確認してください。

Server running on http://localhost:8000

この場合、localhost:3000 ではなく localhost:8000 にアクセスする必要があります。

原因3:ポートが他のプログラムに使われている

同じポート番号を別のプログラムが使っていると、サーバーが起動できません。

確認方法(Windows)

netstat -ano | findstr :3000

何か表示されたら、そのポートは使用中です。

解決方法

別のポート番号でサーバーを起動するか、使用中のプログラムを終了してください。

原因4:ファイアウォールにブロックされている

会社のPCや、セキュリティソフトが入っているPCで起きることがあります。

解決方法

一時的にファイアウォールを無効にして試してみてください。それで接続できたら、ファイアウォールの設定でlocalhostへの接続を許可してください。

まとめ

  • まずサーバーが起動しているか確認
  • ポート番号が合っているか確認
  • ポートが他のプログラムに使われていないか確認
  • ファイアウォールを確認

関連リソース

プログラミングを始めたい方へ: