使用できる最大のポート番号は何ですか?
ポート番号は符号なし16ビット整数なので65535です。
最大のポート番号は、unsigned short 2 ^ 16-1:65535です。
登録済みポートとは、Internet Corporationによって割り当てられた名前と番号(ICANN)によって特定の用途に割り当てられたポートです。登録済みの各ポートは、1024から49151の範囲です。
2001年3月21日以降、登録機関はICANNです。それ以前は、IANAでした。
登録済みポートの番号より小さい番号のポートは、ウェルノウンポートと呼ばれます。登録済みポートの番号よりも大きい番号を持つポートは、動的ポートまたはプライベートポート、あるいはその両方と呼ばれます。
49152から65535までは 一時ポート用に予約されているので
smashery の答えへのフォローアップ。一時的なポート範囲(少なくともLinuxでは、そして私は他のUnicesも同様であると思う)は固定されていない。これは/proc/sys/net/ipv4/ip_local_port_range
に書き込むことで制御できます。
唯一の制限(IANAに関する限り)は、1024未満のポートが既知のポートになるように指定されていることです。それ以上のポートは無料で使用できます。多くの場合、1024未満のポートはスーパーユーザーのアクセスに制限されていることがわかりますが、これはまさにその理由によるものと思います。
RFC 793によると、ポートは16ビットのunsigned intです。
これは、範囲が0から65535であることを意味します。
ただし、その範囲内では、ポート0〜1023は通常特定の目的のために予約されています。私は一般的に言って、ポート0を除いて、通常は0-1023予約の強制はありません。 TCP/UDPの実装は通常0以外の予約を強制しません。望むなら、ポート80でWebサーバーのTLSポートを立ち上げることができます。同様に、SMTPサーバーがポート25でlistenするのが標準であっても、80、443、その他で実行できます。
ほとんどの実装は特定の目的のために0を予約します - ランダムなポート割り当て。そのため、ほとんどの実装では、 "listen 0 port"と言っても、実際にはどのポートを使用しても構わないので、ランダムな未割り当てポートを指定してください。を聞くために "#:。
そのため、0、一時予約範囲などを含む、0〜65535の範囲でポートを使用することに関する制限は、実装(つまりOS /ドライバ)固有のものです。ただし、0を含むすべてがRFC 793の有効なポートです。
話している範囲によって異なりますが、ダイナミックレンジは最大65535または2 ^ 16-1(16ビット)になります。
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
65535です。
ポートの有効な番号は次のとおりです。0から2 ^ 16-1 = 0から65535
ポート番号が16ビット長だからです。
ただし、ポートは次のように分けられます。
既知のポート:0から1023(HTTP、FTP、SSH、DHCPなどのシステムサービスに使用)
登録済み/ユーザーポート:1024から49151(あなたはあなたのサーバー用にそれを使うことができますが、いくつかの有名なアプリケーションには注意してください:Microsoft SQL Serverデータベース管理システム(MSSQL) )サーバーまたはApache Derby Network Serverはすでにこの範囲から取得しています。つまり、MSSQLが実行されている場合はMSSQLのポートをサーバーに割り当てることはお勧めできません。
動的/プライベートポート:49152から65535(サーバーではなくむしろNATingサービスのクライアントでは使用されません)
プログラミングではあなたのサーバに0から65535までの任意の数を使うことができます、しかしあなたは上記の範囲に固執するべきです。さもなければいくつかのシステムサービスまたはいくつかのアプリケーションはポート衝突のために動作しません。
ここでほとんどのportsのリストをチェックしてください: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers