zoukankan      html  css  js  c++  java
  • linux上大量tcp端口处于TIME_WAIT的问题

    今天发现网站突然无法访问,登陆webserver已经无法连接mysql,转战mysql一看,发现竟然有三千多个TIME_WAIT连接,擦,被SYN攻击了?百度&&google,发现通过修改内核可以解决。

    解决办法
    #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时间.

    设置后OK了,mysql的链接数正常了,但是webserver还是无法连接mysql,访问页面提示
    Host 'IP' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' 查询后发现,是因为webserver连接mysql过多,别mysql给block了,呵呵,用它提示的命令改下吧
    mysqladmin flush-hosts -h IP -uroot -p
    OK,页面可以打开了~

    ==================================过了一会=====================又不能访问了=======================

    各种查,各种学,各种改,so~so~貌似是连接数的问题。
    好,先改mysql的,在my.ini中添加
    max_connections=1000
    然后看看java跟数据库的连接打开数
    proxool.xml
    最小连接数
    <minimum-connection-count>20</minimum-connection-count>
    最大连接数
    <maximum-connection-count>500</maximum-connection-count>
    一次性最大创建并发连接数
    <simultaneous-build-throttle>400</simultaneous-build-throttle>

    好了,页面正常打开了~

    zabbix监控经常可以看到time_wait

  • 相关阅读:
    下载并安装chrome插件的方法
    QString转化为char *的方式
    a socket demo
    TCP/IP相关知识总结(马士兵教育)视频对应图片
    C++中的按位或的用意
    dll路径加载顺序
    【第二周】【作业七】四人小组项目
    【第二周】【作业六】结对项目,四则运算++
    【第二周】【作业八】个人项目词频统计++
    【第二周】【作业三】效能测试
  • 原文地址:https://www.cnblogs.com/lin1/p/5716838.html
Copyright © 2011-2022 走看看