
制限された範囲 (1024+) 内の連続したポートで複数のサービスが実行されています (それらのポートでリッスンしています)。 時々、これらのサービスを再起動する必要があり、サービスの 1 つがデータベースに接続するために他のサービスのポートをローカル ポートとして使用していることが起こります。 その結果、他のサービスは現在ビジー状態のポートでリッスンできないというエラーが発生します。 netstat を使用してサービスを手動で特定し、このサービスを再起動してポートの変更を強制する必要があります。そうすることで、ポートが他の正当なサービスによって自由に使用できるようになります。
ポートがオープンとして使用されるのを防ぎ、リッスン モードでのみオープンできるようにする方法はありますか?
システム: Linux
現在、9000~9100のポート範囲を使用しています
答え1
通常、これらのポートは「一時」ポート範囲外にあるはずです(非特権ポートとは異なります)。範囲はnet.ipv4.ip_local_port_range
sysctl私のシステムではデフォルトで 32768~60999 が表示されます。
local_port_rangeが十分に高い場合、ポート9000が送信元ポートとして自動的に選択されることはありません(ただし、プログラムが明示的にこのポートにバインドします。
また、sysctl にポートを追加することもできますnet.ipv4.ip_local_reserved_ports
(/etc/sysctl.d 経由)。このオプションでは、個々のポート番号をスペースで区切ったリストを指定します。