我读了一些关于 TIME_WAIT 连接的内容,并且知道它们对我的服务器应该是无害的(连接已关闭,因此没有资源与此套接字连接)。
最近,我的服务器处于 TIME_WAIT 状态的端口数达到了神奇的 60k 个;我想知道我是否会用完可用端口?
我的服务器使用内核中设置的此池中的动态本地端口:
# sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
创建新连接时,它会使用其中一个 TIME_WAIT 端口吗?或者尝试绑定到另一个开放端口?
如果我将此变量设置为端口 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