Laravel 学院今天下午两点半到三点半期间不能访问问题定位及修复细节报告
今天下午3点多的时候,有微信群用户反应学院访问不了了:
我赶紧打开浏览器,如网友所言,发现确实访问不了了。
我立即登录到阿里云后台,看看 ECS 实例是否运行正常,两个实例都是正常运行的,再查一下两个实例的监控指标,发现装有负载均衡的入口实例上外网网卡出网带宽被打满,我第一时间考虑的是不是网卡带宽太低,于是先将其升级到2M带宽(为了降低验证成本,选择临时带宽升级,就选一天的,一两块钱),发现还是不行,出网带宽立即蹿到2M,又打满了:
接下来,看来不是这个问题,我需要登录到服务器去定位具体原因,此时,由于出网带宽被打满,登录变得很慢(之所以第一时间升级带宽也有这方面的原因),ping 都已经无法 ping 通了:
好在等了一会登进去了,既然是网络问题,我需要监控下网络流量,看看到底是哪些连接导致的带宽被打满,因此需要在服务器上安装一个 iftop
工具:
apt-get install iftop
安装完成后,根据阿里云的监控面板是网卡1(eth1)流量异常,所以通过 iftop
工具监控下 eth1
的流量:
iftop -i eth1 -P // 带 -P 显示对应端口号
此时,可以看到这张网卡上异常的网络流量都来自 114.84.146.45
(右侧)这个外部 IP 与服务器(左侧)的 HTTPS 连接,是在恶意攻击?还是爬取网站信息?
到这里,大概就明白问题的症结所在了,接下来,就好办了,立马把这个 IP 封杀掉,拒绝其与学院所在服务器的连接,这个可以通过 iptables
办到:
iptables -I INPUT -s 114.84.146.45 -j DROP
执行完这条命令,可以看到 iftop
监控界面上的异常连接消息,在阿里云后台的实例监控面板上也可以看到出网带宽的值立即降下来了:
再在浏览器访问 Laravel 学院网站,世界又恢复了平静,仿佛什么都没发生过:
以上就是今天下午学院差不多1个小时不能访问的问题定位和修复过程,希望下次你遇到类似问题可以对你有所启发。
PS:此方案主要用于快速解决问题,长期可行性方案大家可以自行去设计并实现,比如从运维角度根据大数据将异常 IP 检测到并进行隔离,或者从应用角度对单个用户访问频率做限制等。
10 Comments
这是一个ip ,来一个封一个,如果DDOS攻击怎么办
我也想问楼上问的呢,院长,要是大量动态ip,就得换什么方法呢
哈哈 DDOS 你是搞不了的 只能联系运营商帮忙处理 DDOS 哪有这么客气的 肯定就是几百M以上的流量刷进来了
这个有时候面试也会问道
大量的动态IP一般就是DDOS了 这种成本很高的 你至少几十上百台机器吧 而且一般不会分布在一个网段内 那样的话我用iptables还是一条规则就给他封了 分布在不同地方的上百台机器 成本你算算 一般小网站他们还真犯不着去攻击 没有意义 毕竟人家靠这个吃饭 要有回报的
mark, 早能能用, 很详细
厉害 大佬
厉害了!!有微信群呀!可以加下不
先加我微信 超过100人只能邀请:yaojinbu
好的,我已经加了,哈哈