なぜポート番号はそう割り当てられているか

HTTP=80・SSH=22がなぜその番号なのか、0〜1023に管理者権限が要る理由を来歴から理解でき、共有名前空間を統制する設計思想を持ち帰れる。

応用ネットワークポートTCP/IPIANAセキュリティ歴史最終更新: 2026-07-29
3つの要点
TL;DR
  1. ポートは0〜1023のシステム用、1024〜49151の登録用、49152〜65535の動的用に分かれる。初期はJon Postel、現在はIANAがRFC 6335に沿って一元管理する。
  2. 80・443・22は技術的必然でなく申請順の歴史で決まった。SSHの22はTatu YlönenがFTPの21とTelnetの23の間を狙い、1995年に申請して割り当てられた。
  3. 1024未満に管理者権限が要るのはBSDの信頼モデルの名残で、一般ユーザーのなりすましを抑える弱い保証だった。共有する名前空間には権威ある割り当て管理が要る。

結論 — なぜそうなったのか

横にスクロール

一台の複数サービスを識別する番号が中央割当されシステム利用者動的の三範囲へ整理された図
ポート番号が接続先の事前調整を不要にした理由と、特権ポートの歴史的制約を示します。

ポート番号の割り当てには、実は技術的な必然がほとんどありません。HTTP が 80 番で SSH が 22 番なのは、それらの番号が処理上優れているからではなく、共有された番号空間を1つの権威が台帳で管理し、申請された順に固定していったからです。異なる組織のソフトが同じ IP 上で衝突せずに出会うには、「この番号はこのサービス」という合意が世界で1つに定まっている必要があります。その合意台帳を初期は Jon Postel が個人で、現在は IANA が IETF の公式手続き(RFC 6335)に沿って維持しています。番号の3区分と特権ポートの権限要件は、いずれもこの「共有名前空間をどう統制するか」という問いへの答えとして生まれました。

当時の状況と競合 — 何が問題だったか

ARPANET から TCP/IP へ移る初期、根本の課題はランデブー問題でした。クライアントは、まだ会話していない相手のサーバーに、事前の打ち合わせなしで接続しなければなりません。「どの番号を叩けばそのサービスに届くか」を全員が同じに知っている必要があります。

考えうる選択肢は複数ありました。

方式考え方問題点
名前解決サービスサービス名を問い合わせて動的に番号を得るその問い合わせ先自体を既知の番号で固定する必要があり、鶏と卵になる
各自で自由に選ぶ実装者が好きな番号を使う同一ホスト上で番号が衝突し、相互運用が崩壊する
中央台帳で固定権威が『番号↔サービス』を1対1で登録・公開する権威と申請運用のコストが要るが、衝突と探索の両方を解決できる

初期インターネットが採ったのは3つ目です。RFC 322(1972)が使用中ソケットの申告を促し、その系譜が Assigned Numbers(RFC 1340 / RFC 1700 など、Reynolds と Postel による一連の文書)に結実します。番号は思想ではなく台帳の1行として、申請順に確定していきました。だからこそ番号の並びは体系的でなく、歴史の順序を化石のように残しています。

なぜ80・443・22なのか

FTP は初期からのプロトコルゆえ制御 21・データ 20 という若い番号を得ました。Telnet は 23。HTTP はティム・バーナーズ=リーらが 80 を申請。暗号化 HTTP(HTTPS)は後発で 443。SSH の 22 は象徴的で、Tatu Ylönen が「FTP=21 と Telnet=23 の間」を意図して1995年に IANA へ希望を出し、公開仕様の提出前に、翌日 Joyce K. Reynolds から 22 番割り当ての確認メールを受け取りました。つまり番号は性能ではなく「いつ・誰が・どう申請したか」で決まっています。

決定打・経緯 — 何が勝敗を分けたか

体系を1つに束ねた決定打は単一の権威と3層の区分でした。長らく Jon Postel が Assigned Numbers を事実上一人で編集し(彼の没後は組織としての IANA が継承)、番号空間は次の3範囲に整理されます。

区分範囲別称割り当て
システム0〜1023ウェルノウン/特権IANA が厳格に審査して割り当て
ユーザー1024〜49151登録IANA が申請に応じて登録
動的49152〜65535プライベート/エフェメラル割り当てず、各ホストが一時利用に自由に使う

