IPアドレスは「建物」、ポート番号は「窓口」
通信相手を探すには、IPアドレス(住所)が必要です。ただ、1台のコンピューターの中では、Webサイトの表示、メールの送受信、リモート接続など、複数のサービスが同時に動いていることがあります。そこで、「このコンピューターの、どのサービス宛の通信か」を区別するために使うのが、ポート番号です。
大きなビルに例えると、IPアドレスはビルの住所、ポート番号は、そのビルの中の「窓口の番号」にあたります。IPアドレスの基本は、IPアドレスとはをご覧ください。
よく使われるポート番号
| 番号 | 名称 | 主な用途 |
|---|---|---|
| 22 | SSH | サーバーへの安全なリモート接続 |
| 25 | SMTP | メールの送信 |
| 53 | DNS | 名前からIPアドレスを調べる |
| 80 | HTTP | 暗号化されないWebの通信 |
| 443 | HTTPS | 暗号化されたWebの通信 |
ブラウザでWebサイトを見る時は、通常、HTTPSの443番が使われていますが、アドレスには表示されません。番号が省略されているためです。暗号化の仕組みは、SSL/TLSとはで解説しています。
「localhost:3000」の読み方
開発中のWebアプリを確認する時に、「http://localhost:3000」のようなアドレスを使います。
- localhost:自分のパソコン自身
- :3000:自分のパソコンの中で、3000番の窓口で待っているアプリ
同じパソコンで、別のアプリを同時に動かす場合は、「3001」「8080」のように、番号を変えて、窓口が重ならないようにします。
ファイアウォールとの関係
ファイアウォールは、通信を、ポート番号などを条件に、許可・遮断する仕組みです。たとえば、「Webの通信(80・443)は通すが、それ以外は遮断する」といった設定ができます。仕組みの詳細は、ファイアウォールとはで解説しています。
また、サーバーの手前で通信を受け付けて、奥のアプリへ取り次ぐ仕組みについては、リバースプロキシとはも参考になります。
注意したいこと
- 必要のないポートを、開けたままにしない:攻撃の入口になることがあります
- ルーターのポート開放は、慎重に:外部から家庭内の機器に、直接アクセスできる状態になるため、目的が明確な場合のみ行います
- 番号を覚える必要はない:よく使う番号(80・443・22)だけ、押さえておけば十分です
振り返ると
ポート番号は、1台のコンピューターの中で、通信を、どのサービスに届けるかを区別する番号です。IPアドレスが建物の住所、ポート番号が窓口の番号、と考えると、イメージしやすくなります。
関連記事:DNSとは