GNU/Linux >> Linux の 問題 >  >> Linux

最大ポート番号はいくつですか?

解決策 1:

(2^16)-1、または 0 ~ 65,535 (-1 は、ポート 0 が予約されていて利用できないためです)。 (o_O Tync がポート 0 を使用できないことを思い出させ、Steve Folly がポートの数ではなく最大のポートを要求したことを思い出したので編集)

しかし、あなたはおそらくこれについて間違った方法で進んでいます。非標準ポートの賛成派と反対派がいます。最もカジュアルなスキャナー以外は無関係であり、最新のソフトウェアと適切なファイアウォール技術と強力なパスワードを使用することで、最もカジュアルなスキャナーを寄せ付けないようにすることができます.つまり、セキュリティのベスト プラクティスです。

解決策 2:

1 ~ 65535 が利用可能で、範囲 1 ~ 1023 のポートが特権 1:これらのポートをリッスンするには、アプリケーションを root として実行する必要があります。

解決策 3:

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

サーバーの目的を理解していることを確認してください。範囲を縮小しすぎると、他の問題が発生する可能性があります。

ハッピーコーディング! (またはあなたが何をしても)


Linux
  1. コマンド単一引数の最大サイズを定義するものは何ですか?

  2. プロセスIDの最大値は?

  3. ファイアウォールで開くために必要なポートは何ですか?

  1. デフォルトのSSHサーバーのポート番号を変更する

  2. 特定のコンピューターに割り当てることができる IP の最大数はいくつですか?

  3. telnet 以外に、開いているポートをチェックするための代替手段は何ですか?

  1. ゴールドリンカーとは何ですか?

  2. Linux サーバーの最大接続数を制限するものは何ですか?

  3. ポート 80 のアクティブな接続数を確認しますか?