1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:ポート番号について3時間語れなかったので記事としてアウトプットしてみた

Last updated at Posted at 2025-01-20

はじめに

ポート番号は、ネットワーク通信において欠かせない基礎的な知識の一つです。

この記事では、ポート番号の基本的な仕組みや分類、代表的なポート番号、そして用途ごとの具体例について解説します。

また、LinuxやWindows、Dockerを使ったポート番号の確認方法についてもご紹介します。簡単なメモ程度の記事となりますが、何卒ご了承ください。

書こうと思ったきっかけ

ポート番号の概念は何となく頭に入っているつもりでも、具体的に説明したり、言語化するとなると難しいと感じることがありました...。

また、日常的に使用しているSSHやHTTPSといったサービスが実際にどのポート番号を使っているかを正確に説明できるようになりたいと思ったのがきっかけです。

※基礎的な内容ではありますが、自分の知識を整理し、アウトプットすることを目的としてこの記事をまとめました。

ポート番号について

ポート番号は、ネットワーク通信において特定のアプリケーションやサービスを識別するための番号です。

Screenshot 2025-01-20 at 11.53.52.png
引用画像:https://ascii.jp/elem/000/000/458/458706/

通信プロトコルで使用され、送信元と宛先を正確に結びつける役割を果たします。

普段使用するアプリケーションやサービスが、どのポート番号を使用して通信しているかを把握することは、ネットワークトラブルの対応やシステム設計において重要なスキルです。

ポート番号の基本

  • 範囲: 0 ~ 65535 の範囲の数値

  • 分類:

    • 0 ~ 1023: ウェルノウンポート (Well-Known Ports)

      • OSや一般的なサービスが使用するポート番号。管理者権限が必要。
      • 例: 80 (HTTP), 443 (HTTPS), 22 (SSH)
    • 1024 ~ 49151: 登録ポート (Registered Ports)

      • 特定のアプリケーションが登録して使用するポート番号。
      • 例: 3306 (MySQL), 5432 (PostgreSQL), 8080 (HTTPの代替ポート)
    • 49152 ~ 65535: 動的ポート (Dynamic Ports) または プライベートポート

      • 一時的な通信に使用されるポート番号。クライアントアプリケーションが動的に割り当てる。

代表的なポート番号

ここでは、代表的なポート番号をプロトコルごとに整理し、主観的な観点から紹介しています。ぜひ参考にしてみてください!

ポート番号 サービス/プロトコル 説明
20, 21 FTP ファイル転送プロトコル
22 SSH セキュアシェル
23 Telnet リモートログインプロトコル
25 SMTP メール送信プロトコル
53 DNS ドメイン名解決サービス
80 HTTP ウェブサイトアクセス
110 POP3 メール受信プロトコル
143 IMAP メール受信プロトコル
443 HTTPS セキュアなウェブ通信
3306 MySQL MySQLデータベース
5432 PostgreSQL PostgreSQLデータベース
6379 Redis Redisキャッシュサーバー
8080 HTTP (代替) ウェブサーバーでよく使われる代替ポート

ポート番号の用途と使用例

  1. ウェブサービス

    • 80 (HTTP): 通常のウェブページへのアクセス。暗号化なし。
    • 443 (HTTPS): 暗号化された安全なウェブ通信。
  2. リモートアクセス

    • 22 (SSH): サーバーやデバイスにセキュアにリモートログイン。
    • 3389 (RDP): Windowsリモートデスクトッププロトコル。
  3. データベース

    • 3306 (MySQL): MySQLデータベース通信。
    • 5432 (PostgreSQL): PostgreSQLデータベース通信。
  4. ファイル転送

    • 20, 21 (FTP): ファイルの送受信。
    • 22 (SFTP): セキュアなファイル転送。

ポート番号の確認方法

Linuxの場合

以下のコマンドで、現在使用されているポートを確認できます:

netstat -tuln

これは、MacBookから自宅のLinuxサーバーにSSH接続してポートの状態を確認した結果です。

Screenshot 2025-01-20 at 13.36.07.png

この結果は、netstat -tuln コマンドを実行した際の出力であり、Linuxサーバー上で現在リッスンしているポートと、それに対応するサービスやプロセスの情報を示しています。

Windowsの場合

以下のコマンドを使用して、WindowsPCでのポート状態を確認します:

netstat -ano

こちらは、MacBookから自宅のWindows PCにリモートログインし、コマンドプロンプトから確認した結果です。

Screenshot 2025-01-20 at 13.54.50.png

現在、開いているネットワーク接続やリッスンしているポートに関する情報が表示されていることを確認できました。

Dockerの場合

Dockerコンテナの公開ポートを確認するには、以下のコマンドを使用します:

docker ps

これは、Docker Hubからnginxイメージを取得し、ローカルで動かした際の画面です。

Screenshot 2025-01-20 at 13.58.02.png

このコマンドでは、コンテナID、イメージ名、公開されているポート情報などを確認できます。

Dockerを使用した開発では非常に便利なコマンドです。

まとめ

最後まで読んでいただき、ありがとうございました。今回の記事では、ポート番号の基本から用途、確認方法までを、自分なりに復習・整理して言語化してみました。

ポート番号の知識は、ネットワークやサーバー管理に欠かせない基礎的な要素です。

こうした基礎的な内容を今後も積極的にアウトプットしながら、自分の知識を深め、振り返るきっかけを作っていきたいと思います。この記事が皆さんの参考になれば幸いです!

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?