この記事で解決すること
ブラウザで localhost:3000 や localhost: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への接続を許可してください。
まとめ
- まずサーバーが起動しているか確認
- ポート番号が合っているか確認
- ポートが他のプログラムに使われていないか確認
- ファイアウォールを確認
関連リソース
プログラミングを始めたい方へ:
リンク