使用netstat -an查看系统连接状态时发现存在大量TIME_WAIT连接,均为mysql。然后google了一下,下面贴出解决办法。

[root@blog~]# netstat -an

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:11211             0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:43389             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43388             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43387             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43382             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43381             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43380             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43379             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:43378             127.0.0.1:3306              TIME_WAIT

tcp        0      0 127.0.0.1:11211             127.0.0.1:38792             ESTABLISHED

tcp        0      0 127.0.0.1:11211             127.0.0.1:38799             ESTABLISHED

解决办法

#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

#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,表示关闭.

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

参考文献 http://blogold.chinaunix.net/u3/93926/showart_1873546.html

阅读(2037) | 评论(0) | 转发(0) |

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