ポート番号

 ポート番号は、コンピュータネットワーク上でデータ通信を行う際に、どのアプリケーションにデータを送るのかを識別するための番号です。一台のコンピュータで複数のアプリケーションが動作している場合でも、ポート番号を使うことで、それぞれのアプリケーションが送受信するデータを区別して処理することが可能になります。

ポート番号は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プロトコル説明
20TCPFTPデータ転送ファイル転送プロトコルのデータ転送用ポート
21TCPFTP制御ファイル転送プロトコルの制御用ポート
22TCPSSH安全なシェルアクセス
23TCPTelnetテキストベースのリモートログインプロトコル
25TCPSMTP電子メールの送信
53TCP/UDPDNSドメインネームシステムのクエリ応答
67UDPDHCPDHCPサーバーがクライアントにIPアドレスを提供
68UDPDHCPDHCPクライアントがIPアドレスを受け取る
80TCPHTTPウェブブラウザがウェブページにアクセスする際の標準プロトコル
110TCPPOP3電子メール受信のプロトコル
123UDPNTPネットワーク時間プロトコル
143TCPIMAPインターネットメッセージアクセスプロトコル
443TCPHTTPSSSL/TLS暗号化されたウェブページアクセス
445TCPSMBファイル共有プロトコル
993TCPIMAPSSSL/TLS暗号化されたIMAP
995TCPPOP3SSSL/TLS暗号化されたPOP3
3389TCPRDPリモートデスクトッププロトコル
5060UDPSIPVoIP通信のためのセッション初期化プロトコル
5900TCPVNC仮想ネットワークコンピューティング
8080TCPHTTPプロキシ代替の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

まとめ

 ポート番号は、ネットワーク通信においてアプリケーションを識別し、データが適切なアプリケーションに届くようにするための重要な役割を担っています。ポート番号の範囲や用途を理解することで、ネットワークのトラブルシューティングやセキュリティ設定を効果的に行うことができます。