网站的服务器经常被爬虫抓到宕机怎么办,用Fail2ban自动封禁高频访问IP比ipset+iptables设置更简单!

站长朋友们最近应该大多数都有遇到大量爬虫爬自己的网站,经常服务器都被爬宕机了,更常见的是MySQL压力过大停止服务了。

对于这种情况我们首先想到的是设置robots.txt禁止爬虫访问,但是根据我的观察,连Amazonbot、GBTBot和Facebook这样的大型企业都不遵守robots.txt规则,所以我们需要想其它方法。

第二个想到的方法是使用服务器的iptables防火墙来封禁IP,确实ipset+iptables的组合也能够很好的封禁恶意爬虫IP及自动解封,像是短时间请求量过大封禁,过一段时间后自动解封,功能也是很完善的。

今天我主要想分享给大家另一个更简单的方法,就是使用Fail2ban来自动禁止高频访问的爬虫IP及自动解封:

网站的服务器经常被爬虫抓到宕机怎么办,用Fail2ban自动封禁高频访问IP比ipset+iptables设置更简单!

比起ipset+iptables,我更喜欢Fail2ban这个软件,功能作用可以说是大同小异,但是ipset+iptables配置步骤太复杂了,大家可以看看它的配置教程:https://www.shoushai.com/p/992

而Fail2ban就非常简单了,上图就是它的界面。没有安装面板的服务器可以使用命令安装,如果你用的是宝塔面板,那么事情就会变得相当简单了,只需要在软件商店中安装Fail2ban-2.3(当前最新版本),然后设置IP白名单,把自己电脑的IP和所在城市的IP加到IP白名单里,然后设置站点保护即可,具体参数设置可以看教程:https://www.shoushai.com/p/1829

如果你安装了面板,但不是宝塔面板,可以去Bing搜索一下你用的面板怎么使用Fail2ban,比如你使用的是1Panel面板,那么它的安装方法如下:

RedHat / CentOS安装

1、安装 epel 源

yum install -y epel-release

2、安装 Fail2ban

yum install -y fail2ban

3、启动 Fail2ban 服务

systemctl start fail2ban

4、开机自启动

systemctl enable fail2ban

5、查看 Fail2ban 服务状态

systemctl status fail2ban

Ubuntu / Debian安装

1、安装 Fail2ban

sudo apt-get install fail2ban

2、Debian 12 及以上的版本需要手动安装 rsyslog

sudo apt-get install rsyslog

3、启动 Fail2ban 服务

sudo systemctl start fail2ban

4、开机自启动

sudo systemctl enable fail2ban

5、查看 Fail2ban 服务状态

sudo systemctl status fail2ban
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧

猜你喜欢

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索