そもそもポートって何なの?
パソコンやスマートフォンがインターネットやネットワークを通じて情報をやり取りする際に必ず通過する「入口」や「出口」となる仕組みが「ポート(Port)」です。
この記事をご覧いただいている方にはポートについて詳しくない方もいると思うので、ここからはポートの仕組みや種類、「なぜポートが必要なのか?」について解説を行っていきます。
ポートは「コンピュータ同士が通信を行う時の窓口」
ポートは、コンピュータが他のコンピュータと通信を行う際の「担当窓口」のような役割だと考えて貰えばわかりやすいです。
例えば市役所や銀行に行ったときは「窓口」に案内されることが多いですが、市役所の場合は何をしに来たかによって案内される窓口が変わることが一般的です。もし市役所で「住民票を取りに来た」と言った場合は書類発行の担当窓口に案内されるように、ポート番号も通信の種類ごとに担当を決めてそれぞれのアプリケーションとのデータのやり取りを行っています。
また、ポートには0~65535までの範囲の番号が割り振られており、頻繁に使用する通信プロトコルについては特定のアプリケーションやプロトコルが使用するためのルールが決まっています。
たとえば、Webサイトを閲覧する際に利用されるHTTPSは「443番ポート」を使い、メールを送信するSMTPは「587番ポート」を使用するなどといったように、一部のポートは予め使用されるプロトコルが決まっていることもあります。
このように通信するプロトコルによってポートを使い分けることで、例えば「WEBサイトを見ながらメールの送受信を行う」などのように、並列で通信を行う場合もデータをキチンとやり取りすることが可能になります。
もしポートが無ければ、同時に複数のデータが来た場合「どのデータをどのアプリケーションで処理するか?」ということが分からないため通信に失敗してしまいます。
ポート番号を管理しているのは「IANA」
詳しくは後述しますが、ポートの中には使用するプロトコルが決まっている「ウェルノウンポート」や「登録済みポート」というものがあります。例えばWEBサイトを表示するときの「https」通信は443番ポート、メールを送信するときの「smtp」は587番ポートなどという感じです。
上記のウェルノウンポートと後述の登録済みポートはIANAという団体が管理しており、こちらのページでポートと対応するプロトコルの一覧が公開されています。
もし新しいプロトコルが登場した場合、IANAが割り当てるウェルノウンポートや登録済みポートの番号を決定して、上記のポート番号一覧のサイトが更新されます。
ちなみに現在はICANNが管理しているけど、IPアドレスやドメイン名も昔はIANAが管理していたので、インターネットの進歩には無くてはならない組織でした!
ポートは大きく3種類に分かれる
先述したとおりポート番号には「0~65535」があり、それぞれ用途に応じて下記の通り3つの種類に分けられます。
②半固定で使われる「登録済みポート(1024~49151)」
③動的に変更される「ダイナミックポート(49152~65535)」
ここからはそれぞれのポートの種類について見ていきましょう。
ポートの種類① ウェルノウンポート (Well-Known Ports: 0-1023)
ウェルノウンポートは、名前通りパソコンやインターネットでの通信の中でも「よく知られており、利用頻度が高いプロトコル」がウェルノウンポートとしてポート番号が割り振られています。
ウェルノウンポートのポート番号は0~1023までの間で決まり、代表的なウェルノウンポートとしては「HTTP:80」「HTTPS:443」「SMTP:25」「DNS:53」などがあります。
なお、このようにウェルノウンポートが存在する背景としては「利用頻度が高いプロトコルのポート番号を標準化することで通信の効率を上げるため」です。
もしポート番号を指定してない場合は通信の度に相手が使用するポートを確認しなければなりませんが、プロトコルごとにポート番号が指定されていれば確認する手間が省けるため、このように頻繁に使用するプロトコルについてはポート番号が予め決まられているという訳です。
ちなみにウェルノウンポートは1024個ありますが、現時点で9割以上が既に埋まってしまっており未登録のポートはわずかしかありません。
ポートの種類② 登録済ポート (Registered Ports: 1024-49151)
登録済ポートは、特定のアプリケーションやサービスで使用されるために登録されているポート番号です。例えば有名なものだとデータベースで使用されるソフトウェアの「MySQL:3306」や「SQL SERVER:1433」などがあります。
こちらについて「ウェルノウンポートより標準化されていないものの、特定の製品などで使用されており広く普及しているプロトコル」が登録済みポートに割り当てられます。
また登録済みポートについては、セキュリティの向上のため指定されたポート番号から変更して使用されることもあります。
例えば、遠隔で機器を操作できる「SSH:22」や「Windows Remote Desktop:3389」などはポート番号を変更して運用することも多いです。こうしたプロトコルを初期状態のポート番号で使用すると「22番ポートが空いているということはSSHで操作できる機器がある」という様に攻撃者に使用してる機器を推測されて不正アクセスの足掛かりになってしまうことがあるので、上記のようなプロトコルはポート番号を変更してセキュリティ対策を行っていることも多いです。
ウェルノウンポートより普及度は低いものの、有名なサービスや製品で使用されている独自プロトコルなどが登録済みポートとして登録されます。
ポートの種類③ ダイナミックポート (Dynamic Ports: 49152-65535)
ダイナミックポートは上記のウェルノウンポートと登録済みポート以外の動的に割り当てられるポート番号の範囲です。
このダイナミックポートは、主にクライアントとサーバが通信を行う際の「クライアント側」でのポート番号として使用されることが多いです。
例えばWEBサイトでの通信の場合、WEBサーバ側は「HTTP:80」や「HTTPS:443」」等のポートを使いますが、クライアント側ではポート指定は無いため空いている適当なポートを使用して通信を行います。
ダイナミックポートは名前の通り「動的に変更されるポート」で、このポートはプロトコルが決まっておらず、いろいろな通信で使用されます。
主要なポート番号一覧
ここまでの内容でポートがどんなものかについて分かっていただけたと思うので、ここからは主要なポート番号について解説を行います。
なお、先述したとおりポート番号にプロトコルが割り当てられているのは「ウェルノウンポート」と「登録済ポート」の2種類のみです。
ダイナミックポートにはプロトコルは登録されていないので、ここから紹介するのはウェルノウンポートと登録済みポートのだけとなります。
ウェルノウンポート (Well-Known Ports: 0-1023)
ウェルノウンポートに登録されている主要なプロトコルは以下の通りです。
ポート番号 | プロトコル | TCP/UDP | 解説 |
20 | FTP (転送) | TCP | FTPでのデータ転送に使用されるポート。FTPは制御ポート(21番)とデータポート(20番)を分けて使い、データの転送に使われる。 |
21 | FTP (制御) | TCP | FTPでの接続制御に使われるポート。クライアントとサーバが接続後、コマンドの送受信に使用される。 |
22 | SSH | TCP | SSH(Secure Shell)は、リモートで他のデバイスを遠隔操作するためのプロトコル。通信内容は暗号化されているため安全。 |
23 | Telnet | TCP | Telnetは、SSH同様リモートで他のデバイスを遠隔操作するためのプロトコル。ただし通信が暗号化されずセキュリティリスクが高いため使用は非推奨。 |
25 | SMTP | TCP | メールの送信に使われるプロトコル。ただしユーザ認証機能が無くセキュリティが低いことから、プロパイダ側で25番ポートでのメール送信をブロックする「OP25B」などの設定が掛かっていることも多い。 |
49 | TACACS | TCP | TACACSは、リモートアクセスやネットワーク機器の認証、認可、アカウンティング(AAA)を行うためのプロトコル。 |
53 | DNS | TCP/UDP | DNS(Domain Name System)は、ドメイン名をIPアドレスに変換するために使用される。クエリ処理はUDPが主に使用され、ゾーン転送などでTCPを使用。 |
67 | DHCP | UDP | DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上のクライアントに自動でIPアドレスを割り当てるためのプロトコル。サーバ側。 |
68 | DHCP | UDP | DHCPクライアントがIPアドレスを取得する際に使用するポート。クライアント側がリクエストする場合に使用。 |
69 | TFTP | UDP | TFTP(Trivial File Transfer Protocol)は、ファイル転送を行うためのシンプルで軽量なプロトコル。主にネットワーク機器の設定ファイル転送などに使われる。 |
79 | Finger | TCP | Fingerは、ユーザーの情報(ログイン時間やシステム状態など)を取得するために使用される、古いプロトコル。セキュリティ上の問題が多いため、現在はほとんど使用されていない。 |
80 | HTTP | TCP | HTTP(HyperText Transfer Protocol)は、WEBサイトへの通常のアクセスに使用される。WEBブラウザがこのポートを通じてサーバにリクエストを送る。 |
88 | Kerberos | TCP/UDP | Kerberosは、SSO(シングルサインオン)で使用されるネットワーク認証プロトコルのこと。 |
110 | POP3 | TCP | POP3(Post Office Protocol version 3)は、メールサーバから受信したメールをローカルにダウンロードするためのプロトコル。サーバからデータは削除される。 |
113 | Ident | TCP | Identは、TCP/IP通信で接続元のユーザーを識別するために使われるプロトコル。ただしセキュリティの問題などがあり、最近はIdentではなくOAuth等が採用されることが多い。 |
119 | NNTP | TCP | NNTP(Network News Transfer Protocol)は、ニュースグループへのアクセスや投稿に使用される。インターネット初期のニュース共有のために広く使われた。 |
123 | NTP | UDP | NTP(Network Time Protocol)は、時刻管理を行うプロトコルで、ネットワーク上のコンピュータが正確な時刻を同期するために使用される。 |
135 | RPC | TCP/UDP | RPC(Remote Procedure Call)は、リモートのコンピュータ上で関数を呼び出すために使用されるプロトコル。これにより、分散システム間で通信が可能になる。 |
143 | IMAP | TCP | IMAP(Internet Message Access Protocol)は、メールサーバにデータを残したままメールデータをクライアントにダウンロードするときに使われる。 |
161 | SNMP | UDP | SNMP(Simple Network Management Protocol)は、ネットワーク機器を管理および監視するためのプロトコル。 |
194 | IRC | TCP/UDP | IRC(Internet Relay Chat)は、インターネット上でリアルタイムのテキストチャットを行うために使用されるプロトコル。 |
389 | LDAP | TCP/UDP | LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービス(ユーザー情報やネットワークリソース)へのアクセスに使用される。 |
443 | HTTPS | TCP | HTTPS(HyperText Transfer Protocol Secure)は、HTTPの暗号化バージョン。Webサイトのセキュアな通信に使用され、SSL/TLSで通信内容を暗号化する。 |
465 | SMTPS | TCP | 通常のSMTPにSSL/TLSでの暗号化機能を加えたメール送信プロトコル。暗黙的に使用されていたポートであり、現在では587番ポートで送信することが一般的。 |
514 | Syslog | UDP | Syslogは、ネットワーク機器やシステムからのログ情報を収集するために使用されるプロトコル。通常UDPを使用してログを転送する。 |
515 | LPD | TCP | LPD(Line Printer Daemon)は、ネットワークプリンターの印刷を管理するために使用されるプロトコル。TCPを使用して印刷ジョブを管理する。 |
587 | SMTP(サブミッション) | TCP | SMTP(25番ポート)の代わりに使用されるサブミッションポート。SMTP-AUTHでのユーザ認証が必須となり、現在のメール送信では最もよく使用されている。 |
993 | IMAPS | TCP | IMAPS(IMAP Secure)は、IMAPの暗号化バージョン。メールサーバとクライアント間の通信がSSL/TLSで暗号化され、セキュアなメール受信が可能になる。 |
995 | POP3S | TCP | POP3S(POP3 Secure)は、POP3の暗号化バージョン。メール受信時の通信がSSL/TLSで暗号化され、安全にメールを受信することができる。 |
登録済ポート (Registered Ports: 1024-49151)
登録済みポートに登録されている主要なプロトコルは以下の通りです。
ポート番号 | プロトコル | TCP/UDP | 解説 |
1080 | SOCKS プロキシ | TCP/UDP | プロキシサーバで使用されるポート。SOCKSプロトコルを介した通信を行う。 |
1194 | OpenVPN | UDP | オープンソフトのVPNソフト「Open VPN」で使用されるポート。 |
1433 | Microsoft SQL Server | TCP | Microsoft SQL Serverのデフォルトのデータベース接続ポート。 |
1434 | Microsoft SQL Server Browser | UDP | SQL Serverのインスタンスや接続情報を提供するためのポート。 |
1521 | Oracle Database | TCP | Oracleデータベースのリスナーが接続を待機するポート。 |
1812 | RADIUS (認証) | UDP | ネットワークデバイスの認証に使用されるプロトコルであるRADIUSのデフォルトポート。 |
1813 | RADIUS (アカウンティング) | UDP | RADIUSでアカウンティング情報(接続履歴やログ)を送信するためのポート。 |
3306 | MySQL | TCP | オープンソースのデータベース管理システムMySQLのデフォルトポート。 |
3389 | RDP (リモートデスクトップ) | TCP/UDP | Windowsのリモートデスクトップ接続に使用されているデフォルトのポート。不正アクセスの標的になりやすいポートなので変更が推奨される。 |
3690 | Subversion (SVN) | TCP | バージョン管理システムSubversionがリモートアクセスで利用するポート。 |
4369 | Erlang Port Mapper Daemon (epmd) | TCP/UDP | Erlang分散システムが通信するためのポート。クラスタリングなどで使用される。 |
5000 | UPnP | TCP/UDP | Universal Plug and Playの通信に使用され、ネットワークデバイス間の簡易な設定を可能にする。 |
5432 | PostgreSQL | TCP | PostgreSQLデータベースのデフォルトポート。 |
5672 | AMQP (RabbitMQ) | TCP | メッセージキューイングプロトコルAMQPを実装するRabbitMQが使用するポート。 |
5900 | VNC (リモートデスクトップ) | TCP | VNCでのリモートデスクトップアクセスに使用されるポート。 |
6379 | Redis | TCP | オープンソースのインメモリデータベースRedisのデフォルトポート。 |
8080 | HTTP (代替ポート) | TCP | HTTP(80番ポート)の代替で使用されることの多いポート。 |
8443 | HTTPS (代替ポート) | TCP | HTTPS通信(443番ポート)の代替で使用されることの多いポート。 |
9000 | PHP-FPM | TCP | PHPの高速プロセスマネージャが使用するデフォルトポート。 |
まとめ:主要なポート番号について解説!
今回の記事では、インターネット等の通信で使われる主要なポート番号について解説を行いました。
普通にパソコンを使うだけならポートを意識する必要はないですが、IT関連の仕事をしている方は主要なポート番号は記憶しておいた方が良いと思います。
この記事では使用頻度の高いポート番号を一覧で表示して、簡単な解説も入れています。ポート番号を確認したい方はぜひ参考にしてください!