インターネットやネットワークの話をしていると、「ポート番号」という言葉が出てくることがあります。
「なんとなく聞いたことはあるけど、よくわからない」という方も多いのではないでしょうか。
この記事では、ITの知識がなくても理解できるよう、ポート番号のしくみをわかりやすく解説していきます。
ポート番号って、そもそも何?
一言でいうと、ポート番号とは「通信の出入り口に付けられた番号」のことです。
少しイメージしにくいかもしれないので、アパートに例えてみましょう。
あなたが「山田アパート」に荷物を送るとき、「○○市△△町1-2-3 山田アパート」という住所だけでは、
アパートのどの部屋に届ければいいかわかりません。そこで「203号室」のような部屋番号が必要になりますよね。
ネットワークの世界でも同じです。
- 住所(IPアドレス) → どのコンピュータに届けるか
- 部屋番号(ポート番号) → そのコンピュータのどのアプリに届けるか
1台のコンピュータでは、ブラウザ・メールソフト・チャットアプリなど、複数のアプリが同時に動いています。
外からデータが届いたとき、「これはどのアプリ宛て?」と振り分けるための番号、それがポート番号です。
ポート番号はどんな数字?
ポート番号は 0〜65535 の範囲の数字で表されます。
65536種類もあるので、たくさんのアプリが同時に通信できるわけです。
この中で特に重要なのが、「よく使われる通信の種類」ごとにあらかじめ決められた番号です。
代表的なものをいくつか見てみましょう。
| ポート番号 | 用途 |
|---|---|
| 80 | Webサイトの閲覧(HTTP) |
| 443 | 安全なWebサイトの閲覧(HTTPS) |
| 25 | メールの送信(SMTP) |
| 22 | サーバーへのリモート接続(SSH) |
| 3306 | データベースへの接続(MySQL) |
たとえばあなたがブラウザで「https://example.com」を開いたとき、
裏では自動的にポート番号443番への通信が行われています。
ユーザーが意識しなくてもいいよう、ブラウザが自動で選んでくれているんですね。
実際にどう使われているの?
ここで、もう少し具体的なイメージをつかんでみましょう。
あなたが喫茶店でWi-Fiを使いながら、同時に次の3つをしているとします。
- ブラウザでニュースを読む
- メールを受信する
- Slackでチャットをする
この3つは、どれもインターネットと通信しています。
でも、届いたデータが混ざってしまったら大変ですよね。
「ニュースの文章がSlackに表示された」なんてことになったら困ります。
ポート番号があることで、
「このデータはポート443番宛てだからブラウザへ」
「このデータはポート○○番宛てだからSlackへ」
と、きちんと仕分けができるわけです。
まるで会社の受付窓口のように、届いた荷物を宛先ごとに振り分けてくれるイメージです。
ポート番号の「3つのグループ」を知っておこう
ポート番号は大きく3つのグループに分けられています。
難しく考える必要はなく、「こういう分類があるんだ」くらいの理解で十分です。
① ウェルノウンポート(0〜1023)
世界共通で用途が決まっているポートです。
先ほどの表に出てきた80番や443番がここに入ります。
「誰もが知っているポート」という意味で、インターネットの基本的な通信に使われます。
② 登録済みポート(1024〜49151)
特定のアプリやサービスが使うために登録されたポートです。
MySQLの3306番や、Windowsのリモートデスクトップ接続(3389番)などがこちらに含まれます。
③ ダイナミックポート(49152〜65535)
アプリが通信するときに、一時的に自動で使われるポートです。
たとえばブラウザがWebサイトにアクセスするとき、
サーバーからデータを受け取るための「一時的な出口」として使われます。
こちらはユーザーが意識することはほとんどありません。
ポート番号にまつわる「よくある疑問」
Q. ポート番号を知らなくてもWebが使えるのはなぜ?
ブラウザが自動でやってくれているからです。
「https://」で始まるURLにアクセスすると、ブラウザは自動的に443番ポートへ接続します。
ユーザーが毎回入力しなくていいように設計されています。
Q. 「ポートを開ける」「ポートを閉じる」ってどういう意味?
セキュリティの設定の話です。
ポートは「開いている(通信を受け付ける)」か「閉じている(通信を拒否する)」かを設定できます。
使っていないポートを閉じておくことで、外部からの不正アクセスを防ぐことができます。
自宅の窓に例えると、必要な窓だけ開けておいて、使わない窓は鍵をかけておくイメージです。
Q. URLの末尾に「:8080」などと書いてあるのを見たことがある
それはポート番号を直接指定している書き方です。
http://example.com:8080 のように書くと、「ポート8080番で通信してください」という意味になります。
開発中のWebアプリや、社内システムなどでよく使われる表記です。
まとめ
ポート番号について、ざっとおさらいしましょう。
- ポート番号は「コンピュータの中のどのアプリへ通信を届けるか」を決める番号
- アパートの部屋番号のように、1台のコンピュータ上でデータを振り分ける役割を持つ
- 0〜65535の範囲があり、よく使うものはあらかじめ番号が決まっている
- ブラウザなどは自動でポートを使い分けてくれるので、普段は意識しなくてOK
ポート番号は、ネットワークやセキュリティ、Web開発を学んでいくとよく登場するキーワードです。
「通信の出入り口の番号」というイメージをしっかり持っておくと、これからの学習がぐっとスムーズになりますよ。
あざした