よく使われるネットワークポート番号の基礎知識

ウェブサイトにアクセスしたりネットワークサービスを利用したりするたびに、その裏では必ず具体的なポート番号が関わっている。よく使われるポート番号の意味を知っておくと、ネットワーク通信の理解やトラブルの切り分けに役立つ。

ポート番号とは何か

ポート番号は、トランスポート層のプロトコル(TCPまたはUDP)が同じ端末上の異なるネットワークサービスを区別するために使う番号で、0から65535までの範囲がある。IPアドレスと組み合わせることで初めて、ある通信が具体的にどのサービスを対象としているのかを一意に特定できる。

0〜1023番は「ウェルノウンポート(よく知られたポート)」

この範囲はインターネットの番号割り当て機関によって標準的なサービスに一括で割り当てられている。たとえば80番は暗号化されていないHTTPのウェブアクセス、443番は暗号化されたHTTPSアクセスに対応しており、割り当てられた用途は基本的に変わることがない。

日常的によく目にするいくつかのポート

22番は主にSSHによるリモートログインに、25番はSMTPによるメール送信に、53番はDNSの名前解決に使われる。また110番と143番はそれぞれPOP3、IMAPというメール受信プロトコルに対応しており、これらのポートは日々のネットワーク設定やトラブルシューティングでよく登場する。

1024〜49151番は「登録ポート」

この範囲のポートは、ソフトウェア開発元がインターネットの番号割り当て機関に申請して登録し、特定のアプリケーションやサービス専用に使うことができる。一部のデータベースサービスや業務アプリケーションなどでこの範囲のポートがよく使われる。

49152番以上は「動的ポート」

プライベートポートや一時ポートとも呼ばれ、通常はクライアントが接続を開始する際にOSによって一時的に割り当てられる。接続が終了すればそのポートは解放され、別の接続に再び割り当てられる。事前の登録は必要ない。

ポートはファイアウォール設定と密接に関わる

ファイアウォールは多くの場合、ポート番号をもとにあるトラフィックを許可するか遮断するかを判断する。たとえばウェブサービスを外部に公開する際は80番と443番だけを開放し、それ以外の不要なポートは閉じておくというのが、基本的なセキュリティ設定の考え方の一つである。

ポート番号とIPアドレスの関係

IPアドレスをビルの住所、ポート番号をその中の具体的な部屋番号と考えるとわかりやすい。同じIPアドレスの中で複数の異なるネットワークサービスを同時に動かすことができ、OSはポート番号を手がかりに、届いたデータをどのプログラムに渡せばよいかを判断している。

よくある接続トラブルとポートの関係

ウェブページが開けない、リモート接続に失敗するといった問題の多くは、対象のポートがファイアウォールで遮断されている、サービスがそのポートで待ち受けていない、あるいは別のプログラムがそのポートをすでに使用している、といったことが原因であることが多い。ネットワーク接続の問題を切り分ける際は、対象のポートが開いているか、正しく使われているかを確認することが基本的な第一歩となる。

よくある質問

ウェブページを見るとき、なぜポート番号を手入力しなくてよいのか

ブラウザはデフォルトでHTTPには80番、HTTPSには443番を使うためである。標準的なウェブサービスにアクセスする限り、ブラウザが自動的にデフォルトのポートを使用する。サービスが標準以外のポートで動いている場合にのみ、URLにポート番号を手動で指定する必要がある。

同じポートを複数のプログラムが同時に使うことはできるのか

同じ瞬間において、あるIPアドレス上の特定のポートは、通常は1つのプログラムだけが排他的に待ち受けることができる。別のプログラムが同じポートを使おうとすると、一般的にはポートがすでに使用中であるというエラーが返される。