• 开启防火墙iptable规则后,系统网络变慢


    可能原因:iptables的conntrack表满了导致访问网站很慢
    现象:突然发现访问网站很慢,服务器的cpu、内存和磁盘使用率都正常
    ip_conntrack和ns_conntrack含义一样,只是在新旧版本上不同
    分析过程及解决方案:查询/var/log/message日志发现有这样的记录“ip_conntrack table full dropping packet”。kernel 用 ip_conntrack 模块来记录 iptables 网络包的状态,并保存到 table 里(这个 table 在内存里),如果网络状况繁忙,比如高连接,高并发连接等会导致逐步占用这个 table 可用空间,一般这个 table 很大不容易占满并且可以自己清理,table 的记录会一直呆在 table 里占用空间直到源 IP 发一个 RST 包,但是如果出现被攻击、错误的网络配置、有问题的路由/路由器、有问题的网卡等情况的时候,就会导致源 IP 发的这个 RST 包收不到,这样就积累在 table 里,越积累越多直到占满,满了以后 iptables 就会丢包,出现外部无法连接服务器的情况。

    解决方案:Iptables启动的是会在日志里提示当前的buckets和conntrack_max的值以及每条跟踪连接需要消耗多少内存:
    也就是说304MB内存将支持1048576条跟踪连接记录,所以需要按照服务器的内存大小来配置合适的值。
    永久修改ip_conntrack_max和hashsize

    1. 增大 ip_conntrack_max(设置为 2^20,默认值是 2^16=65536)
      #vi /etc/sysctl.conf
      net.ipv4.ip_conntrack_max = 1048576

    2. 增大 hashsize (在i386架构上,HASHSIZE = CONNTRACK_MAX / 8)
      #vi /etc/modprobe.conf
      options ip_conntrack hashsize=131072
      然后重启 iptables 服务,在 messages中可以看到参数已生效:
      #service iptables restart

    #cat /proc/sys/net/nf_conntrack_max 定义连接追踪的最大值,建议按需调大此值;
    #cat /proc/net/nf_conntrack 记录了当前追踪的所有连接
    cat /proc/sys/net/netfilter/nf_conntrak_tcp_timeout_established ESTABLISHED超时时长,默认时间比较长,建议调小此值。
    nf_conntrack连接追踪的限制由/proc/sys/net/nf_conntrack_max文件控制,可以修改该文件或者/etc/sysctl.conf/etc/sysctl.conf。
    echo “65536” > /proc/sys/net/nf_conntrack_max

    可能原因二:缺少dns的相关规则
    iptables -I INPUT -p udp --sport 53 -j ACCEPT
    iptables -I INPUT -p tcp --sport 53 -j ACCEPT

    原因三:路由问题https://support.huawei.com/enterprise/zh/knowledge/EKB1000059526

    原因四:缺少相应的udp规则,比如有NFS的话,需要打开NFS相关的udp链接,否则NFS链接会占满,导致其他链接被中断,导致访问慢

    https://www.liuyixiang.com/post/83843.html
    https://www.haiyun.me/archives/iptables-conntrack-max.html
    https://blog.51cto.com/jasonyong/280993
    https://support.huawei.com/enterprise/zh/knowledge/EKB1000059526
    https://www.docin.com/p-1065250766.html
    https://www.163.com/dy/article/GE1TIRTL05373KLK.html
    https://www.zsythink.net/archives/1493
    https://www.cnblogs.com/yxh168/p/9676745.html
    https://www.dandelioncloud.cn/article/details/1430922069444997121

  • 相关阅读:
    一个不可多得的技术博客
    Util应用框架核心(三) - 服务注册器
    CMMI SPP各阶段流程图
    即时通讯或者推送消息的守护进程?开启几个进程?
    数据的异常值和重复值怎么处理?拿去抄作业!
    Spring Security整合企业微信的扫码登录,企微的API震惊到我了
    【element-ui】form表单动态修改rules校验项
    中国医药院外流通市场分析
    Matlab GUI编程技巧(六):从一个GUI界面跳转到另一个GUI界面以及GUI窗口间数据传递
    Java8 Optional 的正确用法以及在 Java9 中的增强
  • 原文地址:https://blog.csdn.net/weixin_42272246/article/details/125682481