LoginSignup
1
0

なぜ”localhostで接続が拒否される”のか?

Last updated at Posted at 2024-01-11

目次

1.はじめに
2.localhostって?
3.ポート番号って?
4.なぜ「localhostで接続が拒否されました。」が発生するのか?
5.おわりに
参考記事

1.はじめに

単体開発環境で実行した際に一度はこのようなエラーを見たことはありませんか?
image.png

今回、私はPHPの勉強をするために、EclipseとXAMPPをインストールし、
ポートの競合と、正しいポート番号が指定されていないことによるエラーが発生したため、改めてlocalhostとは何か?ポート番号とは何か?について学びなおし記事にすることにしました。

エラー発生時の原因をおさらい

  • XAMPPインストール時のポート番号の競合によるエラー
    Xamppをインストールしたデフォルトの状態で、
    ApatchとMySQLを起動させた際にポート番号が競合が発生。

こちらの手順で、
下記の通りポート番号を変更したことにより解消されました。
image.png

  • 正しいポート番号が指定されていないことによるエラー
    EclipseでPHPファイルを実行した際に、
    ブラウザ上で「localhostで接続が拒否されました。」が表示。
    原因はEclipseのサーバーの設定がデフォルトのままになっており、
    正しいポート番号が指定されていなかったことでした。

正しいURL
http://localhost:8888/TestPHP/sample.php

誤ったURL(Eclipse実行時のデフォルトの状態)
http://localhost/TestPHP/sample.php

参考までに、Eclipseのサーバの設定は下記の手順から確認できます。
「ウィンドウズ」>「設定」>「PHP」>「コード・スタイル」>「サーバ」を選択 > サーバを指定し「編集」

2.localhostって?

localhostとは、URLの接続先として、
自分自身のPCを指定する際のアドレス(IPアドレス)のことです。
主に、GoogleやEdge、IEなどのブラウザから、自分のPC上に構築したWebサーバーへアクセスする時などに使用します。
例えば、「http://localhost:80/...」や「http://localhost:8080/...」などです。

3.ポート番号って?

ポート番号とは、localhost:XXXXの末尾にある番号「XXXX」を指します。

ポートはよく「扉(ドア)」に例えられ、イメージとしては下記です。
image.png

ポート番号は、16ビットの整数で0番~65535番まで存在し、
"XXX番は××のデータ用"、"○○○番は決められた範囲内で自由に使ってOK”というように、ドメイン名やIPアドレスなどのインターネット資源を管理する機能であるIANA(Internet Assigned Numbers Authority)によって管理されています。

IANAによるポート番号の管理

種類 番号の範囲 IANAでの登録可否・用途
ウェルノウンポート 0~1023 IANAで正式に登録されている
・TCP/IPやUDPで使用されるポートのうち、各プロトコルやサービスが利用するために予約されている
・サービスごとに設定ファイルを編集し、待受のポート番号を変更することも可能
レジスタードポート 1024~49151 IANAで正式に登録されている
・特定のアプリケーションなどで使用することになっている
ダイナミックポート 49152 ~ 65535 IANAで正式に登録されていない
・ユーザの任意で自由に扱える

代表的なポートの例 ※IANAの最新情報 こちら

ポート番号 プロトコル サービス 説明
20 TCP FTP ファイルデータを転送する仕組み
21 TCP/UDP FTP 通信を制御する仕組み
22 TCP ssh 他のコンピュータを遠隔操作するための仕組み
(通信途中の情報は全部暗号化する)
23 TCP talent 他のコンピュータを遠隔操作するための仕組み
(通信途中の情報は全部暗号化しない)
53 TCP DNS IPアドレスとドメイン名の紐付けする仕組み
80 TCP HTTP インターネット通信
110 TCP POP3 電子メール(受信)
143 TCP IMAP 電子メール(受信)
443 TCP HTTPS SSL(暗号化通信)によるHTTP接続

4.なぜ「localhostで接続が拒否されました。」が発生するのか?

ほとんどの原因は下記の4つが考えられるそうです。
1. Webサーバーが起動していない
2. 正しいポート番号が指定されていない
3. ファイアウォールで接続拒否されている
4. セキュリティソフトで接続が拒否されている
確認手順はこちらのサイトに詳しく記載されていました。

5.おわりに

今回のエラーから、
・localhostとは?ポート番号とは?
・プロキシの設定方法について
・ファイヤーウォールの確認の仕方
・Googleの拡張機能の影響
など様々なこ学ぶことができました。
今後は、ポート番号の競合を防ぐために、使用したポート番号は管理していこうと思います。

参考記事(ありがとうございました)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0