ポート番号 - インターネットの「部屋番号」

IP アドレスが建物の住所だとすれば、ポート番号はその建物の中の部屋番号です。1 台のサーバーが Web サイト、メール、SSH、データベースなど複数のサービスを同時に提供できるのは、各サービスが異なるポート番号で「部屋分け」されているからです。

ポート番号は 0 から 65535 までの整数で、合計 65,536 個。この数字の中には、インターネットの歴史、技術者のユーモア、そして意外な物語が隠されています。

ウェルノウンポート (0-1023) - インターネットの「一等地」

0 から 1023 までのポート番号は「ウェルノウンポート (Well-Known Ports)」と呼ばれ、IANA によって特定のサービスに割り当てられています。Unix 系 OS では、これらのポートを使用するには root 権限が必要です。

ポート 80 (HTTP) と 443 (HTTPS)

Web の標準ポートです。ブラウザで URL を入力するとき、http:// ならポート 80、https:// ならポート 443 に接続します。ポート番号を省略できるのは、ブラウザがプロトコルに応じてデフォルトポートを自動補完するからです。

なぜ 80 なのか。Tim Berners-Lee が 1991 年に HTTP を設計した際、ポート 80 はまだ未割り当てでした。キリの良い数字で覚えやすく、当時の慣習で「空いている番号を使う」という程度の理由だったとされています。443 は HTTPS 用に後から割り当てられた番号で、80 のすぐ隣に確保されたわけではありません。80 と 443 の間には 110 (POP3) や 143 (IMAP) など別のサービスの番号が並んでいます。

ポート 22 (SSH)

SSH (Secure Shell) の作者 Tatu Ylönen は、1995 年にフィンランドのヘルシンキ工科大学で SSH を開発しました。Ylönen 自身が語ったところによれば、ポート 22 を選んだ理由は「21 (FTP) と 23 (Telnet) の間が空いていたから」です。FTP と Telnet はどちらも暗号化されていない古いプロトコルで、SSH はそれらの安全な代替として設計されました。21 と 23 の間に位置する 22 は、象徴的にも実用的にも完璧な選択でした。

ポート 25 (SMTP)

メール送信プロトコル SMTP のポートです。1982 年の RFC 821 で Jon Postel によって定義されました。2026 年 8 月時点では、スパム対策のために多くの ISP が家庭向け回線からポート 25 への外部接続を制限しており、メールソフトからの送信にはポート 587 (Submission) が使われます。

ポート 53 (DNS)

DNS のポートです。ブラウザが Web サイトにアクセスする際、最初にポート 53 で DNS サーバーに問い合わせ、ドメイン名を IP アドレスに変換します。DNS over HTTPS はこの通信をポート 443 (HTTPS) に移すことで、DNS クエリの暗号化を実現しています。

登録済みポート (1024-49151) - 申請すれば使える「準一等地」

1024 から 49151 までは「登録済みポート (Registered Ports)」で、IANA に申請すれば特定のサービスに割り当てられます。root 権限なしで使用できます。

ポート 3306 (MySQL)

MySQL のデフォルトポートです。1024 以上の登録済みポート帯にあるため、root 権限がなくても待ち受けを開始できます。開発用のマシンで一般ユーザー権限のままデータベースを起動できるのは、この帯域が選ばれているからです。

ポート 5432 (PostgreSQL)

PostgreSQL のデフォルトポート。3306 と離れた番号なので、1 台のサーバーに MySQL と PostgreSQL を同居させても衝突しません。同じホストで複数のインスタンスを動かすときは、5433、5434 と 1 ずつずらして起動するのが定石です。

ポート 8080

HTTP の代替ポートとして広く使われています。開発環境で Web サーバーを起動する際、ポート 80 は root 権限が必要なため、代わりに 8080 を使うのが慣習です。「80 の代替」であることが一目で分かる番号選びです。

ポート 6667 (IRC)

IRC (Internet Relay Chat) が事実上の標準として使い続けてきたポートです。IANA が IRC に公式に割り当てた番号は 194 (平文) と 994 (TLS) ですが、どちらもウェルノウンポートで root 権限を必要とするため、一般ユーザーがサーバーを立てられる 6667 が定着しました。暗号化する場合は 6697 が慣習で、RFC 7194 はこの 6697 を IRC の TLS 用ポートとして登録しています。

