这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 傲来云 于 2025-5-9 12:24 编辑
网站突然变慢、服务器资源飙升、负载高居不下?很多时候不是服务器问题,而是遇到了恶意刷站、爬虫、CC攻击等情况。 access.log 是 Nginx/Apache 自动记录的网站访问日志,通过分析它,我们能快速判断是否被恶意请求骚扰,以下是我自己常用的一些排查方法,分享给大家。
access.log 是什么?
Nginx 的访问日志默认路径: - /var/log/nginx/access.log
复制代码 每一行记录一次用户请求,比如这样:- 192.168.1.10 - - [08/May/2025:10:01:22 +0800] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0"
复制代码 我们可以从中提取出访问 IP、请求时间、页面路径、状态码、UA 等信息。
实用分析命令
1. 找出访问最多的 IP- awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
复制代码 用来快速排查是否有某个 IP 异常刷请求。
2. 查看某个 IP 的行为- grep "1.2.3.4" /var/log/nginx/access.log
复制代码 可查看这个 IP 都访问了哪些路径,是否持续请求同一个页面。
3. 查看最常被访问的页面- awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
复制代码 可以发现某个接口、图片、JS 是否被反复请求,比如 wp-login.php 就是被暴力破解的高发页面。
4. 只看今天的日志(配合日期)- grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log
复制代码 方便你只分析当日流量情况。
5. 查看请求频率(秒级请求)- awk '{print $4}' access.log | cut -d: -f2-4 | uniq -c | sort -nr | head
复制代码 可以看到每秒的请求量,判断是否短时间被刷。
常见攻击表现
类型 | 特征表现 | 应对建议 | CC攻击 | 某IP大量访问某页面 | 封IP,设置限速、WAF防护 | 爬虫抓站 | UA明显是Python、Go等 | 使用 robots.txt 或封UA | 暴力破解 | 不断请求 wp-login.php、admin | 改登录路径、加验证码 | 扫描漏洞 | 访问奇怪路径(如 /phpmyadmin) | 屏蔽路径、关闭无用端口 |
日常防御建议
宝塔用户可安装防火墙插件,设置 IP/UA 黑名单
配置 Nginx 的 limit_req_zone 做限速
日志建议定期分析+归档,避免堆积
配合 CDN,可屏蔽大量无效请求源头
最后总结
access.log 是最基础、最有价值的排查工具,不依赖任何第三方平台,只要会基本的 Shell 命令,就能迅速发现异常请求。
欢迎大家分享你是怎么处理日志和攻击的,也欢迎补充你遇到的例子,一起交流!
|