0

私のスタンドアロン Java アプリケーション (利用可能なソースがない) の 1 つは、リッスンするためにランダムに利用可能なポートを選択します。
この段階では、バインドするアドレスを取得するためにgetaddrinfoシステム コールを使用すると仮定します。

ポートが割り当てられた数百のさまざまなサーバーを維持しているため、黒いアプリが起動して「割り当てられた」ポートの1つを選択することがあり、小さなサーバーが起動時に失敗する原因となります...

OS によって提案されたポートの数を制限する方法はあるのでしょうか?
主にシステム構成ソリューションに関心が
ありますが、他に解決策がない場合は、bind()/getaddrinfoをハックすることもできます (これにはいくつかのヒットも必要です...)

ありがとう

4

3 に答える 3

0

If OS-wide change is not what you had in mind, configure the JVM's Java Security Manager so that SecurityManager.CheckListen(NNN) throws SecurityException for any of the port numbers you want to reserve.

于 2012-07-12T06:48:55.093 に答える
0

proc エントリから制御できる必要があります。たとえば、システム全体の設定は次のとおりです。

/proc/sys/net/ipv4/ip_local_port_range

それらは変更できます。または、同じ目的で利用できるユーティリティがあるかもしれません。

于 2012-07-11T13:01:43.880 に答える