ポート番号とは、コンピュータネットワーク上で通信を行う際に、どのアプリケーション(サービス)が通信データを受け取るかを識別するための番号です。ポート番号は、IPアドレスと組み合わせて使用され、ネットワーク上での通信の送受信先を特定します。
1. ポート番号の基本概念
- IPアドレス: ネットワーク上で特定のデバイスを識別するための番号(例: 192.168.1.1)。
- ポート番号: デバイス内で動作するアプリケーションやサービスを特定するための番号。
たとえば、IPアドレスは家の住所、ポート番号は家の部屋番号のようなものです。IPアドレスでデバイス(家)を特定し、ポート番号でどのアプリケーション(部屋)にデータを送るかを決めます。
2. ポート番号の範囲
ポート番号は、16ビット(0~65535)の範囲内で指定されます。
主なポート番号の分類
- ウェルノウンポート (0~1023):
- 主要なサービスやプロトコルに予約されています。
- 例:
- 80: HTTP(ウェブサイトの通信)
- 443: HTTPS(セキュアなウェブサイトの通信)
- 22: SSH(リモートアクセス)
- 25: SMTP(メール送信)
- 登録済みポート (1024~49151):
- 一般的なアプリケーションが使用するポートで、特定のサービスやアプリケーションに割り当てられることが多い。
- 例:
- 3306: MySQLデータベース
- 8080: プロキシサーバーや代替HTTP通信
- 動的/プライベートポート (49152~65535):
- 一時的な通信やカスタムアプリケーションで使用されます。
- 例: クライアントアプリケーションがサーバーと通信する際にランダムに割り当てられるポート。
3. ポート番号の役割
ポート番号は、1つのデバイスで複数のアプリケーションが同時に通信できるようにするための仕組みです。
例:
- コンピュータのIPアドレスが「192.168.1.10」の場合:
- ポート80を使う: ウェブブラウザがウェブサイトに接続。
- ポート22を使う: SSHクライアントがリモートサーバーに接続。
- ポート25を使う: メールソフトがメールサーバーに接続。
それぞれの通信が独立して処理され、混乱しません。
4. ポート番号の指定と利用例
- 明示的に指定する場合: ウェブサーバーをポート8080で動作させたい場合:arduinoコードをコピーする
http://example.com:8080
上記のように、ポート番号をURLに追加します。 - デフォルトポートを使用する場合: ポート番号を省略すると、プロトコルに応じたデフォルトポートが使用されます。
- HTTP: ポート80
- HTTPS: ポート443
5. セキュリティとポート番号
ポート番号は通信の入口にあたるため、セキュリティ対策が重要です。
- ファイアウォール設定: 必要なポートだけを開放し、不必要なポートは閉じておく。
- ポートスキャンの防止: 攻撃者がポートスキャンを利用して開いているポートを調査し、攻撃する可能性があります。
- SSHのポート変更: デフォルトのポート(22)から別のポートに変更することで、不正アクセスのリスクを軽減できます。
6. ポート番号とプロトコルの関係
ポート番号は、使用する通信プロトコル(例: TCP, UDP)と関連付けられます。
TCP(Transmission Control Protocol)
- 信頼性のある通信を保証します。
- 例: HTTP(ポート80)、HTTPS(ポート443)、SSH(ポート22)
UDP(User Datagram Protocol)
- 軽量で高速ですが、信頼性の保証がありません。
- 例: DNS(ポート53)、ストリーミングサービス
7. ポート番号の確認方法
Linux/Unixでポート使用状況を確認
sudo lsof -i -P -n
Windowsでポート使用状況を確認
netstat -ano
まとめ
- ポート番号とは: アプリケーションやサービスを識別するための番号。
- 範囲: 0~65535の中で、用途ごとに分類されている。
- 役割: 同じIPアドレス内で複数のサービスを同時に動作させるために重要。
- セキュリティ: 不必要なポートは閉じるなどの対策が必要。
ポート番号は、ネットワーク通信の根幹を支える重要な仕組みの一つです。
コメント