この3区分は現在 RFC 6335(2011) が IETF の Best Current Practice として明文化しています。設計上の要は分業です。0〜1023 は「世界で1つのサービス」を厳格審査で固定し、1024〜49151 は緩やかに登録を受け付け、49152〜65535 は誰の許可も要らない私的領域として、クライアントが接続ごとに使い捨てる送信元ポートに充てます。実務で netstat を眺めると、待ち受けは若い番号、能動接続の送信元は 49152 以上、という住み分けが見えるはずです。

もう1つの決定打が、0〜1023 を 特権ポートとした BSD の判断でした。4.2BSD 系は、1024 未満の番号で待ち受けるには管理者(root)権限を要求しました。狙いは当時の信頼モデルにあります。rlogin / rsh などの r 系コマンドは、相手が 1024 未満の送信元ポートから来たことを「root 権限を持つ正規プロセスが送ったもの」と見なし、ホスト間の弱い認証材料に使っていました。一般ユーザーが特権ポートを名乗れないという制約こそが、この保証を成立させていたのです。

特権ポートが防ぐ『なりすまし』とは

仮に誰でも 80 番で待ち受けられたら、多ユーザーのマシンで悪意ある一般ユーザーが正規 Web サーバーの起動前に 80 を奪い、偽サイトを差し込めます。「1024 未満は root だけ」という制約は、既知サービスは特権を持つ正規プロセスしか名乗れないという前提を OS レベルで担保し、この横取り=なりすましを抑えます。ただしこれは host-based の弱い保証にすぎず、通信内容の真正性は保証しません。だからこそ後年、TLS のような暗号認証が本質的な対策として必要になりました。

今への影響と教訓 — 現在どう効いているか

この設計は今も静かに効いています。ブラウザが example.com と打つだけで 443 に届くのは、番号が世界で1つに固定されているからです。コンテナやクラウドネイティブ環境では、非 root で 80/443 を開けない特権ポート制約が運用の摩擦になり、Linux の CAP_NET_BIND_SERVICE ケイパビリティ付与や、リバースプロキシ/ロードバランサでの終端、net.ipv4.ip_unprivileged_port_start の調整といった回避策が定石になりました。制約が新しい設計を生んでいるわけです。名前とポートの正式な対応関係は各プロトコルの仕様(ネットワーク)に、80/443 上で動く実体は Web に、特権と権限分離の一般原則は OSセキュリティ にそれぞれつながります。

試験・面接での頻出ポイント
  • 3区分と境界の正確な暗記: システム 0〜1023/ユーザー 1024〜49151/動的 49152〜65535
  • 割り当ての権威は IANA、現行手続きは RFC 6335。歴史的起点は Postel の Assigned Numbers 系列
  • 特権ポート(1024 未満)に root が要るのは BSD 由来の慣行で、目的は既知サービスのなりすまし抑止(host-based の弱い保証)
  • 動的ポートはクライアントの送信元に使われ、IANA は割り当てない
  • 番号(80/443/22 等)は技術的必然でなく申請順の歴史的経緯で決定

一段で言うと

ポート番号がそう割り当てられているのは、優れたアルゴリズムの帰結ではなく、共有された番号空間を1つの権威が台帳で統制するという統治上の選択の帰結です。番号の並びは申請の歴史を、特権ポートの権限要件は当時の信頼モデルを、それぞれ化石として保存しています。ここから学べる普遍の原則は1つ——複数の当事者が同じ資源を奪い合う共有名前空間は、権威ある統制と明確な区分がなければ衝突と偽装で崩れる、ということです。

なぜ?の記事ガイド

なぜポート番号はそう割り当てられているかを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ネットワーク

比較で見る軸

難易度: advanced / カテゴリ: なぜ? / タグ数: 6

導入後に効く点

80・443・22は技術的必然でなく申請順の歴史で決まった。SSHの22はTatu YlönenがFTPの21とTelnetの23の間を狙い、1995年に申請して割り当てられた。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
なぜ?
タグ数
6

判断チェックリスト

  • 自社の用途が「ネットワーク / ポート」に近いか確認する。
  • 強みである「ポートは0〜1023のシステム用、1024〜49151の登録用、49152〜65535の動的用に分かれる。初期はJon Postel、現在はIANAがRFC 6335に沿って一元管理する。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ネットワークポートTCP/IPIANAセキュリティ