ネットワーク設定やサーバーについて調べていると、
「IPアドレスを確認してください」
「ポート443を開放する」
「192.168.1.10:8080へ接続する」
といった表現を目にすることがあります。
しかし、
「IPアドレスとポート番号は何が違う?」
「192.168.1.1の後ろに付く8080とは何?」
「ポート番号はパソコンごとに決まっている?」
「IPアドレスが分かれば接続先のアプリまで分かる?」
「TCPとUDPでは同じポート番号を使える?」
「ポート開放とはIPアドレスを公開すること?」
と迷うことがあります。
結論からいうと、「IPアドレス」はネットワーク上で通信先となるインターフェース等を識別し、データを目的地まで届けるために使うアドレスです。一方、「ポート番号」は、その通信先の中で、どのサービス・通信エンドポイントへデータを渡すかを識別するための番号です。
初心者向けにたとえるなら、
IPアドレス=「建物の住所」
ポート番号=「その建物の受付窓口・部屋番号」
と考えると分かりやすいでしょう。
たとえば、
203.0.113.10:443
という表記があった場合、
203.0.113.10=通信先を示すIPアドレス
443=その通信先で利用するポート番号
という関係です。
IETFのRFC 6335では、ポート番号を16ビットの番号とし、同じ通信相手間の複数のトランスポート通信を区別したり、アプリケーションプロトコルやサービスを識別したりするために利用すると説明しています。
一方、IPでは送信元・宛先のIPアドレスを利用して、ネットワークをまたいでデータを目的地へ転送します。
この記事では、「IPアドレス」と「ポート番号」の違いから、IPv4・IPv6、TCP・UDP、0〜65535のポート番号、ウェルノウンポート、動的ポート、NAT・NAPT、ポート開放との関係まで詳しく解説します。
- 「IPアドレス」と「ポート番号」の違い【結論】
- 「IPアドレス」とは?
- IPv4アドレスとは?
- IPv6アドレスとは?
- IPアドレスは「パソコンそのものの番号」?
- 「グローバルIPアドレス」と「プライベートIPアドレス」の違い
- 「ポート番号」とは?
- IPアドレスだけでは足りない理由
- ポート番号は何番まである?
- 「ウェルノウンポート」とは?
- 「80番=HTTP」と決まっている?
- HTTPSで「:443」を書かないのはなぜ?
- ポート番号はサーバーだけが持つ?
- 「動的ポート」とは?
- 通信は「IPアドレス+ポート番号」で識別する
- TCPとUDPでは同じポート番号を使える?
- IPアドレスとポート番号をURLで指定できる?
- ドメイン名とIPアドレスの違い
- 「IPアドレス=住所、ポート=部屋番号」というたとえは完全に正しい?
- 「ポートを開く」とは?
- 「ポート開放」とはIPアドレスを公開すること?
- 「NAT」とIPアドレスの関係
- 「NAPT」とポート番号の関係
- NAPTを具体例で理解する
- 「ポートが閉じている」とは?
- ポート番号を変えれば安全になる?
- IPアドレスを隠せばポート番号も分からない?
- IPv6アドレスとポート番号を一緒に書く場合
- 同じIPアドレスで複数のWebサイトを運営できる?
- IPアドレスとMACアドレスの違い
- 「IPアドレス・ポート番号」で迷ったときの3秒判定
- 「IPアドレス」を使った例文
- 「ポート番号」を使った例文
- 具体例で比較:Webサイトへアクセスする
- 具体例で比較:1台のサーバーでSSHとWebを動かす
- よくある間違い1:「IPアドレスとポート番号は同じ種類の番号」と思う
- よくある間違い2:「IPアドレスが分かれば接続するサービスも決まる」と思う
- よくある間違い3:「ポート443はパソコンに1個しかない」と思う
- よくある間違い4:「ポート番号が同じなら通信内容も必ず同じ」と思う
- よくある間違い5:「ポートを変えればセキュリティ対策になる」と思う
- よくある間違い6:「UDPにはポート番号がない」と思う
- よくある間違い7:「家庭内の192.168.x.xへインターネットから直接接続できる」と思う
- 「IPアドレス」と「ポート番号」に関するよくある質問
- まとめ
- 参考リンク・出典
「IPアドレス」と「ポート番号」の違い【結論】
| 比較項目 | IPアドレス | ポート番号 |
|---|---|---|
| 主な役割 | ネットワーク上の通信先を識別する | 通信先で利用するサービス・エンドポイントを識別する |
| たとえ | 建物の住所 | 部屋・受付窓口 |
| 代表例 | 192.168.1.10、2001:db8::1 | 22、53、80、443、8080など |
| 大きさ | IPv4は32ビット、IPv6は128ビット | 16ビット |
| 値の範囲 | IPバージョンによる | 0〜65535 |
| 関係する層 | IP・ネットワーク層 | 主にTCP・UDPなどのトランスポート層 |
| 主な目的 | どこへ送るか | その中のどこへ渡すか |
3秒で判断するなら、
「どの通信先へ届ける?」 → IPアドレス
「その通信先のどのサービスへ届ける?」 → ポート番号
と考えてください。
「IPアドレス」とは?
ネットワーク上で通信先を示すためのアドレス
IPアドレスは、Internet Protocolを利用した通信で、送信元・宛先を識別し、データを目的地へ届けるために使用されます。
IPv4の基本仕様であるRFC 791では、IPが送信元から宛先へデータグラムを届けるためにアドレスを使用し、そのアドレスを基にルーティングを行う仕組みが規定されています。
IPアドレスには大きく、
- IPv4アドレス
- IPv6アドレス
があります。
IPv4アドレスとは?
IPv4アドレスは、
32ビット
のアドレスです。
一般には、
192.168.1.10
のように、0〜255の10進数を4つ「.」で区切った形式で表します。
32ビットなので、理論上のアドレス空間は、
2の32乗=約42.9億
です。
ただし、そのすべてが一般の端末へ自由に割り当てられるわけではなく、特別な用途に予約されたアドレス範囲などもあります。
IPv6アドレスとは?
IPv6アドレスは、
128ビット
のアドレスです。
RFC 4291では、IPv6アドレスをインターフェースやインターフェース集合を識別する128ビットの識別子として定義しています。
たとえば、
2001:db8:1234:5678::1
のように、16進数と「:」を使って表します。
IPv4より圧倒的に大きなアドレス空間を持っていることが特徴です。
IPアドレスは「パソコンそのものの番号」?
初心者向けには、
「ネットワーク上の機器を識別する番号」
と説明されることがあります。
ただし厳密には、IPアドレスは単純に物理的な「パソコン本体」を識別する永久番号ではありません。
ネットワークインターフェースへアドレスが割り当てられ、1台の機器が複数のIPアドレスを持つこともあります。
また、
- Wi-Fi
- 有線LAN
- VPN
- IPv4
- IPv6
などの状況によって、1台の端末に複数のアドレスが存在することも珍しくありません。
「グローバルIPアドレス」と「プライベートIPアドレス」の違い
IPv4では、家庭や会社のLANで、
192.168.x.x
などのプライベートアドレスがよく利用されます。
RFC 1918では、プライベートネットワーク用として、
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
のアドレス空間が予約されています。
これらは通常、そのままインターネット全体で宛先としてルーティングするためのグローバルアドレスとしては使いません。
家庭用ルーターなどでは、NAT・NAPTと呼ばれる仕組みを利用して、内部のプライベートIPアドレスと外部通信を対応付けています。
「ポート番号」とは?
同じ通信先の中でサービスを区別する番号
ポート番号は、TCPやUDPなどのトランスポートプロトコルで利用する16ビットの番号です。
RFC 7605では、ポート番号には大きく、
- 同一ホスト内でトランスポート通信を振り分ける
- サービスを識別する
という役割があると説明しています。
たとえば1台のサーバーで、
- Webサーバー
- SSHサーバー
- DNSサーバー
- メールサーバー
を同時に動かすことができます。
IPアドレスだけでは、同じサーバーのどのサービスへデータを渡せばよいのか区別できません。
そこでポート番号を使用します。
IPアドレスだけでは足りない理由
たとえば、1台のサーバーが、
203.0.113.10
というIPアドレスを持っているとします。
そのサーバーでは、
- Webサイト
- SSH
- メール
など複数のサービスを同時に提供できます。
そこで、
203.0.113.10:22
203.0.113.10:80
203.0.113.10:443
のようにポート番号を組み合わせることで、利用するサービスを区別できます。
つまり、
IPアドレスだけ=建物までは分かる
IPアドレス+ポート番号=建物の中の受付先まで分かる
というイメージです。
ポート番号は何番まである?
TCP・UDPなどで利用するポート番号は、
16ビット
です。
そのため数値としては、
0〜65535
の範囲があります。
IANAおよびRFC 6335では、この範囲を大きく3つに分類しています。
| 範囲 | 名称 | 概要 |
|---|---|---|
| 0〜1023 | System Ports | Well Known Portsとも呼ばれる |
| 1024〜49151 | User Ports | Registered Portsとも呼ばれる |
| 49152〜65535 | Dynamic / Private Ports | 動的・私的利用のための範囲 |
なお、数値として0も16ビットの範囲に含まれますが、IANAのレジストリではTCP・UDPのポート0はReservedとされています。
「ウェルノウンポート」とは?
0〜1023は現在IANAでは、
System Ports
と呼ばれる範囲です。
歴史的には、
Well Known Ports
という名称でも広く知られています。
代表的なサービスには、
| 代表的なポート | サービス例 | 主なトランスポート |
|---|---|---|
| 22 | SSH | TCP |
| 25 | SMTP | TCP |
| 53 | DNS | TCP・UDP |
| 80 | HTTP | TCP |
| 443 | HTTPS | TCP、またQUICではUDP 443が利用される |
IANAは、Service Name and Transport Protocol Port Number Registryで、サービス名とTCP・UDP等のポート番号割り当てを管理しています。
「80番=HTTP」と決まっている?
IANAでは80/TCPがHTTPサービスとして登録されています。
しかし技術的には、Webサーバーを別のポート番号で動かすこともできます。
たとえば、
http://example.com:8080/
のように、URLへポート番号を明示できます。
RFC 7605でも、Webサーバーはクライアント側が接続先ポートを知っていれば、理論上は任意の適切なポートで動かせることが説明されています。
つまり、
ポート番号=通信内容そのものを強制的に決める番号
ではありません。
IANAへの登録によって、
「このサービスでは通常このポートを使う」
という共通認識が作られていると考えると正確です。
HTTPSで「:443」を書かないのはなぜ?
HTTPSの既定ポートは443です。
そのため通常、
https://example.com/
と書けば、明示的に別ポートを指定しない限り、HTTPSの既定ポートが利用されます。
わざわざ、
https://example.com:443/
と書く必要はありません。
一方、8443など別ポートでHTTPSサービスを提供するなら、
https://example.com:8443/
のようにポート番号を明示することがあります。
ポート番号はサーバーだけが持つ?
いいえ。
通信では通常、
- 送信元IPアドレス
- 送信元ポート番号
- 宛先IPアドレス
- 宛先ポート番号
があります。
たとえばパソコンからHTTPSサイトへ接続するとき、サーバー側の宛先ポートは443でも、利用者側の送信元ポートには一時的な別の番号が自動的に割り当てられます。
これによって、同じパソコンから同時に多数のWeb接続を行っても、それぞれの通信を区別できます。
「動的ポート」とは?
IANAでは49152〜65535を、
Dynamic / Private Ports
としています。
クライアントがサーバーへ接続するときの一時的な送信元ポートなどとして、このような動的ポートが利用されることがあります。
たとえば、
192.168.1.10:53021 → 203.0.113.20:443
のような通信です。
この例では、
53021=クライアント側の一時的な送信元ポート
443=HTTPSサーバー側の宛先ポート
です。
なお、実際にOSが一時ポートとして使用する範囲は、OSや設定によって異なる場合があります。
通信は「IPアドレス+ポート番号」で識別する
TCPやUDPの通信を理解するときは、送信先だけを見るのではなく、
送信元と宛先の組み合わせ
が重要です。
TCP通信などでは、一般に、
- 通信プロトコル
- 送信元IPアドレス
- 送信元ポート番号
- 宛先IPアドレス
- 宛先ポート番号
を組み合わせて通信を識別します。
この組み合わせは、
5タプル(5-tuple)
と呼ばれることがあります。
RFC 6335でも、通信する両端のIPアドレスと送信元・宛先ポート番号の組み合わせによって、特定トランスポートプロトコルの通信セッションを区別できると説明しています。
TCPとUDPでは同じポート番号を使える?
使えます。
TCPとUDPのポート番号は、それぞれのトランスポートプロトコルごとに扱われます。
つまり、
TCP 53
と、
UDP 53
は別です。
DNSのようにTCPとUDPの両方で同じ番号を利用するサービスもあります。
またHTTPS関連では、
TCP 443
が従来のHTTPS通信に利用される一方、HTTP/3ではQUICが、
UDP 443
を利用する構成が一般的です。
したがって、
「443番ポート」
だけでなく、必要に応じて、
「TCP 443なのか、UDP 443なのか」
まで確認することが重要です。
IPアドレスとポート番号をURLで指定できる?
できます。
たとえば、
http://192.168.1.100:8080/
というURLなら、
192.168.1.100=IPアドレス
8080=ポート番号
です。
ただし一般的なWebサイトでは、IPアドレスを直接覚えて利用するのではなく、
example.com
のようなドメイン名を利用します。
DNSによってドメイン名からIPアドレスを調べ、ブラウザはそのIPアドレスへ接続します。
ドメイン名とIPアドレスの違い
ドメイン名は、人間が扱いやすい名前です。
IPアドレスは、ネットワーク通信で宛先を指定するために使われます。
大まかな流れは、
- 利用者がexample.comを入力する
- DNSでexample.comに対応するIPアドレスを調べる
- 取得したIPアドレスへ接続する
- HTTPSなら通常443番など、必要なポートへ接続する
となります。
したがって、
ドメイン名・IPアドレス・ポート番号
はそれぞれ役割が違います。
「IPアドレス=住所、ポート=部屋番号」というたとえは完全に正しい?
基本理解には便利ですが、完全な対応ではありません。
IPアドレスはネットワークインターフェース等を識別するためのアドレスであり、1台の物理機器が複数持つこともあります。
ポート番号も物理的な「穴」ではなく、OSやトランスポートプロトコルが通信を振り分けるために使う論理的な番号です。
したがって、
「住所と部屋番号」は初心者向けのイメージ
として利用し、実際には、
IPアドレス=ネットワーク上の宛先
ポート番号=トランスポート通信・サービスの識別子
と理解するのが正確です。
「ポートを開く」とは?
「ポートを開く」という言葉には、文脈によって複数の意味があります。
たとえば、
- サーバーアプリを特定ポートで待ち受けさせる
- ファイアウォールでそのポートへの通信を許可する
- ルーターで外部から内部サーバーへの転送を設定する
などです。
そのため、
「ポートを開ければ必ず外部からアクセスできる」
とは限りません。
サーバー、OS、ファイアウォール、ルーター、回線事業者など複数の条件が関係します。
「ポート開放」とはIPアドレスを公開すること?
違います。
一般家庭などでいう「ポート開放」は、外部から特定のポートへ届いた通信を、LAN内の特定端末・サービスへ転送できるよう設定することを指す場合があります。
IPアドレスそのものとポート番号は別の情報です。
ただしインターネット側からサービスへ接続するためには、通常、
- 外部から到達可能なアドレス
- 利用するポート番号
- ルーター等の転送設定
- ファイアウォール設定
などが関係します。
「NAT」とIPアドレスの関係
NATは、
Network Address Translation
の略です。
IPアドレスを別のIPアドレスへ変換する仕組みです。
家庭内では、
192.168.1.10
192.168.1.11
など複数のプライベートIPアドレスを持つ端末が、ルーターを経由してインターネットへ接続します。
このとき外部では、ルーター側のグローバルアドレスを利用して通信する構成があります。
「NAPT」とポート番号の関係
RFC 3022では、IPアドレスだけを変換するBasic NATに加えて、
Network Address Port Translation(NAPT)
が説明されています。
NAPTでは、
- IPアドレス
- TCP・UDPのポート番号
を組み合わせて変換します。
これによって、家庭内の複数端末が、1つのグローバルIPv4アドレスを共有して外部へ通信できます。
一般的な家庭用ルーターで単に「NAT」と呼ばれている仕組みの中には、実際にはこのようなポート変換を伴うものがあります。
NAPTを具体例で理解する
家庭内に、
192.168.1.10:52001
192.168.1.11:53002
という2台の端末があるとします。
ルーターが1つのグローバルIPv4アドレス、
203.0.113.5
を持っている場合、外部通信を、
203.0.113.5:40001
203.0.113.5:40002
などへ変換して区別できます。
戻ってきた通信のポート番号を見れば、ルーターはLAN内のどの端末へ返せばよいか判断できます。
このように、ポート番号はNAT環境でも重要な役割を持ちます。
「ポートが閉じている」とは?
ポート番号そのものに物理的な蓋があるわけではありません。
一般に「ポートが閉じている」とは、
- そのポートでサービスが待ち受けていない
- ファイアウォールが通信を遮断している
- ルーターで転送されていない
など、外部からそのサービスへ接続できない状態を指します。
反対に「ポートが開いている」とは、ネットワーク経由で何らかのサービスが応答可能な状態を意味することがあります。
ポート番号を変えれば安全になる?
ポート番号を変えるだけで本質的に安全になるわけではありません。
たとえばSSHを22番ではなく別のポートで動かせば、自動化された単純な22番ポートへのスキャンを減らせる場合があります。
しかしポートスキャンによって別ポートを発見される可能性があります。
本質的な対策としては、
- 不要なサービスを公開しない
- 認証を強化する
- ソフトウェアを更新する
- ファイアウォールで接続元を制限する
- 安全な暗号通信を使う
などが重要です。
IPアドレスを隠せばポート番号も分からない?
IPアドレスとポート番号は別の情報ですが、インターネット越しに特定サービスへ接続するには、通常、そのサービスへ到達するためのアドレスとポート等が必要です。
ただしDNS、プロキシ、CDN、ロードバランサー、NATなどが介在するため、利用者が見ているIPアドレスが実際のアプリケーションサーバー自身のIPアドレスとは限りません。
現在の大規模Webサービスでは、1つのドメイン名の背後に多数のサーバーが存在することも一般的です。
IPv6アドレスとポート番号を一緒に書く場合
IPv6アドレスには「:」が含まれます。
そのためURLなどでIPv6アドレスとポート番号を組み合わせる場合、IPv6アドレスを、
[ ]
で囲んで区別します。
たとえば、
http://[2001:db8::1]:8080/
のような形式です。
この場合、
2001:db8::1=IPv6アドレス
8080=ポート番号
です。
同じIPアドレスで複数のWebサイトを運営できる?
できます。
現在のWebサーバーでは、同じIPアドレス・同じポート番号で複数のドメインを扱うことも可能です。
HTTPではHost情報を利用し、HTTPSではTLSのSNIなどの仕組みも組み合わせることで、どのドメイン向けの通信なのか判断できます。
したがって、
「1つのIPアドレス+1つのポート番号には1サイトしか置けない」
というわけではありません。
IPアドレスとMACアドレスの違い
IPアドレスと混同されやすいものに、
MACアドレス
があります。
大まかには、
IPアドレス=IPネットワーク上でルーティングに利用
MACアドレス=主に同一リンク・LAN内で通信相手を識別するために利用
という違いがあります。
インターネットの遠隔サーバーへ通信するとき、パケットがルーターを経由するたびにリンク層の情報は変化し得ますが、IPアドレスはIP通信の送信元・宛先として重要な役割を持ちます。
「IPアドレス・ポート番号」で迷ったときの3秒判定
| こんな場合 | 答え |
|---|---|
| 192.168.1.10 | IPアドレス |
| 2001:db8::1 | IPv6アドレス |
| 443 | ポート番号 |
| 通信先のネットワーク上の場所を示す | IPアドレス |
| 同じ通信先でサービスを区別する | ポート番号 |
| IPv4では32ビット | IPアドレス |
| 16ビット・0〜65535 | ポート番号 |
| TCPとUDPでそれぞれ利用 | ポート番号 |
最も簡単に覚えるなら、
IPアドレス=「どの宛先?」
ポート番号=「その宛先のどのサービス?」
です。
「IPアドレス」を使った例文
- サーバーのIPアドレスを確認する。
- DNSでドメイン名からIPアドレスを取得する。
- パソコンにプライベートIPアドレスが割り当てられた。
- IPv6のIPアドレスでサーバーへ接続する。
- ルーターがIPアドレスを基にパケットを転送する。
「ポート番号」を使った例文
- HTTPSでは443番ポートが広く利用される。
- ファイアウォールで特定のポート番号を許可する。
- サーバーが8080番ポートで待ち受けている。
- TCPとUDPでは同じポート番号でも別に扱われる。
- クライアント側に一時的な送信元ポートが割り当てられる。
具体例で比較:Webサイトへアクセスする
ブラウザで、
https://example.com/
を開いたとします。
簡略化すると、
- DNSでexample.comに対応するIPアドレスを取得する
- そのIPアドレスへ接続する
- HTTPSで利用するポートへ接続する
- TLS通信を確立する
- HTTPリクエスト・レスポンスをやり取りする
という流れです。
ここで、
IPアドレス=接続先を探す
ポート番号=接続先のサービスを選ぶ
という役割の違いが分かります。
具体例で比較:1台のサーバーでSSHとWebを動かす
1台のサーバーに、
203.0.113.10
というIPアドレスがあるとします。
このサーバーが、
TCP 22=SSH
TCP 443=HTTPS
で待ち受けていれば、同じIPアドレスでも異なるサービスへ接続できます。
IPアドレスだけではなくポート番号があるからこそ、1台のホストで多くのネットワークサービスを同時に提供できます。
よくある間違い1:「IPアドレスとポート番号は同じ種類の番号」と思う
違います。
IPアドレスはネットワーク上の宛先を指定するアドレスで、ポート番号はTCP・UDP等で通信やサービスを識別する番号です。
よくある間違い2:「IPアドレスが分かれば接続するサービスも決まる」と思う
1つのIPアドレスで複数のサービスを提供できます。
どのサービスへ接続するかを区別するためにポート番号が利用されます。
よくある間違い3:「ポート443はパソコンに1個しかない」と思う
ポート番号はトランスポートプロトコルやIPアドレス等との組み合わせで扱われます。
異なるIPアドレスのサーバーなら、それぞれがTCP 443でHTTPSサービスを提供できます。
またTCP 443とUDP 443も別の通信です。
よくある間違い4:「ポート番号が同じなら通信内容も必ず同じ」と思う
ポート番号はサービス識別の共通認識として重要ですが、番号そのものが通信内容を強制するわけではありません。
設定次第では、一般的でないサービスを別のポートで動かすこともできます。
よくある間違い5:「ポートを変えればセキュリティ対策になる」と思う
ポート変更だけでは本質的な対策にはなりません。
不要なサービスを閉じ、認証・暗号化・ファイアウォール・アップデートなどを適切に組み合わせる必要があります。
よくある間違い6:「UDPにはポート番号がない」と思う
UDPもポート番号を使用します。
RFC 768のUDPヘッダーには送信元ポートと宛先ポートのフィールドがあります。
よくある間違い7:「家庭内の192.168.x.xへインターネットから直接接続できる」と思う
192.168.x.xはRFC 1918で定められたプライベートIPv4アドレス範囲です。
インターネット側からそのアドレスをそのまま宛先として一般的にルーティングするものではありません。
外部からLAN内サービスへ接続させる場合には、NAT・NAPT、ポート転送、ファイアウォール等の設定が関係します。
「IPアドレス」と「ポート番号」に関するよくある質問
Q1. IPアドレスとポート番号の一番簡単な違いは?
IPアドレスは「どの通信先か」を示し、ポート番号は「その通信先のどのサービスか」を示します。
Q2. ポート番号はいくつありますか?
ポート番号は16ビットなので、数値としては0〜65535です。
IANAでは0〜1023、1024〜49151、49152〜65535の3範囲に分類しています。
Q3. 0番ポートも使えますか?
数値範囲には含まれますが、IANAのTCP・UDPポートレジストリではポート0はReservedです。
一般的なサービス用ポートとして利用する番号ではありません。
Q4. TCPとUDPで同じポート番号を使えますか?
はい。
TCPとUDPでは別のポート番号空間として扱われます。
DNSの53番のように、TCP・UDPの両方に登録されているサービスもあります。
Q5. HTTPSの443はIPアドレスですか?
いいえ。
443はポート番号です。
実際の接続ではIPアドレスと443などのポート番号を組み合わせます。
Q6. IPアドレスだけでWebサイトを開けますか?
サーバー構成によっては可能ですが、現在のWebサイトではドメイン名を前提とした設定が多く、IPアドレスだけでは期待したサイトが表示されない場合があります。
HTTPSでは証明書のドメイン名との一致も重要です。
Q7. ポート開放すると危険ですか?
外部からアクセス可能なサービスが増えれば攻撃対象も増える可能性があります。
必要のないポートを安易に公開せず、必要なサービスだけを適切な認証・暗号化・ファイアウォール設定とともに公開することが重要です。
Q8. IPアドレスはずっと同じですか?
必ずしも同じではありません。
ネットワーク環境や契約、DHCP等によって変更されることがあります。
固定IPアドレスを利用する構成もあります。
Q9. IPv6でもポート番号を使いますか?
はい。
IPv6上でもTCP・UDPなどを利用する場合にはポート番号を使用します。
IPv6になったからポート番号が不要になるわけではありません。
Q10. 「IPアドレス+ポート番号」は何を表しますか?
ネットワーク上の通信先と、その通信先で利用するトランスポートエンドポイント・サービスを組み合わせて示します。
さらに実際の通信では、送信元IP・送信元ポート・宛先IP・宛先ポート・トランスポートプロトコル等の組み合わせで通信を識別します。
まとめ
「IPアドレス」と「ポート番号」は、どちらもネットワーク通信で重要ですが、役割は明確に異なります。
| IPアドレス | ポート番号 |
|---|---|
| ネットワーク上の宛先を示す | サービス・通信エンドポイントを区別する |
| IPv4は32ビット | 16ビット |
| IPv6は128ビット | 0〜65535 |
| 192.168.1.10など | 22、53、80、443など |
| 「どこへ送る?」 | 「その中のどこへ渡す?」 |
最も簡単な覚え方は、
IPアドレス=「住所」
ポート番号=「受付窓口・部屋番号」
です。
ただし厳密には、IPアドレスは物理的な建物やパソコン本体を永久に識別する番号ではなく、ネットワークインターフェース等へ割り当てられるアドレスです。
ポート番号も物理的な接続口ではなく、TCPやUDPなどが通信・サービスを振り分けるために利用する論理的な番号です。
たとえば、
203.0.113.10:443
であれば、
203.0.113.10=ネットワーク上の宛先
443=その宛先で利用するサービス側のポート
と整理できます。
さらに実際の通信では、
- 送信元IPアドレス
- 送信元ポート番号
- 宛先IPアドレス
- 宛先ポート番号
- TCP・UDPなどのプロトコル
を組み合わせて個々の通信を区別します。
ポート番号については、
0〜1023=System Ports
1024〜49151=User Ports
49152〜65535=Dynamic / Private Ports
というIANAの分類も覚えておくと理解しやすいでしょう。
また家庭用ルーターでは、IPアドレスだけでなくTCP・UDPのポート番号も変換するNAPTによって、複数端末が1つのグローバルIPv4アドレスを共有できる場合があります。
ネットワーク用語を整理するなら、
IPアドレス=通信先
ポート番号=サービス
TCP・UDP=データをどのように運ぶか
と分けて考えると理解しやすくなります。
参考リンク・出典
-
IETF / RFC Editor「RFC 791: Internet Protocol」
― IPv4の基本仕様。IPアドレスを利用して送信元から宛先へデータグラムを転送し、ルーティングを行うInternet Protocolの基本的な仕組みを規定 -
IETF / RFC Editor「RFC 4291: IP Version 6 Addressing Architecture」
― IPv6のアドレス体系を規定し、IPv6アドレスを128ビットの識別子として定義。IPv6アドレスの表記方法やユニキャスト・マルチキャスト等を解説 -
IETF / RFC Editor「RFC 6335: Service Name and Transport Protocol Port Number Registry」
― TCP・UDP等のポート番号管理手続きを規定。ポート番号が16ビットであること、System・User・Dynamicの3範囲や、IPアドレスとポート番号による通信識別について解説 -
IETF / RFC Editor「RFC 7605: Recommendations on Using Assigned Transport Port Numbers」
― ポート番号の役割、System Ports 0〜1023、User Ports 1024〜49151、Dynamic Ports 49152〜65535の分類、サービス識別におけるポートの意味を解説 -
IANA「Service Name and Transport Protocol Port Number Registry」
― TCP・UDP等のサービス名とポート番号を管理する公式レジストリ。HTTP 80/TCPなど、各サービスの現在の登録状況を確認可能 -
IETF / RFC Editor「RFC 1918: Address Allocation for Private Internets」
― IPv4のプライベートネットワーク用アドレス空間として10.0.0.0/8、172.16.0.0/12、192.168.0.0/16を規定 -
IETF / RFC Editor「RFC 3022: Traditional IP Network Address Translator」
― NATとNAPTを解説し、IPアドレスだけでなくTCP・UDPポートを変換して複数の内部アドレスを単一の外部アドレスへ対応付ける仕組みを説明
※本記事では初心者向けに「IPアドレス=住所」「ポート番号=部屋・受付窓口」とたとえていますが、これは概念を理解するための簡略化です。厳密にはIPアドレスはネットワークインターフェース等を識別するアドレスで、ポート番号はトランスポートエンドポイントやサービスの識別に利用される論理的な番号です。
※ポート番号は0〜65535の16ビット値ですが、すべての番号を任意の公開サービスへ自由に割り当てることを推奨しているわけではありません。IANAの割り当て・登録状況やRFC 6335、RFC 7605の指針を確認してください。
※「ポート番号=そのポートでは必ずその通信が行われている」という意味ではありません。ポート番号はサービス識別の共通認識として利用されますが、実際のサービス構成はシステム設定によって変わる場合があります。
※「ポート開放」の具体的な意味は、OS、ファイアウォール、家庭用ルーター、クラウドサービスなどによって異なります。不要なポートを外部公開するとセキュリティリスクが増える可能性があるため、必要なサービスだけを適切に設定してください。
※IPv4・IPv6・ポート番号・NAT等の仕様や運用方法を実際のネットワークへ適用する場合は、IETF、IANA、利用するOS・ルーター・クラウド事業者等の最新資料も確認してください。
