#查看连接状态汇总
netstat -n|awk '/^tcp/{++gyk[$NF]}END{for(a in gyk)print a,gyk[a]}'    #变量a不能替换为别的(比如i)
TIME_WAIT    10046
ESTABLISHED     158

#解决timewait过多的问题
1.设置超时时间
2.重用
3.系统对此状态回收

#如果socket由本端要求关闭,这个参数决定它保持在FIN-WAIT-2状态的时间(也就是自己收到第四次断开的等待时间)
net.ipv4.tcp_fin_timeout = 2
#开启重用,允许将TIME-WAIT socket重新用于新的TCP连接,默认为0(关闭)
net.ipv4.tcp_tw_reuse = 1
#开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_tw_recycle = 1
#开启SYN Cookie。当出现SYN等待队列溢出时,启动cookies来处理,可防范少量SYN***
net.ipv4.tcp_syncookies = 1
#设置长链接时间
net.ipv4.tcp_keepalive_time = 1200
#用于向外连接的端口范围
net.ipv4.ip_local_port_range = 4000 65535
#设置SYN队列的长度
net.ipv4.tcp_max_syn_backlog = 16384
#系统同时保持TIME_WAIT状态的socket的最大数量,如果超过这个数字,TIME_WAIT将被立即清除,并打印警告信息(web服务器5000-30000,分发和缓存可以调大一些)
net.ipv4.tcp_max_tw_buckets = 30000
#路由缓存刷新频率
net.ipv4.route.gc_timeout = 100
#三次握手第一次握手失败的重连次数
net.ipv4.tcp_syn_retries = 1
#三次握手第二次握手失败的重连次数
net.ipv4.tcp_synack_retries = 1