我读了一些关于TIME_WAIT连接,并知道他们应该对我的服务器无害(连接closures,所以没有资源连接到此套接字)。
最近,我的服务器在TIME_WAIT状态达到了60k个端口的魔术数字; 我想知道我是否会用完免费的端口?
我的服务器使用内核中设置的dynamic本地端口:
# sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000
当创build一个新的连接时,它会使用其中一个TIME_WAIT端口吗? 或尝试绑定一个不同的,开放的端口?
如果我把这个variables设置到端口1024-65535,如果我有一些应用程序在该范围内的端口上运行,会发生什么?
这不是一个如何最小化TIME_WAIT连接状态的问题。
当前的内核修改 :
# sysctl net.ipv4.tcp_tw_recycle net.ipv4.tcp_tw_recycle = 0 # sysctl net.ipv4.tcp_tw_reuse net.ipv4.tcp_tw_reuse = 1 # sysctl net.ipv4.tcp_fin_timeout net.ipv4.tcp_fin_timeout = 30 # sysctl net.ipv4.tcp_timestamps net.ipv4.tcp_timestamps = 1 # sysctl net.ipv4.tcp_sack net.ipv4.tcp_sack = 1