服务器又被爬虫爬宕机了,然后我去看了下网站日志,一堆Amazonbot和GPTBot的请求,我记得我是在robots.txt屏蔽了这些蜘蛛的,于是我检查了robots.txt,确实是屏蔽了,只能说这两个蜘蛛不遵守robots规则了!
他们这么大公司,蜘蛛都是非常多线程的,一大堆IP一个一个用istable去拉黑不显示,所以我就想着,如果同一个IP,10秒内打开了5个页面,这应该就是恶意爬虫了,正常用户哪有这样访问的!

我就想着,自动把这个IP拉黑,6小时后在放出来,它继续这样抓就再拉黑了,这样我的服务器就不会被爬宕机了。还真让我找到这样的软件了,就是Fail2ban。
用宝塔的铁子们直接在软件商店下载Fail2ban 2.3即可,免费的,没有面板的用户也可以下载,用命令下载就行:
# 安装EPEL源(CentOS 7/8通用)
yum install epel-release -y
# 安装fail2ban
yum install fail2ban fail2ban-systemd -y
# 启动并设置开机自启
systemctl start fail2ban
systemctl enable fail2ban
点开设置,有个提示:站点功能目前仅支持Nginx,apache和更多功能敬请期待。这个可以忽略,我安装的环境就是apache,可以正常使用的!
然后点击创建,选择要保护的网站,上面的值大部分默认就行,300秒访问30次其实是比10秒访问5次合理的,主要是禁止时间,默认的只有10分钟,我建议设置成3小时~6小时。
另外会有误伤自己和误伤搜索引擎蜘蛛的问题,在IP白名单中添加自己的IP和自己城市的IP段,搜索引擎的蜘蛛IP可以查询后也加进去,一行一个。但是我是建议不用加搜索引擎的,它们的蜘蛛一般没有这么高频率。
本文来自投稿,不代表首晒立场,如若转载,请注明出处:https://www.shoushai.com/p/1829