半连接、全连接队列溢出分析
全连接队列
watch 'netstat -s | grep overflowed'
动态观察全连接队列溢出,如果数值在增长,那么确定是全连接队列满了。
半连接队列
cat /proc/sys/net/ipv4/tcp_syncookies
查看是否启用了SYN Cookies。默认0,1表示开启。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。
开启SYN Cookies就不会发生半连接队列溢出。
否则,先计算半连接队列的长度=min(用户声明的backlog, net.core.somaxconn, tcp_max_syn_backlog) + 1再上取整到2的N次幂,最小不能小于16。
netstat -antp | grep SYN_RECV | wc -l
统计处于SYN_RECV的tcp连接数量。