我的一个独立的Java应用程序(没有可用的源)选择随机可用的端口来监听 在这个阶段,我假设它使用 getaddrinfo 系统调用来获取要绑定的地址。
由于我维护了数百台带有分配端口的各种服务器,黑色应用程序有时会启动并选择一个“已分配”的端口,这会导致我的小型服务器在启动时失败...
我想知道有没有办法限制操作系统提出的端口数量?
最感兴趣的是系统配置解决方案,
但如果没有其他解决方案,我也可以破解 bind()/ getaddrinfo (这也需要一些点击......)
感谢
答案 0 :(得分:0)
您必须能够从proc条目控制它 - 例如,这是一个系统范围的设置:
的/ proc / SYS /净/的IPv4 / ip_local_port_range
您可以修改它们。或者可能utilities可用于同一目的。
答案 1 :(得分:0)
如果操作系统范围内的更改不是您的想法,请配置JVM的Java安全管理器,以便SecurityManager.CheckListen(NNN)
为您要保留的任何端口号抛出SecurityException
。
答案 2 :(得分:0)
看看: http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec70.html
这是我的问题的解决方案,而不是我可以限制端口范围