
新Linux入門|ポート番号の種類と役割:ウェルノウンポートからプライベートポートまで
今回は、ネットワーク通信の基本中の基本ともいえる ポート番号の種類と役割 について、やさしく丁寧に解説していきます。
IPアドレスが「家の住所🏠」なら、ポート番号は「部屋番号🏢」のようなもので、どのサービスに通信を届けるかを決めるために使われます。
たとえば、同じサーバーでWebサービス(HTTP)とメールサービス(SMTP)を同時に動かしていても、
それぞれが異なるポート番号を使って通信することで混線せずに動作できるわけです✨

🌐 ポート番号とは?
ポート番号(Port Number)は、TCP や UDP といったトランスポート層のプロトコルで使用される識別番号です。
ネットワーク通信において、どのアプリケーションとやり取りをするかを判断するために使われます。

| 項目 | 内容 |
|---|---|
| 使用される層 | トランスポート層(TCP / UDP) |
| 数値範囲 | 0 ~ 65,535 |
| 役割 | 通信の送信元・宛先を識別 |
| 利用例 | HTTP(80), SSH(22), DNS(53), MySQL(3306) |
🔢 ポート番号の分類
ポート番号は大きく3つの範囲に分かれています。
この分類を理解しておくと、どのポートをどんな用途で使うのかがすぐにわかります。
| 種類 | 範囲 | 主な用途 | 代表的な例 |
|---|---|---|---|
| ウェルノウンポート(Well-known ports) | 0 ~ 1,023 | OSや主要サービスが使用する固定ポート | HTTP(80), HTTPS(443), SSH(22), DNS(53) |
| 登録ポート(Registered ports) | 1,024 ~ 49,151 | 一般的なアプリケーションやソフトウェアが使用 | MySQL(3306), PostgreSQL(5432), Docker(2375) |
| ダイナミック/プライベートポート(Dynamic/Private ports) | 49,152 ~ 65,535 | クライアント通信など一時的に使用 | Webブラウザの動的ポートなど |
💬ポイント
クライアント側は通常、ダイナミックポートをランダムに選んで通信を開始します。
一方、サーバー側は固定のウェルノウンポートで待機しています。
このように役割を分けることで、通信の整合性と識別が保たれています。
🌍 代表的なポート番号とアプリケーション

| サービス名 | 使用ポート | プロトコル | 用途 |
|---|---|---|---|
| HTTP | 80 | TCP | Webページ閲覧 |
| HTTPS | 443 | TCP | 暗号化されたWeb通信 |
| SSH | 22 | TCP | リモートログイン |
| DNS | 53 | UDP / TCP | 名前解決サービス |
| FTP | 21 | TCP | ファイル転送 |
| SMTP | 25 | TCP | メール送信 |
| IMAP | 143 | TCP | メール受信 |
| MySQL | 3306 | TCP | データベース接続 |
💬ポイント
もし「Webサーバーが動いているのに接続できない!」というときは、ファイアウォールが該当ポートを閉じていないか確認しましょう。
🧭 ポートを確認する
ネットワークポートの状態を確認するのに便利なコマンドがいくつかあります。
🔍 ssコマンド
コマンド書式
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番)が待受状態であることが確認できます。
🧩 firewall-cmdコマンド
ファイアウォールでポートを開放するには、firewalld を操作する firewall-cmd コマンドを使用します。
コマンド書式
firewall-cmd [オプション]説明
ネットワーク通信を制御するファイアウォール設定を管理します。
| オプション | 説明 |
|---|---|
| --list-ports | 現在開いているポートを一覧表示 |
| --add-port=ポート番号/プロトコル | 指定ポートを一時的に開放 |
| --permanent | 永続的に設定を保存 |
| --reload | 設定を再読み込みして反映 |
使用例
[root@AlmaLinux ~]# firewall-cmd --add-port=80/tcp --permanent
success
[root@AlmaLinux ~]# firewall-cmd --reload
success💬ポイント
これでHTTP通信(ポート80)が恒久的に許可されました。
サーバー公開時にはセキュリティを考慮し、必要なポートだけを開けるようにしましょう🔐
🖥️ 通信の流れのイメージ
ポート番号は、クライアントとサーバー間の通信を識別するための「番号札」です。
| 通信方向 | 送信元ポート | 宛先ポート | 役割 |
|---|---|---|---|
| クライアント → サーバー | 49512(動的) | 80(HTTP) | リクエスト送信 |
| サーバー → クライアント | 80(HTTP) | 49512(動的) | レスポンス返信 |
💬ポイント
クライアントは都度ランダムなポートを選び、サーバーは常に特定のポートで待機しています。
この仕組みのおかげで、複数の通信が同時に行われても混乱しないんです🎯
✨ まとめ
- 🔹 ウェルノウンポート(0~1023) は、一般的なサーバーサービスが使用
- 🔹 登録ポート(1024~49151) は、特定アプリケーションが利用
- 🔹 ダイナミック/プライベートポート(49152~65535) は、クライアントが動的に使用
- 🔹
ssコマンドで開いているポートを確認し、firewall-cmdで安全に管理できる
🌟ポイント
ポート番号を理解することは、ネットワークの基本を理解する第一歩です。
AlmaLinuxの環境で実際にコマンドを試しながら、通信の仕組みを体感してみましょう😊
