因为比较菜的原因,自从使用了VPS以后就一直使用宝塔面板来维护,而平时极少登录宝塔面板的。前段时间在折腾笔记软件,最后选定了思源笔记软件,因为思源笔记软件更新的频率真的非常快,也就随着思源笔记软件更新而登录宝塔进行更新。前天登录宝塔后台之后,无意之间发现我的这台篱落香港VPS的CPU占用情况有些异常,从40%-80%不停的波动从而导致VPS的负载有时能达到90%这样。
我的这台篱落香港VPSCPU是两核心、内存是4G的,而上面只放了两个博客、一个导航、一个思源笔记,这么高的配置对于这四个网站来说,真的是大牛拉小车。所以VPS一定遇到了什么问题。
还是第一句话,自己比较菜,便在中文微信群里请教。经过好几位大神的指点,最后“诊断”出结论是遇到了DataForSeoBot爬虫。给出解决方案的大神嘛我这里就不一一列举了,表示一并的感谢!我就简单整理出“诊断”及解决办法吧!
通过SSH链接VPS,使用top命令,top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。通过观察发现有一个名为“php-fmp”进程长期CPU占用居高不下,而对于这个进行CPU占用率过高的原因,一般情况下是服务器遇到了CC。一般CC攻击的情况下,服务器的流量会非常高,而我的VPS的流量基本上是正常的,所以排除了CC攻击。
这个时候查看服务器上每个网站的日志,终于发现了问题的所在。有一个IP,每隔4秒钟就会对我的老张博客进行一次GET数据,而且后面明确注明了一个bot.html网址。你打开这个网址之后,上面会有这个SemrushBot机器人的说明以及如何屏蔽的方法。
一般情况下有两种解决方法,首先是屏蔽IP的方法,通过宝塔面板的安全设置里的系统防火墙把该IP屏蔽掉,不过DataForSeoBot爬虫的IP并不是单一的,也不是某一IP段,所以屏蔽某一IP的方法只是暂时的。这个时候我们可以安排软件商店里安排第三方插件“Nginx免费防火墙 6.6”来把国外的IP都给屏蔽了。这样就会彻底解决问题了,但是如果你的网站真的有国外朋友访问的话,那也被拒之门外了。所以通过屏蔽IP的方法并不能够完美的解决问题。
1、robots.txt方法
User-agent: DataForSeoBot
Disallow: /
2、通过修改Nginx或其它WEB服务器规则禁止抓取
Nginx禁止DataForSeoBot爬虫规则如下:
if ($http_user_agent ~ "DataForSeoBot/1.0" )
{
return 403;
}
通过以上两种方法,就可以完美的解决问题了。这里需要说明下,不同的网络爬虫的名称可能不同,只需要DataForSeoBot替换掉就可以了。
唉,不过话又说回来了,篱落主机性能还是弱了,一个IP4秒一个GET就把CPU搞到了80%。
我遇到了我不知道的,我只管码文字,其余都是虚拟主机自己在运行,也不知道有没有这些爬虫之类的
@响石潭: 恶意爬虫虽然占资源,但是服务器抗得住,就怕服务器配置低网站可能就会卡了,那就得要查原因了。
张老师越来越专业了!厉害!
@老达: 我不是专业,只是遇到问题了,得要解决。
@老张: 随着解决的问题越来越多,可不就是越来越专业了嘛
专业。我不懂这方面的知识,问题解决后CPU使用率降了多少?
@老麦: 把爬虫屏蔽之后,CPU占用降到5%以下了。
下了思源笔记用了一下,发现跟markdown差不多
到期了赶紧换,?
@老刘: 是准备换,但是目前还不知道换哪家的,你推荐推荐
一般来说,一个访客就会增加一个fpm进程,所以这时候需要去检查是不是有人CC,访问是否正常
@你当向往阳: 好的,这样解释就更加专业了。
建议直接在CloudFlare里屏蔽这个UA!
@明月登楼: 这个方便也不错,解决问题的办法还是多样的。
推荐all in one security & firewall插件,里面的众多安全功能中的一个就是屏蔽虚假爬虫。
@林海草原: 好的,安装一个试试看。
这个是否是采集爬虫?
不懂折腾VPS,一直都是用的虚拟机。
如遇到也只能请教管理员搞定,自己搞不来。
@Mr.Chou: 其实用虚拟机也很安逸的,省心。
我都不注意服务器的情况,哈哈哈
@小陆花: 那你的服务器应该没有问题,感觉到速度慢了你就会去注意了。
这种爬虫还没遇到过
@鸟叔: 应该遇到过,只不过你没有去在意罢了!
还有其他不少恶意爬虫,必须也得封禁了好 :mrgreen:
@龙笑天: 是的,这个恶意爬虫无益,必须要禁。
那么如何分辨这些个爬虫呢?你说的方法是同时适用还是只是用一个
@红叶: 看后台,有记录的,每秒都有GET,那一定是的了