我们的平台上的两个服务存在端口冲突。 其中一项服务正在监听端口45454,另一项服务是Zookeeper服务器。
当侦听端口45454的服务重新启动然后Zookeeper接受连接并使用相同的tcp端口45454时,就会出现问题。
是否有办法限制动物园管理员可以使用哪些端口?还是应该将侦听端口45454的服务更改为另一个(较低)端口?
我环顾四周并尝试通过Google搜索解决方案,但到目前为止,我在寻找解决方案方面失败了。
谢谢
答案 0 :(得分:1)
要清除连接客户端>服务器,在服务器上需要一个侦听端口,在客户端上需要一个随机临时端口。接受连接不需要额外的端口。
Zookeeper在2181
上侦听(默认)客户端,在2888
,3888
上侦听内部通信,没有冲突。您的动物园管理员最有可能使用临时端口在本地建立了与另一个节点的连接。
星历端口由内核从systctl参数-net.ipv4.ip_local_port_range范围内随机分配。我当前的值是从32768到60999。
解决方案
添加有冲突的端口号作为保留端口(暂时不使用)-ip_local_reserverd_ports
sysctl -w net.ipv4.ip_local_reserved_ports="45455"
更改临时端口范围
# my linux default is from 32768 to 60999
sysctl -w net.ipv4.ip_local_port_range="45455 60999"