ポート番号 (Port Number)
約 5 分で読めます
最終更新: 2026-04-05
ポート番号とは
ポート番号とは、ネットワーク通信においてアプリケーションやサービスを識別するための 0 から 65535 までの数値です。IP アドレスが建物の住所だとすれば、ポート番号はその建物内の部屋番号に相当します。
1 台のサーバーで Web サーバー、メールサーバー、SSH サーバーなど複数のサービスを同時に動かせるのは、それぞれが異なるポート番号を使って通信を振り分けているからです。ブラウザで https://example.com にアクセスすると、裏側ではポート 443 に対して接続が行われています。
ポート番号の分類
ポート番号は IANA (Internet Assigned Numbers Authority) によって 3 つの範囲に分類されています。
ポートスキャンとセキュリティリスク
ポートスキャンとは、対象のサーバーやネットワーク機器に対して多数のポートに接続を試み、どのポートが開いているかを調査する行為です。ネットワーク管理者が自社の脆弱性を確認する正当な用途がある一方、攻撃者が侵入経路を探す偵察行為としても使われます。
- TCP SYN スキャン: 接続の最初のステップ (SYN パケット) だけを送り、応答の有無でポートの開閉を判定する。接続を完了しないため検出されにくい。
- TCP Connect スキャン: 完全な TCP 接続を確立して確認する。確実だがログに残りやすい。
- UDP スキャン: UDP ポートの開閉を確認する。応答がないことを「開いている」と判断するため、時間がかかり精度も低い。
不要なポートを開放したままにしておくと、そこが攻撃の入口になります。ファイアウォールで必要なポートだけを許可し、それ以外はすべてブロックするのが基本原則です。
ファイアウォールによるポート制御
ファイアウォールの最も基本的な機能は、ポート番号に基づいて通信の許可・拒否を制御することです。
- インバウンドルール: 外部からサーバーへの接続を制御。Web サーバーなら 80 と 443 のみ許可し、SSH (22) は管理者の IP アドレスからのみ許可するのが一般的。
- アウトバウンドルール: サーバーから外部への接続を制御。マルウェアが外部の C&C サーバーと通信するのを防ぐために、不要なアウトバウンド通信を制限する。
クラウド環境では、AWS のセキュリティグループや Azure の NSG がこの役割を担います。「必要最小限のポートだけを開放する」という最小権限の原則は、ネットワークセキュリティの基本中の基本です。
NAT を使用している家庭用ルーターでは、外部からの接続はデフォルトですべてブロックされます。ポート転送 (ポートフォワーディング) を設定しない限り、内部のデバイスに外部から直接アクセスすることはできません。
実務で押さえておくべきポイント
ポート番号に関して、実務で特に重要な知識をまとめます。
- ポート 80 から 443 への移行: かつて Web サイトは HTTP (ポート 80) が標準でしたが、現在は TLS による暗号化が必須となり、HTTPS (ポート 443) がデフォルトです。Google Chrome は HTTP サイトに「保護されていない通信」と警告を表示します。
- 非標準ポートの利用: SSH をデフォルトの 22 から別のポート (例: 2222) に変更すると、自動化されたブルートフォース攻撃の大半を回避できます。ただし、これはセキュリティの本質的な対策ではなく、あくまで攻撃のノイズを減らす補助的な手段です。
- ポートの競合: 同じポート番号を複数のアプリケーションが同時に使用することはできません。開発環境で「Address already in use」エラーが出たら、そのポートを使用しているプロセスを特定して停止する必要があります。
よくある誤解
- ポート番号を変えればセキュリティが向上する
- 非標準ポートへの変更は自動スキャンの回避に多少効果がありますが、本質的なセキュリティ対策にはなりません。攻撃者は全ポートをスキャンできるため、認証の強化やファイアウォールの適切な設定が本来の対策です。
- ポートを閉じればハッキングされない
- ポートを閉じることは重要な対策ですが、開放が必要なポート (Web サーバーの 443 など) は存在します。開放しているポートで動作するアプリケーションの脆弱性を突かれる可能性があるため、ソフトウェアの更新と適切な設定も不可欠です。
- ポート番号は 80 と 443 だけ知っていれば十分
- Web 開発者でも SSH (22)、DNS (53)、データベース (3306, 5432) など複数のポートを日常的に扱います。トラブルシューティングの際にポート番号の知識がないと、接続問題の原因特定に時間がかかります。