ポート番号
ポート番号は、コンピュータネットワーク上でデータ通信を行う際に、どのアプリケーションにデータを送るのかを識別するための番号です。一台のコンピュータで複数のアプリケーションが動作している場合でも、ポート番号を使うことで、それぞれのアプリケーションが送受信するデータを区別して処理することが可能になります。
ポート番号は16ビットで管理され、0から65535までの数値が指定可能です。この範囲のポート番号は、以下のように分類され、それぞれ異なる用途に使用されます。
ポート番号の範囲と分類
範囲(番号) | 名称 | 用途の説明 |
---|---|---|
0~1023 | ウェルノウンポート | 一般的に使用される標準的なサービスに割り当てられる |
1024~49151 | 登録済みポート | 特定の組織やアプリケーションに割り当てられる |
49152~65535 | ダイナミックポート(プライベートポート) | 一時的に使用されることが多い、動的に割り当てられる |
ポート番号の分類
- ウェルノウンポート
0から1023の範囲にあり、HTTP(80)やHTTPS(443)などの一般的なサービスに割り当てられています。 - 登録済みポート
1024から49151の範囲にあり、特定のアプリケーションやサービスが利用するために登録されています。 - ダイナミックポート(プライベートポート)
49152から65535の範囲で、通常クライアント側が動的に割り当てるために使用します。
これらのポート番号はICANN(Internet Corporation for Assigned Names and Numbers)という組織によって管理されており、特にウェルノウンポートはよく使われるため覚えておくと便利です。
代表的なポート番号
ポート番号 | TCP/UDP | プロトコル | 説明 |
---|---|---|---|
20 | TCP | FTPデータ転送 | ファイル転送プロトコルのデータ転送用ポート |
21 | TCP | FTP制御 | ファイル転送プロトコルの制御用ポート |
22 | TCP | SSH | 安全なシェルアクセス |
23 | TCP | Telnet | テキストベースのリモートログインプロトコル |
25 | TCP | SMTP | 電子メールの送信 |
53 | TCP/UDP | DNS | ドメインネームシステムのクエリ応答 |
67 | UDP | DHCP | DHCPサーバーがクライアントにIPアドレスを提供 |
68 | UDP | DHCP | DHCPクライアントがIPアドレスを受け取る |
80 | TCP | HTTP | ウェブブラウザがウェブページにアクセスする際の標準プロトコル |
110 | TCP | POP3 | 電子メール受信のプロトコル |
123 | UDP | NTP | ネットワーク時間プロトコル |
143 | TCP | IMAP | インターネットメッセージアクセスプロトコル |
443 | TCP | HTTPS | SSL/TLS暗号化されたウェブページアクセス |
445 | TCP | SMB | ファイル共有プロトコル |
993 | TCP | IMAPS | SSL/TLS暗号化されたIMAP |
995 | TCP | POP3S | SSL/TLS暗号化されたPOP3 |
3389 | TCP | RDP | リモートデスクトッププロトコル |
5060 | UDP | SIP | VoIP通信のためのセッション初期化プロトコル |
5900 | TCP | VNC | 仮想ネットワークコンピューティング |
8080 | TCP | HTTPプロキシ | 代替のHTTPプロキシやアプリケーションサーバー |
/etc/servicesファイル
Linuxでは、/etc/services
ファイルにサービスとポート番号の対応関係が記載されています。このファイルを参照することで、特定のサービスがどのポート番号を使用しているかを確認することができます。例えば、次のコマンドでこのファイルの最初の20行を表示することができます。
cat /etc/services | head -n 20
user01@ubuntu-vm:~$ cat /etc/services | head -n 20
# Network services, Internet style
#
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
#
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
まとめ
ポート番号は、ネットワーク通信においてアプリケーションを識別し、データが適切なアプリケーションに届くようにするための重要な役割を担っています。ポート番号の範囲や用途を理解することで、ネットワークのトラブルシューティングやセキュリティ設定を効果的に行うことができます。