centos设置预留端口防止监听端口被占用

/ 0评 / 8

问题描述:
业务遇到这个情况,在启动服务时,出现8049端口被占用而无法启动。

问题分析:

netstat -an | grep "8049"
lsof -i:8049

8049端口被该服务器上的客户端随机选取源端口给占用掉了。

解决方案:

net.ipv4.ip_local_port_range是系统设置了随机使用的端口范围 例如1024 65000

这时想用8049就得更改它的范围,改为8050 65000 显然这就减少了很多随机端口,如果需要大量端口就会有瓶颈。

所有最好的方法是net.ipv4.ip_local_port_range范围不变 1024 65000

通过ip_local_reserved_ports设置预留端口,告诉系统不要使用这些端口作为随机端口使用,就避免了设置ip_local_port_range的浪费情况

最好是将服务监听的端口以逗号分隔全部添加到ip_local_reserved_ports中,TCP/IP协议栈从ip_local_port_range中随机选取源端口时,会排除ip_local_reserved_ports中定义的端口,因此就不会出现端口被占用了服务无法启动。

vim /etc/sysctl.conf

net.ipv4.ip_local_reserved_ports = 8049,9000-9100
sysctl -p

发表评论

邮箱地址不会被公开。 必填项已用*标注