ネットワーク

ポート番号とは?22・80・443・3306の役割を初心者向けに解説

ポート番号の基本概念を説明し、22・80・443・3306がどのサービスで使われるのか、公開時の注意点とともに整理します。

この記事でわかること

  • ポート番号は、同じサーバー上で動く通信サービスを識別するための番号です。
  • 22・80・443・3306は、SSH・HTTP・HTTPS・MySQL系サービスと関連して説明される代表例です。
  • ポートを公開する際は、必要性、接続元、暗号化、認証、ファイアウォール設定を確認します。

ポート番号とは何か

ポート番号は、サーバー上で動作している通信サービスを識別するための番号です。IPアドレスが「どのホストへ接続するか」を示すのに対し、ポート番号は「そのホストのどのサービスへ接続するか」を示します。たとえば1台のサーバーでWebサーバーとSSHサーバーを同時に動かす場合、IPアドレスに加えてポート番号を使うことで、通信の届け先を分けられます。IANAも、ポート番号は異なるサービスを区別するために使われると説明しています。IANAのサービス名・ポート番号登録

ただし、ポート番号だけで安全性が決まるわけではありません。認証、暗号化、アクセス制御、ログ監視などを組み合わせて考える必要があります。

22・80・443・3306の役割

代表的なポート番号と、一般に関連づけられるサービスは次のとおりです。

ポート番号代表的なプロトコル・サービス主な用途通信の保護インターネットへ公開する際の注意点
22SSHサーバーへのリモート接続SSHの設定に依存接続元、認証方式、管理対象ユーザーを制限する
80HTTPWebサイトやHTTP APIへの接続通常は暗号化されないHTTPSへの移行やリダイレクト設定を確認する
443HTTPSTLSで保護されたHTTP通信TLSで保護証明書やTLS設定、公開範囲を確認する
3306MySQL系サービスデータベースへの接続データベースと設定に依存アプリケーションサーバーなど必要な接続元に限定する
代表的なポート番号とサービス

IANAの登録では、22番はSSH、80番はHTTP、443番はTLS上のHTTP、3306番はMySQLとして登録されています。IANAの登録内容を確認する

これらはあくまで慣例的な対応です。サービスによっては待ち受けるポート番号を変更できるため、「ポート番号とサービスが常に一対一で固定される」とは限りません。

クライアントからサービスへ接続する流れ

接続時は、クライアントが接続先のIPアドレスまたはドメイン名とポート番号を指定して通信を開始します。サーバー側では、そのポート番号で待ち受けているサービスが接続を受け付けます。

  1. 接続先のドメイン名を使う場合は、名前解決によってIPアドレスを取得する。
  2. クライアントがIPアドレスとポート番号へ接続する。
  3. サーバー上のサービスが対象ポートで待ち受けていれば、接続処理が進む。
  4. サービス停止、ファイアウォールによる遮断、認証失敗などがあると接続できない。

そのため、接続障害ではポート番号だけでなく、名前解決、サービスの起動状態、待ち受け設定、ネットワーク経路、認証の状態を分けて確認します。

サーバー公開時に確認すること

  • 外部公開が本当に必要かを確認し、不要なポートは開放しない。
  • 接続元を限定できる場合は、特定のIPアドレスやネットワークだけを許可する。
  • 22番では、強固な認証方式や管理対象ユーザーの制限を検討する。
  • 3306番では、原則としてアプリケーションサーバーなど必要な接続元に限定する。
  • 80番と443番では、利用する通信方式、リダイレクト、証明書、TLS設定を確認する。
  • OSやクラウドのファイアウォール、ルーター、セキュリティグループなど複数の制御箇所を確認する。

データベースを公開する場合は、公開アクセスを必要最小限にし、信頼できるIPアドレスやネットワークだけを許可する構成が基本です。AWSのRDSドキュメントでも、公開アクセスを利用する場合は厳格なアクセス制御、強固な認証、暗号化が必要とされています。AWSによるRDSの公開・非公開アクセスの説明

なお、ポート番号を変更するだけでは十分な防御になりません。認証、ソフトウェア更新、最小権限、ログ監視、ファイアウォール設定を組み合わせて対策します。

ポート番号を確認するときの見方

  1. 接続先のホスト名またはIPアドレス、ポート番号、想定するサービスを整理する。
  2. サービスが起動しているか、対象ポートで待ち受けているかを確認する。
  3. ファイアウォールやセキュリティグループなど、ネットワーク経路で遮断されていないかを確認する。
  4. 接続できた場合も、意図したプロトコル、認証、暗号化の状態になっているかを確認する。

確認コマンドや設定ファイルの内容は、OS、クラウド、Webサーバー、データベース製品によって異なります。実際の調査では、対象環境を明示したうえで確認してください。

参考