
新Linux入門|ポート番号とは:通信を識別するための基本概念と分類
今回は、ネットワーク通信の中でもとても大切な「ポート番号」についてわかりやすく説明していきます。
IPアドレスが“家の住所”だとしたら、ポート番号は“部屋番号”のようなものです🏠✨
同じコンピューターの中で複数のアプリケーションが同時に通信を行うとき、どの通信がどのアプリのものかを識別するためにポート番号が使われます。
🌐 ポート番号の概要
ポート番号(Port Number)は、TCP や UDP といったトランスポート層プロトコルで使われる識別番号です。
1台のマシンが複数のサービス(例:Web、メール、SSHなど)を動かしていても、ポート番号を使えば正しく通信を振り分けることができます。

| 項目 | 説明 |
|---|---|
| 対象プロトコル | TCP / UDP |
| 範囲 | 0 ~ 65,535 |
| 役割 | 通信をアプリケーションごとに識別 |
| 表記例 | HTTP: 80 / HTTPS: 443 / SSH: 22 |
💬ポイント
たとえば、ブラウザでウェブサイトを開くときには「宛先ポート80番(HTTP)」に通信を送ります。
メールを受け取るときは「ポート110(POP3)」や「ポート993(IMAPS)」を使います📬
🔢 ポート番号の分類
ポート番号は、利用目的や割り当て方によって3つの範囲に分類されます。
| 区分 | 範囲 | 主な用途 | 例 |
|---|---|---|---|
| ウェルノウンポート(Well-known ports) | 0 ~ 1,023 | OS標準サービスや一般的なサーバ用 | HTTP(80)、HTTPS(443)、SSH(22) |
| 登録ポート(Registered ports) | 1,024 ~ 49,151 | 一般アプリや特定サービス用 | MySQL(3306)、PostgreSQL(5432) |
| ダイナミック/プライベートポート(Dynamic/Private ports) | 49,152 ~ 65,535 | 一時的・動的に割り当てるクライアント通信用 | Webアクセス時の動的ポートなど |
💬ポイント
クライアント側のアプリケーション(ブラウザなど)は、通信ごとに動的ポートを自動的に選んで接続を行います。
そのため、同じサーバーに複数のクライアントが同時にアクセスしても混線しません🎯
🌍 代表的なポート番号一覧
| サービス名 | 使用ポート | プロトコル | 説明 |
|---|---|---|---|
| HTTP | 80 | TCP | Webページ閲覧用 |
| HTTPS | 443 | TCP | 暗号化されたWeb通信 |
| SSH | 22 | TCP | リモートログイン用 |
| FTP | 21 | TCP | ファイル転送(制御) |
| DNS | 53 | UDP/TCP | 名前解決サービス |
| SMTP | 25 | TCP | メール送信 |
| POP3 | 110 | TCP | メール受信 |
| IMAPS | 993 | TCP | 暗号化されたメール受信 |
💡ポイント
もしWebサーバーを立ち上げたのにアクセスできない場合、ポート番号が閉じている可能性があります。
そのときは、ファイアウォールの設定を確認してみましょう。
🔍 ポート番号の確認コマンド
開いているポートや待ち受け中のサービスを確認するために、
ss や netstat コマンドを使用します。
🔧 ssコマンド
コマンド書式
ss [オプション]説明
現在システムで開いているソケット(通信口)やポート番号を一覧表示します。
| オプション | 説明 |
|---|---|
| -t | TCP接続のみ表示 |
| -u | UDP接続のみ表示 |
| -l | LISTEN状態(待機中)のみ表示 |
| -n | 名前解決をせずにポート番号を数値で表示 |
| -p | プロセス情報も表示 |
使用例
[root@AlmaLinux ~]# ss -tuln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:*💬ポイント
ここでは、SSHが22番、HTTPサーバーが80番で待ち受けていることが確認できます。
🧩 netstatコマンド(旧コマンド)
コマンド書式
netstat [オプション]| オプション | 説明 |
|---|---|
| -t | TCP接続のみ表示 |
| -u | UDP接続のみ表示 |
| -l | LISTEN状態のみ表示 |
| -p | プロセス情報も表示 |
| -n | ポート番号を数値で表示 |
使用例
[root@AlmaLinux ~]# netstat -tuln
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN💬ポイント
新しい環境では ss コマンドが推奨されていますが、
古いドキュメントでは netstat を目にすることも多いので両方覚えておくと安心です。
🖥️ ポート番号の動作イメージ
例えば、suzuki さんのPCからWebサーバーにアクセスする場合の通信の流れは次のようになります👇

| 通信方向 | 送信元ポート | 宛先ポート | 説明 |
|---|---|---|---|
| suzukiのPC → Webサーバー | 49512(動的) | 80(HTTP) | リクエスト送信 |
| Webサーバー → suzukiのPC | 80(HTTP) | 49512(動的) | レスポンス返信 |
💬ポイント
このように、クライアント側は毎回異なる動的ポート番号を使用し、
サーバー側は固定のウェルノウンポートで待ち受けています。
✨ まとめ
- ポート番号は「通信を識別するための番号」
- 0〜1023はウェルノウン、1024〜49151は登録、49152〜65535は動的ポート
- ss -tuln で現在開いているポートを確認できる
- クライアントは動的ポートを使い、サーバーは固定ポートで待ち受ける
ポート番号の理解は、セキュリティ設定やトラブルシューティングの第一歩です。
これを押さえておけば、「どの通信がどのサービス?」がすぐに判断できるようになります😊
