场景:一台服务器上运行了多个程序各个程序有自己固定的端口,程序会对外发起连接,所以程序除占用自身的固定端口还用占用其他随机端口。
如果应用程序对外tcp连接占用的是其他应用程序的固定端口,就会造成这个应用程序不能启动,提示端口已经被占用。

解决方法:定义系统对外发起的tcp连接占用的端口范围。

具体方法:

1、 vim /etc/sysctl.conf  加入
 

2、 定义对外访问端口范围

net.ipv4.ip_local_port_range = 起始端口 终止端口(例如net.ipv4.ip_local_port_range = 5000 6550,linux的端口范围是1-65535;默认
对外的端口
范围:32768-61000;1-1024是系统端口;可设置的端口范围是1024-65535。保证设置的端口范围中不包括应用程序的端口,端口范围尽
可能的大。

3、 打开linux快速释放TIME_WAIT的功能(尽量避免端口不够用的现象):

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_timestamps = 1

4、运行sysctl -p

11-26 15:28