如何解决网站卡顿问题之 – 带宽占满

最近一个项目,服务器时不时地被攻击,一直是高流量的DDOS攻击,像这样的情况,真的没什么更好的办法。就只能购买云的高付费清洗服务.

一般被DDOS之后,看云后台的带宽统计图,就是一条直线。5M的带宽,都被占满。TCP的连接数,瞬间也就都起来了。

今天我们说一下非DDOS情况,部分异常IP频繁访问导致机器带宽占满的问题。先看云后台,服务器各参数的统计图片:

上图带宽
TCP连接数

统计趋势图
WEBRESOURCE4df11302cfb76ecaef2deaa05595fb28 (1491×595)

当是DDOS的时候,上面已说过,如果流量真的很大,我们普通的机器,根本就扛不住。发生这要的情况,SSH连接上服务器都困难。

我们只处理非DDOS的情况,参考上面图片的情况。解决问题的思路主要分以下几步:

第一:想办法SSH连接到服务器。

我们去连接机器,应该是连接不上的。这时候只能让机房或自己去云后台,直接重启机器。在重启后,立即登陆到服务器上。这里要根据实际情况处理,有的时候可能重启了,也不一定能连接上。

第二:iftop查看异常流量

有的机器上可能没有这个命令,没有关系咱安装一下就行。

yum install iftop -y

关于iftop的使用详细介绍与使用方法,这里主不展开讲了,大家需要参考的话,可以移步这里:iftop—实时流量监控工具

接着使用: ifconfig 查看网卡信息,如图:

执行命令:iftop -i eth0

能观察到某个IP的流量

当然,这里也可以用命令, 来观察外部IP连接数量:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort -r | uniq -c | sort -nr

或用

netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

第三:禁掉异常IP

观察异常IP,然后使用iptables命令,封掉指定IP

查看被封IP列表:iptables -nL --line-number

被封IP列表

封掉指定IP:iptables -A INPUT -s 59.36.120.215 -p TCP -j DROP

已封禁指定IP

如果发现禁封错了IP,使用命令解封:iptables -D INPUT 2 【指定IP列表的行号】

非DDOS的攻击,一般情况下,经过封停IP后,我们能发现服务器会逐渐恢复正常状态。

如何解决网站卡顿问题之 – 带宽占满

发表评论

电子邮件地址不会被公开。 必填项已用*标注

滚动到顶部