linux回收time_wait端口,linux快速回收TIME_WAIT

424a967e712538ec93e57e53847ac760.png

我们可以通过调整内核参数来调整:vi /etc/sysctl.conf

编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

而后执行/sbin/sysctl -p让参数生效。

参数说明:

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来解决,可防范一些SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。生产环境前台提供客户访问的主机上肯定不能开启,起因是,在客户假如是nat访问,那么timestamps不一致,会导致时间戳错乱,nat客户无法访问

net.ipv4.tcp_fin_timeout 修改系統默认的TIMEOUT时间

修改之后,再用命令查看TIME_WAIT连接数netstat -ant | grep “TIME_WAIT” | wc –l

在没有nat情况下还需要设置net.ipv4.tcp_timestamps = 1才能生效。