回答:
(2 ^ 16)-1、または0-65,535(-1は、ポート0が予約済みで使用できないためです)。(o_O Tyncがポート0を使用できないことを思い出させ、スティーブフォリーがポートの数ではなく最高のポートを要求したことを思い出させたため編集)
しかし、あなたはおそらくこれについて間違った方法で行っています。非標準ポートについて賛否両論する人々がいます。最もカジュアルなスキャナー以外は無関係であり、最新のソフトウェアと適切なファイアウォール技術、強力なパスワードを使用することで、最もカジュアルなスキャナーを寄せ付けないことができます。つまり、セキュリティのベストプラクティスです。
1-65535は正当なTCPポートであり、1-1023が既知のポートサービス用であることは事実です。一時ポートの確立後にサービスが開始されると、独自のサービスでランダムな問題が発生する場合があります。知らないかもしれない人にとっては、一時ポートはリモートエンドポイント(またはそのようなもの)のためにローカルに接続されているポートです。したがって、ポート20001でリッスンするTCPサービスを作成する場合、今日と明日は良いかもしれません。しかし、ある日、サービスが起動して20001にバインドしようとすると、一時ポートとして使用されたために失敗します。解決策があります。サーバーのシステム一時ポート範囲ポリシーを変更するには、管理者または自分自身が必要です。Linuxシステムでは、次の2つの手順で実行されます。
両方の手順を実行する必要があります。再起動する予定がない場合は、動的な手順は不要です。範囲を最大40000〜65535に設定するには、次の手順を実行します。
動的
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
または
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
常設
以下を/etc/sysctl.confに追加します。
net.ipv4.ip_local_port_range = 40000 65535
現在の設定を読み取るか、変更を確認するには:
/sbin/sysctl net.ipv4.ip_local_port_range
出力は次のようになります。
net.ipv4.ip_local_port_range = 9000 65500
サーバーの目的を必ず理解してください。範囲を小さくしすぎると、他の問題が発生する可能性があります。
ハッピーコーディング!(またはあなたがすることは何でも)