admin

服务器运维之 Bytespider 异常流量
前言现在是2019年6月18号凌晨1点,本打算洗澡睡觉,刷新了一下自己的网站,打不开了!于是登上服务器查看,发现 ...
扫描右侧二维码阅读全文
18
2019/06

服务器运维之 Bytespider 异常流量

前言

现在是2019年6月18号凌晨1点,本打算洗澡睡觉,刷新了一下自己的网站,打不开了!
于是登上服务器查看,发现 Tomcat 进程直接挂掉了。
查看 Tomcat 日志,并未发现什么异常,难道是机器配置太低导致的?
不管三七二十一,先重启再说。
结果,重启了还是打不开,整个服务器就像阻塞了一般,接受不了请求。

分析

既然 Tomcat 没有异常日志,那就查看下 Nginx 的请求日志。
结果发现,日志刷的飞快,心想,大晚上的,怎么会有这么多的流量。
仔细一看,不难发现,大多数请求都是一个叫Bytespider爬虫的,网上搜了一下,确实也有人遇到了同样的问题。
IP 主要分布在河北张家口以及广州。

解决

对于这种垃圾流量,还是直接过滤掉的好,这次的 Tomcat 进程崩溃,很有可能就是这波异常流量导致的。
最容易想到的就是在 Nginx 中添加拒绝策略,如下:

if ($http_user_agent ~* (Scrapy|Curl|HttpClient|linkfluence|Bytespider)) {
    return 403;
}

也可以针对IP段进行封禁,可以用 Nginx 的 IP 拒绝策略,但是我发现,Nginx 虽然是拒绝了请求,但实际上还是会返回 403 状态回去,并且Nginx日志中也会有响应的纪录,简直浪费流量,直接让服务器不响应岂不更好?
于是使用ufw防火墙添加拒绝策略,最终我的防火墙规则如下:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  
22/tcp                     ALLOW       Anywhere                  
22/udp                     ALLOW       Anywhere             
Anywhere                   DENY        60.8.9.0/24               
Anywhere                   DENY        60.8.165.0/24             
Anywhere                   DENY        111.225.147.0/24          
Anywhere                   DENY        111.225.148.0/24          
Anywhere                   DENY        220.243.135.0/24          
Anywhere                   DENY        220.243.136.0/24          
80                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
22/tcp (v6)                ALLOW       Anywhere (v6)             
22/udp (v6)                ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)

最终再次实时查看Nginx日志,发现完美抵御 Bytespider 异常流量!

Last modification:June 18th, 2019 at 01:12 am
If you think my article is useful to you, please feel free to appreciate

One comment

  1. 222

    字节跳动

Leave a Comment