本文共 1422 字,大约阅读时间需要 4 分钟。
网络连接状态说明:
CLOSED 无连接是活动的或正在进行
LISTEN 务器在等待进入呼叫
SYN_RECV 个连接请求已经到达,等待确认
SYN_SENT 用已经开始,打开一个连接
ESTABLISHED 常数据传输状态
FIN_WAIT1 用说它已经完成
FIN_WAIT2 一边已同意释放
ITMED_WAIT 待所有分组死掉
CLOSING 边同时尝试关闭
TIME_WAIT 一边已初始化一个释放
LAST_ACK 待所有分组死掉
1.查看系统有TIME_WAIT多少个连接
[root@AY140528120357495c4bZ ~]# netstat -antup | grep 'TIME_WAIT' | wc -l
1570 [root@AY140528120357495c4bZ ~]#
2.修改内核参数关闭TIME_WAIT连接
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,表示关闭.
net.ipv4.tcp_fin_timeout = 30 --修改系統默认的 TIMEOUT 时间
[root@AY140528120357495c4bZ ~]# vim /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[root@AY140528120357495c4bZ ~]#
3.使用配置生效
[root@AY140528120357495c4bZ ~]# sysctl -p | grep tcp
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 [root@AY140528120357495c4bZ ~]#
4.查看修改内核后的TIME_WAIT连接
[root@AY140528120357495c4bZ ~]# netstat -antup | grep 'TIME_WAIT' | wc -l
9 [root@AY140528120357495c4bZ ~]#