この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第11回です。
前回学んだMACアドレスに続き、今回は通信先のアプリケーションを識別する ポート番号について学びます。
ポート番号とは?IPアドレスとの違い・役割・代表例を初心者向けに図解
ポート番号は、パソコンやサーバーの中で、 通信データをどのアプリケーションへ渡すのかを判断するための番号です。 この記事では、IPアドレスとの違い、送信元・宛先ポート、 代表的なポート番号、TCP・UDPとの関係を図解します。
サーバーには、Webサイト、メール、ファイル共有など、 複数のサービスが同時に動いていることがあります。
IPアドレスだけでは通信先のサーバーを特定できても、 サーバー内のどのサービスへデータを渡すのかまでは判断できません。
そこで使われるのがポート番号です。
この記事を読み終えるとできること
- ポート番号の役割を説明できる
- IPアドレスとポート番号の違いを説明できる
- 送信元ポートと宛先ポートを区別できる
- 代表的なポート番号を確認できる
- TCPとUDPでポート番号が使われることを説明できる
- ファイアウォールとポート番号の関係を説明できる
ポート番号とは何か
ポート番号とは、パソコンやサーバーの中で、 通信データをどのアプリケーションやサービスへ渡すのかを識別する番号です。
パソコンやサーバーでは、1つのアプリケーションだけが動いているとは限りません。
たとえば、1台のサーバーで次のようなサービスが同時に動作している場合があります。
- Webサイトを提供するサービス
- メールを受信するサービス
- ファイルを転送するサービス
- 遠隔操作を受け付けるサービス
ネットワークからデータが届いたとき、 サーバーはそのデータを適切なサービスへ渡す必要があります。
この振り分けに使用される番号がポート番号です。
ポート番号は、LANケーブルを接続する差し込み口の番号ではありません。
通信データの中に含まれる、アプリケーションを識別するための論理的な番号です。
会社の建物に置き換えて考える
ポート番号の役割は、会社の住所と部署名に置き換えると理解しやすくなります。
| 会社へ荷物を届ける場合 | ネットワーク通信 |
|---|---|
| 会社の住所 | IPアドレス |
| 会社の建物 | パソコンやサーバー |
| 営業部・総務部などの部署 | アプリケーションやサービス |
| 部署を示す内線番号 | ポート番号 |
| 荷物 | 通信データ |
住所だけでは建物までは分かりますが、 建物内のどの部署へ届けるのかは分かりません。
同じように、IPアドレスだけでは通信先の機器までは分かりますが、 機器内のどのアプリケーションへデータを渡すのかは分かりません。
IPアドレスで機器を特定し、ポート番号でアプリケーションを特定します。
IPアドレスとポート番号の違い
IPアドレスとポート番号は、どちらも通信相手を識別するために使われます。 ただし、識別する対象が異なります。
| 項目 | IPアドレス | ポート番号 |
|---|---|---|
| 識別する対象 | 通信する機器やネットワークインターフェース | 機器内のアプリケーションやサービス |
| 役割のイメージ | 建物の住所 | 部署や内線番号 |
| 代表例 | 192.168.1.10 |
443 |
| 主に扱われる場所 | IPによる通信処理 | TCP・UDPによる通信処理 |
IPアドレスとポート番号は組み合わせて使う
実際の通信では、IPアドレスとポート番号を組み合わせて通信先を表します。
203.0.113.20:443という表記は、
「IPアドレスが203.0.113.20の機器で、443番ポートを使用するサービス」
を表しています。
IPアドレスとポート番号をコロンで区切って表す方法は、 設定画面、ログ、接続先情報、コマンド出力などでよく使われます。
通信の全体像を図で理解する
パソコンのWebブラウザから、WebサーバーへHTTPS通信を行う例を考えます。
WebブラウザからHTTPSサーバーへ接続する例
Webサーバーへ届いたデータには、宛先ポート番号として
443が含まれています。
サーバーはその番号を確認し、443番ポートで通信を待ち受けている HTTPSのサービスへデータを渡します。
同じサーバーで複数のサービスを提供できる
1台のサーバー内で複数サービスが動くイメージ
SSH
サーバーを遠隔操作するための通信を受け付けます。
HTTP
暗号化されていないWeb通信を受け付けます。
HTTPS
暗号化されたWeb通信を受け付けます。
このように、同じIPアドレスを持つ1台のサーバーでも、 ポート番号を使い分けることで複数のサービスを同時に提供できます。
送信元ポートと宛先ポート
通信データには、通常、次の2種類のポート番号が含まれます。
- 送信元ポート番号:送信側のアプリケーションを識別する番号
- 宛先ポート番号:受信側のサービスを識別する番号
クライアントからWebサーバーへ送る通信情報
クライアント側では一時的なポート番号を使う
Webサーバー側は、HTTPSの通信を受け付けるために443番ポートを使用します。
一方、クライアント側のWebブラウザは、通信を開始するときに 空いているポート番号を一時的に選択します。
このような一時的に使われるポート番号は、 動的ポート、プライベートポート、 エフェメラルポートなどと呼ばれます。
クライアント側で実際に使用される一時ポートの範囲や選び方は、 OSや設定によって異なる場合があります。
戻りの通信では送信元と宛先が入れ替わる
Webサーバーが応答を返すときは、IPアドレスとポート番号の組み合わせが入れ替わります。
Webサーバーからクライアントへ返す通信情報
クライアントPCは宛先ポート番号の52000を確認し、 応答データを通信を開始したWebブラウザへ渡します。
サーバーの443番ポートだけでなく、クライアント側の一時ポートも 通信相手を識別するために必要です。
複数のブラウザ通信を区別できる
1台のパソコンでは、複数のWebサイトを同時に開くことができます。
それぞれの通信で異なる送信元ポートを使用することで、 戻ってきたデータがどの通信に対する応答なのかを区別できます。
| 通信 | クライアント側 | サーバー側 |
|---|---|---|
| WebサイトAへの通信 | 192.168.1.10:52000 |
203.0.113.20:443 |
| WebサイトBへの通信 | 192.168.1.10:52001 |
198.51.100.30:443 |
| WebサイトCへの通信 | 192.168.1.10:52002 |
192.0.2.40:443 |
ポート番号の範囲と分類
ポート番号は16ビットの数値で表され、 0番から65535番まで存在します。
ポート番号は、大きく次の3つの範囲に分けられています。
システムポート
HTTP、HTTPS、SSH、DNSなど、 広く利用されている代表的なサービスに割り当てられています。
一般に「ウェルノウンポート」と呼ばれることもあります。
ユーザーポート
アプリケーションや製品固有のサービスなどに使用される範囲です。
一般に「登録済みポート」と呼ばれることもあります。
動的・プライベートポート
クライアントが通信を開始するときの一時ポートなどに利用される範囲です。
特定のサービスへ登録するための範囲ではありません。
65536個
0を含むため、0~65535は合計65536個の番号です。
ただし、すべての番号が常に利用できるわけではありません。
ポート番号の分類と、実際にOSが使う一時ポートの範囲は同じとは限りません。
OSの種類や設定によっては、49152番より小さい番号を一時ポートとして使用する場合もあります。
代表的なポート番号
初級段階では、すべてのポート番号を暗記する必要はありません。
まずは、Web通信、名前解決、メール、遠隔操作などで使われる 代表的な番号を確認しましょう。
| ポート番号 | 主なプロトコル・サービス | 主な用途 |
|---|---|---|
| 20・21 | FTP | ファイル転送 |
| 22 | SSH | サーバーやネットワーク機器の安全な遠隔操作 |
| 23 | Telnet | 暗号化されない遠隔操作 |
| 25 | SMTP | メールサーバー間でのメール転送 |
| 53 | DNS | ドメイン名とIPアドレスの対応を確認する |
| 67・68 | DHCP | 端末へIPアドレスなどの設定情報を配布する |
| 80 | HTTP | 暗号化されていないWeb通信 |
| 110 | POP3 | メールサーバーからメールを受信する |
| 123 | NTP | 機器の時刻を同期する |
| 143 | IMAP | メールサーバー上のメールを管理・閲覧する |
| 161・162 | SNMP | ネットワーク機器の監視や通知 |
| 443 | HTTPS | 暗号化されたWeb通信 |
| 445 | SMB | Windows環境などでのファイル共有 |
| 3389 | RDP | Windows端末やサーバーのリモートデスクトップ接続 |
表にある番号は代表的な既定値です。
実際のシステムでは、管理者が設定を変更し、 標準とは異なるポート番号を使用する場合があります。
最初に覚えたい5つ
SSH
安全な遠隔操作に使われます。
DNS
名前解決に使われます。
HTTP
暗号化されていないWeb通信に使われます。
HTTPS
暗号化されたWeb通信に使われます。
RDP
Windowsの遠隔操作に使われます。
暗記だけにしない
「何番か」だけでなく、 「何の通信に使うか」をセットで理解しましょう。
TCP・UDPとポート番号の関係
ポート番号は、主にTCPまたはUDPの通信で使用されます。
TCPとUDPは通信方法の異なる仕組みであり、 ポート番号もTCP用とUDP用で別々に扱われます。
| 項目 | TCP | UDP |
|---|---|---|
| 通信の特徴 | 相手との接続状態を確認しながら、信頼性を重視して通信する | 接続確認を簡略化し、速度やリアルタイム性を重視して通信する |
| ポート番号 | TCP用のポート番号を使用する | UDP用のポート番号を使用する |
| 代表例 | HTTP、HTTPS、SSHなど | DHCP、NTP、DNSの一部通信など |
同じ番号でもTCPとUDPでは別に扱われる
たとえば、TCPの53番ポートとUDPの53番ポートは、 番号は同じでも別の通信として扱われます。
そのため、ファイアウォールの設定や障害調査では、 ポート番号だけでなくTCPかUDPかも確認する必要があります。
「53番ポートを許可した」と書かれていても、 TCPとUDPのどちらを許可したのかが不明確な場合があります。
現場では、TCP/443やUDP/53のように、
通信方式とポート番号をセットで表すことが重要です。
待ち受けポートとは何か
サーバーが外部からの通信を受け付けるためには、 アプリケーションが特定のポート番号で通信を待つ必要があります。
この状態を、ポートを待ち受ける、 リッスンするなどと表現します。
Webサーバーが443番ポートで待ち受けるイメージ
443番ポートへ通信が届いても、 Webサーバーのアプリケーションが停止していれば通信は成立しません。
また、アプリケーションが正常に待ち受けていても、 ファイアウォールが通信を遮断している場合は接続できません。
ポート番号が存在するだけでは通信できない
ポート番号は、常に開いた入口として存在しているわけではありません。
アプリケーションがその番号を使用して待ち受けているときに、 通信を受け付けられる状態になります。
| 状態 | 結果 |
|---|---|
| アプリケーションが待ち受けている | 通信を受け付けられる可能性がある |
| アプリケーションが停止している | 対象ポートで通信を受け付けられない |
| ファイアウォールが遮断している | アプリケーションまで通信が届かない |
| 別のポートで待ち受けている | 接続先のポート番号を変更する必要がある |
ファイアウォールとポート番号
ファイアウォールは、IPアドレスやポート番号などを確認し、 通信を許可するか遮断するかを判断します。
許可する通信
利用者がWebサイトを見るため、 サーバー宛てのTCP/443を許可する。
遮断する通信
外部からの不要な遠隔操作を防ぐため、 TCP/23などを遮断する。
たとえば、WebサーバーでHTTPSだけを公開する場合、 外部からのTCP/443は許可し、 不要なポートへの通信は遮断する設計が考えられます。
ファイアウォールでは、ポート番号だけでなく、 送信元IPアドレス、宛先IPアドレス、TCP・UDPの種類、 通信方向などを組み合わせて制御します。
ポートを変更するだけでは安全にならない
SSHの待ち受けポートを22番から別の番号へ変更すると、 単純な自動探索を受けにくくなる場合があります。
しかし、ポート番号の変更だけで通信が暗号化されたり、 認証が強化されたりするわけではありません。
セキュリティ対策では、不要な通信の遮断、強い認証、 ソフトウェアの更新、アクセス元の制限、ログ監視などを組み合わせる必要があります。
現場でポート番号を確認する場面
ポート番号の知識は、通信障害を切り分けるときに重要です。
たとえば、「サーバーへpingは通るが、Web画面が表示されない」 という状況を考えます。
- IPアドレスへの到達性を確認する pingなどを使い、対象サーバーまで通信できるかを確認します。
- 接続先のポート番号を確認する HTTPSであれば、通常はTCP/443へ接続しているかを確認します。
- サーバー側の待ち受け状態を確認する Webサーバーのアプリケーションが443番ポートで待ち受けているかを確認します。
- ファイアウォールを確認する 途中経路やサーバー自身のファイアウォールで、TCP/443が遮断されていないかを確認します。
- アプリケーションの状態を確認する Webサーバーのサービス停止、設定不備、証明書エラーなどを確認します。
pingが通ることと、特定ポートへ接続できることは別です。
pingはICMPという仕組みを使用しており、 TCPやUDPのポート番号を使用しません。
Windowsで特定ポートへの接続を確認する例
Windows PowerShellでは、次のように接続先とポート番号を指定して確認できます。
実行結果のTcpTestSucceededが
Trueであれば、TCP接続が成功したことを確認できます。
待ち受け状態を確認する例
Windowsでは、次のようなコマンドで使用中のポート番号を確認できます。
実際のコマンドの詳しい使い方は、 初級編第27回「Windowsで確認するネットワークコマンド」で解説します。
コマンドを実行するときは、対象システムの運用ルールや権限を確認してください。
ポート番号に関するよくある勘違い
スイッチなどの物理的な接続口も「ポート」と呼ばれますが、 ポート番号は通信データの中でアプリケーションを識別する論理的な番号です。
IPアドレスで機器は識別できますが、 機器内のどのサービスへ接続するかを判断するにはポート番号が必要です。
サーバー側の宛先ポートは通常443番ですが、 クライアント側では一時的に選ばれた送信元ポートを使用します。
ポート番号を変更しても、通信内容の暗号化や強い認証が自動的に行われるわけではありません。
pingで使われるICMPは、TCPやUDPのようなポート番号を使用しません。
IPアドレスで機器を識別し、 ポート番号で機器内のアプリケーションやサービスを識別します。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。
問題1.ポート番号の役割として最も適切なものはどれですか。
- ネットワーク上の機器を識別する
- 機器内のアプリケーションやサービスを識別する
- LANケーブルの種類を識別する
- データを暗号化する
解答を見る
ポート番号は、パソコンやサーバーの中で、 通信データをどのアプリケーションへ渡すのかを識別します。
問題2.HTTPSで一般的に使用されるポート番号はどれですか。
- 22
- 53
- 80
- 443
解答を見る
HTTPSでは、一般的にTCPの443番ポートを使用します。
問題3.クライアントPCからHTTPSサーバーへ通信するとき、 宛先ポートが443番であれば、送信元ポートも必ず443番になりますか。
解答を見る
クライアント側では、通常、空いている一時的なポート番号が送信元ポートとして選ばれます。
問題4.次の通信情報で、サーバーが提供しているサービスを判断するために 主に確認する項目はどれですか。
192.168.1.10:52000 → 203.0.113.20:443
- 送信元IPアドレス
- 送信元ポート番号
- 宛先IPアドレス
- 宛先ポート番号
解答を見る
サーバー側でどのサービスへデータを渡すかは、 主に宛先ポート番号を確認して判断します。 この例では443番なので、HTTPS通信と考えられます。
問題5.次の文章の空欄を埋めてください。
IPアドレスは通信先の「( A )」を識別し、 ポート番号はその中で動作する「( B )」を識別します。
解答を見る
IPアドレスとポート番号を組み合わせることで、 通信先をより具体的に特定できます。
実践演習:Web通信のポート番号を読み取ろう
次の通信情報を確認し、送信元と宛先の役割を考えてみましょう。
演習用の通信情報
課題1.クライアントとサーバーを判断する
どちらのIPアドレスがクライアントで、 どちらがWebサーバーと考えられるでしょうか。
Webサーバー:__________
課題1の解答を見る
- クライアント:192.168.10.25
- Webサーバー:198.51.100.50
クライアントからサーバーの443番ポートへ通信していると判断できます。
課題2.それぞれのポート番号の役割を答える
53120番と443番は、それぞれ何のために使われているでしょうか。
443番:________________
課題2の解答を見る
- 53120番:クライアント側で一時的に使用される送信元ポート
- 443番:サーバー側でHTTPS通信を受け付ける宛先ポート
課題3.戻りの通信情報を書く
Webサーバーからクライアントへ応答を返す場合の、 送信元IP、送信元ポート、宛先IP、宛先ポートを書いてください。
送信元ポート:________
宛先IP:___________
宛先ポート:_________
課題3の解答を見る
- 送信元IP:198.51.100.50
- 送信元ポート:443
- 宛先IP:192.168.10.25
- 宛先ポート:53120
戻りの通信では、送信元と宛先のIPアドレス・ポート番号が入れ替わります。
課題4.障害原因を考える
サーバーへのpingは成功しますが、 TCP/443への接続は失敗します。 考えられる原因を3つ挙げてください。
課題4の解答例を見る
- Webサーバーのアプリケーションが停止している
- Webサーバーが443番以外のポートで待ち受けている
- 途中のファイアウォールがTCP/443を遮断している
- サーバー自身のファイアウォールがTCP/443を遮断している
- Webサーバーの設定に誤りがある
pingが成功していても、特定のTCPポートへ接続できるとは限りません。
自分の言葉で説明する課題
最後に、次の質問へ自分の言葉で答えてください。
「IPアドレスがあるのに、なぜポート番号も必要なのですか?」 と質問されました。30秒程度で説明してください。
ポート番号は________________________。
説明例を見る
IPアドレスは、通信先となるパソコンやサーバーを特定するための情報です。 ただし、1台のサーバーではWebやメールなど複数のサービスが動くため、 IPアドレスだけではどのサービスへデータを渡すか判断できません。 そこで、ポート番号を使って機器内のアプリケーションやサービスを識別します。
模範解答と一字一句同じである必要はありません。
「IPアドレスは機器」「ポート番号はアプリケーション」 という役割の違いを説明できれば、この記事の目標は達成です。
まとめ
- ポート番号は、機器内のアプリケーションやサービスを識別するための番号
- IPアドレスは通信先の機器を識別し、ポート番号は機器内のサービスを識別する
- 実際の通信では、送信元IP、送信元ポート、宛先IP、宛先ポートを組み合わせて使用する
- サーバー側では443番などの決まったポートを使い、 クライアント側では一時的な送信元ポートを使用することが多い
- ポート番号は0番から65535番まで存在する
- TCPとUDPでは、同じポート番号でも別の通信として扱われる
- アプリケーションがポートを待ち受けていても、 ファイアウォールに遮断されると通信できない
- pingが通ることと、TCP/443など特定ポートへ接続できることは別
ポート番号を理解すると、 「サーバーまでは到達できるのにサービスを利用できない」という障害を、 IP通信とアプリケーション通信に分けて考えられるようになります。
参考情報
初級編では、ネットワークの全体像からIPアドレス、MACアドレス、 ポート番号、通信プロトコル、DNS、TCP、基本コマンド、 障害切り分けまでを順番に学びます。

コメント