6667 の隣にある 6666 も接続先として受け付けるサーバーが多く、「悪魔の数字」(666) を避けるための番号選びだったという説が語られますが、確かな記録は公開されていません。IRC は 1988 年にフィンランドで Jarkko Oikarinen が開発し、インターネット初期のリアルタイムコミュニケーションの中心でした。

動的ポート (49152-65535) - 一時的な「仮住まい」

49152 から 65535 までは「動的ポート (Dynamic/Ephemeral Ports)」で、OS がクライアント側の通信に一時的に割り当てます。ブラウザが Web サーバーに接続するとき、サーバー側はポート 443 ですが、クライアント側は OS が自動的に割り当てた動的ポート (例: 52847) を使用します。

通信が終了すると、動的ポートは解放され、別の通信に再利用されます。

ポート番号にまつわる雑学

ポート 0 - 存在するが使えない

ポート 0 は「ワイルドカード」として予約されています。プログラムがポート 0 にバインドすると、OS が空いている動的ポートを自動的に割り当てます。テストやデバッグで「どのポートでもいいから空いているものを使いたい」場合に便利です。

ポートスキャン - 開いているドアを探す

攻撃者がサーバーの脆弱性を探す際、最初に行うのがポートスキャンです。nmap などのツールで全ポートをスキャンし、どのサービスが稼働しているかを調査します。不要なポートを閉じ、ファイアウォールで必要なポートのみを許可することが、サーバーセキュリティの基本です。

65535 の由来

ポート番号が 65535 までなのは、TCP/UDP ヘッダーでポート番号に 16 ビットが割り当てられているからです。2^16 = 65,536 で、0 を含めると 0〜65535 の範囲になります。この設計は 1981 年の TCP 仕様 (RFC 793) で決まり、RFC 793 を置き換えた 2022 年の RFC 9293 でも 16 ビットのまま変わっていません。

まとめ

ポート番号は、IP アドレスと並ぶインターネット通信の基本要素です。80 と 443 が Web を支え、22 が安全なリモートアクセスを提供し、53 が名前解決を担う。これらの数字の一つ一つに、インターネットの歴史と設計思想が刻まれています。

IP 確認さんで確認できる IP アドレスの先には、ポート番号で区切られた無数のサービスが稼働しています。次にブラウザで Web サイトを開くとき、その通信がポート 443 を通っていることを思い出してみてください。

この記事の関連用語

IP アドレス ポート番号と組み合わせて通信先を特定する。IP アドレスが「住所」、ポート番号が「部屋番号」。 HTTPS ポート 443 を使用する暗号化通信プロトコル。Web 通信の標準。 DNS ポート 53 で動作するドメイン名解決システム。DNS over HTTPS ではポート 443 に移行。 ファイアウォール ポート番号に基づいて通信を許可・拒否するセキュリティ装置。不要なポートの閉鎖が基本対策。 SSH ポート 22 で動作する暗号化リモートアクセスプロトコル。Telnet の安全な代替として 1995 年に開発された。

よくある質問

なぜ HTTP はポート 80 なのですか?

Tim Berners-Lee が 1991 年に HTTP を設計した際、ポート 80 は未割り当てで、キリの良い覚えやすい番号だったためです。深い技術的理由はなく、当時の慣習で空いている番号を使っただけとされています。

SSH のポート 22 はなぜ 22 なのですか?

作者の Tatu Ylönen が、FTP (21) と Telnet (23) の間が空いていたため選びました。SSH は FTP と Telnet の安全な代替として設計されたので、21 と 23 の間の 22 は象徴的にも完璧な選択でした。

ポート番号はなぜ 65535 までなのですか?

TCP/UDP ヘッダーでポート番号に 16 ビットが割り当てられているためです。2^16 = 65,536 で、0 を含めると 0〜65535 の範囲になります。この設計は 1981 年の TCP 仕様 (RFC 793) で決まり、RFC 793 を置き換えた 2022 年の RFC 9293 でも 16 ビットのまま変わっていません。