前言
两个星期前,我打开服务器后台看看流量使用情况,一看差点没绷住——用了226.25GB,重点是在这次之前才用了30多GB,一个星期就跑了近200多GB的流量
当时就挺纳闷的,就部署了几个没人看的小站点和一些要用的转发服务以外就没有别的了,这也不至于跑到这么高。不过并没有想太多,毕竟没啥时间去深究,而且也没到上限就没有多在意
结果…又过了一个星期,直接干到400GB封顶了。真的操了,服务商直接停掉了宽带,同时距离流量重置还有一个多星期,直接导致部署在上面的站点和机器人要用的p站插画转发服务直接寄掉(当时还想看看cs选手动态,是真给我整不会了)
尝试解决
用备用的美国机器熬了一个多星期终于重置流量了(甚至还是我发工单客服处理的)连接到ssh后先初步判断下是哪个玩意干的
回到控制台重新看使用情况,整个机器宽带一直处于低占用,但时间一长且我这台机器上下行都要算进去就会累计很多流量消耗
首先我想的是v2,但是这玩意从部署完再到现在也才用了不到30多个GB,所以直接排除。我那bot使用频率嘎嘎低且有段时间没续费掉线了也不太可能是它,所以我把目光放在了Nginx,有没有可能是因为某个爬虫干的b事?
首先我使用iftop流量监测工具查看情况,直接弹出4行带有googlebot的连接
至此我基本确认就是google的爬虫机器人干的好事,然后使用netstat工具查看关于nginx的连接数
sudo netstat -ntp | grep 'nginx'
看到一堆66开头的ip,用host命令确认归属地都是google的,至此结束了…吗?
出乎意料的结局
先写了个robots.txt来限制下(毕竟大厂一般都会遵循君子协议)再看看情况,就这样吧。
说点无关的话题,完美解说是这么形容donk的:“春风得意马蹄疾,一日看尽长安花”
那我也送Niko一句:“春风若有怜花意,可否许我再少年”。可惜了Niko,无缘上海major冠军
12.26更新
并没有很好的解决问题故重新登陆回google控制台查看抓取统计,没想到光是一天就有33.5万的抓取请求,还有一个331704次的抓取请求数指向了一个我之前临时启用但现在闲置的域名,这个域名A记录还是我服务器的ip,我顺着这个域名发现指向了一个db网站。不仅如此,其他我闲置的二级域名都被污染了,操
所以整件事情原貌是:我之前临时用的域名被污染,这些域名都记录的是服务器的ip,这b玩意套着我的皮被爬虫爬了331704次(还有其他被污染的域名没有算进去)导致服务器长时间占用宽带,流量被消耗掉,要不是流量消耗得太快我还不一定能发现(因为我不想搞SEO也没时间搞,本站更多作为一个赛博净土而建)
至于怎么解决,先去dns控制台把这些被污染的域名删了并启用DNSSCE,然后去google控制台重新索引相关域名,剩下的就交给时间吧
12.29更新
我自己也没想到不止这么点事,通过google控制台发现googlebot一直在爬取以/web或者是/ios结尾为特征的URL,尝试curl后该发现并非404而是301跳转到了其他站点
通过请求链可以判断是通过js脚本进行的,根据这个url判断这是51la统计脚本,但我压根都没有用过统计,使用无痕式窗口请求该问题依旧存在故并非本地问题,那么就有可能是服务器被挂马劫持
在这里先感谢某个大佬提供技术支持帮助我快速定位该问题(不知道怎么说他名就说大佬吧)
首先我尝试重装php和nginx发现问题依旧存在,检查Nginx配置文件是否有location跟web/ios的相关语句,但主配置文件并没有。尝试重新编译Nginx也无法解决问题,最后尝试改host文件等但问题依旧存在
绕了一大圈最终还是回到了Nginx,干脆执行该命令
nginx -T | grep ios
最终定位问题根源(其实第一次执行nginx -T就应该发现问题了,当时我并没有意识到Nginx的子配置文件,而且我还没仔细看)至此才是真正的结束
最后尝试新建站点后并不会出现劫持,初步判断有可能是wordpress插件导致的劫持,保险起见我还是选择了重装系统,再次感谢那位大佬