服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-09-03 更新于 2026-09-03 简米科技 4,364 字 10 分钟阅读

网站被攻击怎么查?看懂攻击日志再下单,DDoS防御技巧

导读网站被攻击时,攻击日志就是你最好的“破案现场”,看懂它,你才能知道对方怎么进来的、用了什么手段,再决定下一步是封IP还是上防护,很多站长一发现网站异常就急着买高防、换服务器,结果钱花了,攻击还是没停,日志里早就写好了答案,只是你没看,攻击日志分析教程:从入门到能定位攻击源攻击日志不是给你用来事后后悔的,而是让你……

网站被攻击时,攻击日志就是你最好的“破案现场”,看懂它,你才能知道对方怎么进来的、用了什么手段,再决定下一步是封IP还是上防护。很多站长一发现网站异常就急着买高防、换服务器,结果钱花了,攻击还是没停,日志里早就写好了答案,只是你没看。

攻击日志分析教程:从入门到能定位攻击源

攻击日志不是给你用来事后后悔的,而是让你在攻击发生时就能快速反应的,所谓攻击日志,说白了就是服务器、网站程序、防火墙等组件记录下来的“访问流水账”,每一次请求从哪个IP来、访问了哪个路径、提交了什么数据、服务器回了什么状态码,全都写在里面。

日志文件都在哪儿

不同环境,日志存放位置不一样,但路径相对固定:

  • Nginx日志:/var/log/nginx/access.log 和 error.log
  • Apache日志:/var/log/apache2/access.log 或 /var/log/httpd/access.log
  • 系统安全日志(Linux):/var/log/secure 或 /var/log/auth.log
  • 防火墙日志(如iptables/ufw):/var/log/messages 或 /var/log/firewalld
  • 云服务商WAF控制台:通常有单独的日志查询页面

如果你用的是宝塔面板或某云服务器控制台,直接在后台找到“日志”按钮就行,不用SSH敲命令也能看。

一条日志到底说了什么

拿最常见的Nginx访问日志举例,一行记录大概长这样:

168.1.100 - - [01/Apr/2026:03:22:17 +0800] "GET /wp-login.php HTTP/1.1" 200 5321 "http://yourdomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

拆开来看:

  • 168.1.100:来源IP,攻击者的“门牌号”
  • [01/Apr/2026:03:22:17]:攻击发生的时间,精确到秒
  • “GET /wp-login.php”:攻击者请求的具体文件或路径
  • 200:状态码,200代表请求成功,403代表被拒绝,404代表文件不存在
  • Mozilla/5.0...:用户代理,也就是攻击者用的什么工具或浏览器

看起来复杂,但你只需要关注四个要素:时间、IP、请求路径、状态码,把这四个要素串起来,就能还原攻击现场。

网站被攻击怎么查原因?三步定位攻击源头

如果你发现网站变卡、CPU飙升、后台出现大量陌生IP,别急着重启服务器,按下面三步走,就能从日志里找出原因。

第一步:按时间圈定攻击窗口

先在日志里找到网站开始卡顿的那个时间点,比如你是下午三点发现问题,那就把日志范围缩小到下午两点半到三点,用命令直接过滤:

网站被攻击怎么查?看懂攻击日志再下单,DDoS防御技巧

grep "02/Apr/2026:14:3" /var/log/nginx/access.log

这条命令会列出该时间段内所有访问记录,如果看到来自同一个IP的几百条请求,或者大量不存在的路径、重复的登录尝试,攻击基本就实锤了。

第二步:按IP聚合统计攻击来源

单个IP反复刷同一个页面,要么是爬虫,要么是CC攻击,用awk命令统计访问次数最多的前十个IP:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

结果里排前面的IP,就是重点怀疑对象,把这些IP拿到搜索引擎或者威胁情报平台查一下,比如查微步在线或奇安信的信誉库,如果是已知恶意IP,直接封掉。

第三步:看请求特征判断攻击类型

攻击类型不同,日志里的痕迹也不同,以下是常见攻击在日志里的“指纹”:

攻击类型 日志特征 关键线索
暴力破解 同一IP反复请求wp-login.php、ssh登录等 短时间内大量POST请求,返回200或302
CC攻击 同一IP或IP段高频GET首页或接口 每秒几十到几百次请求,UA常见为curl、python
爬虫采集 请求路径有规律,如访问大量文章详情页 间隔均匀,无浏览器UA,或UA伪装成百度蜘蛛
SQL注入 在请求路径或参数里包含union、select、sleep等关键词 返回500或大量异常数据
扫描探测 请求不存在的路径,如/.env、/phpmyadmin、/admin 大量404状态码,路径是常见的字典文件名

DDoS攻击日志怎么看?别把流量型攻击当成入侵

很多站长分不清DDoS和CC攻击,DDoS是流量洪水,日志里往往看不到具体的恶意请求,因为攻击目标是带宽和硬件资源,但CC攻击则不一样,它属于应用层攻击,日志里能看到清晰的“刷请求”行为。

CC攻击的日志识别法

如果你在日志里看到这样的规律:

  • 同一个IP在几秒内请求了同一个接口或页面几百次
  • 请求的Referer字段要么为空,要么是同一个地址
  • 返回的状态码大多是200,因为攻击者要的就是服务器消耗资源去处理请求
  • 用户代理很单一,比如全是“python-requests/2.31.0”或“Mozilla/4.0”

出现以上情况,基本可以断定是CC攻击,处理办法很简单:在防火墙里限制单个IP的请求速率,比如每分钟最多60次,超出直接封禁。

网站被攻击怎么查?看懂攻击日志再下单,DDoS防御技巧

真正的DDoS怎么从日志看

DDoS攻击发生时,你的Nginx日志可能反而“安静”了,因为流量在到达Web服务之前就已经把网络带宽打满了,这时候该看的是流量监控图,而不是访问日志,如果云服务商的流量面板显示入口带宽达到了几十Gbps,那大概率是DDoS,此时单纯看日志已经没用,得靠高防IP或CDN清洗。

服务器安全日志分析工具:不想敲命令可以这样用

如果你不懂Linux命令,或者日志文件太大无从下手,直接使用现成的分析工具也行,这些工具本质上就是帮你做日志聚合并高亮可疑内容。

开源免费工具

  • GoAccess:适合分析Nginx/Apache访问日志,终端下直接跑goaccess -f /var/log/nginx/access.log就能生成交互式仪表盘,可以看到IP排名、状态码分布、最热路径,一眼就能发现异常。
  • ELK套件(Elasticsearch + Logstash + Kibana):大佬级方案,适合日志量大的服务器,把日志导入Elasticsearch,再用Kibana画图表,不过配置成本较高,新手建议先别碰。
  • Fail2ban:严格说不是分析工具,而是自动封禁工具,它会读取系统日志,当发现某个IP在短时间内连续登录失败超过阈值,就直接拉黑,很多Linux发行版自带,安装后简单配置就能用。

商业平台和云服务商自带功能

  • 简米云安骑士、酷番云主机安全:云服务器控制台里都有“日志审计”或“入侵检测”模块,会自动帮你把异常登录、木马操作、恶意请求标出来。
  • 长亭雷池、安全狗等WAF产品:自带日志看板,直接展示攻击来源和攻击类型,还能生成报表。

人工重点排查的三类日志内容

  • 系统安全日志(/var/log/secure)里的Failed password记录,如果同一IP出现超过10次,说明有人在尝试ssh暴力破解。
  • Web错误日志(error.log)里出现的File not found加上异常路径,比如/etc/passwd/webshell.php,说明被人扫过敏感文件。
  • 访问日志里的超大POST请求,比如单次请求体超过10MB,很可能是在尝试上传木马。

看懂攻击日志后,防护才不花冤枉钱

很多站长一遇到攻击就去买高防服务器,问了一圈网站攻击防护价格,从几百块到几万块都有,结果买完还是被打,原因就在于没搞清楚攻击类型,看完日志你就知道,不同的攻击,对应的防护手段和费用完全不同。

网站被攻击怎么查?看懂攻击日志再下单,DDoS防御技巧

低成本的日志级防护方案

  • 如果是扫描探测或轻量CC攻击,直接在nginx配置里加限制,比如limit_req_zone,或者用Fail2ban自动封IP,几十块钱就能搞定
  • 如果是暴力破解,改端口、限制登录IP、开启SSH密钥登录,这几步操作免费,但能挡住九成脚本攻击。
  • 如果是采集爬虫,用robots.txt加上UA黑名单,或者在CDN层配置访问频率限制,也花不了多少钱。

需要花钱的防护场景

  • 对付大流量DDoS,必须用高防IP或高防CDN,价格通常按防御峰值计算,比如100Gbps防护可能是每月几百到几千元,具体看云厂商报价。
  • 对付混合型攻击(DDoS+CC+Web入侵),建议上云WAF+高防的组合,行业共识认为,中小企业每月花上一顿饭钱买基础防护,比自己折腾各种脚本划算得多

这里有个容易踩的坑:有些人看到日志里出现大量国外IP,就想着用防火墙把整个海外段封掉,但很多正常用户也在海外,无脑封禁会误伤,正确做法是按照攻击IP的归属地和频率做动态封禁,比如自动封禁连续30秒内请求超过50次的IP,而不是封整个网段。

Q&A:关于攻击日志的常见疑问

攻击日志需要保存多久?

建议至少保存3个月,攻击可能不是一次性的,有些人打完一次,隔两周换个IP再来,日志越久,越容易通过IP反查和路径比对发现同一团伙的后续动作,如果你准备报案或找云厂商赔偿,日志也是重要的证据链。

攻击日志能帮我们追查到攻击者吗?

能定位到部分攻击者,如果攻击者使用的是未隐藏的服务器IP(很多扫描器和小型攻击脚本不会伪造IP),日志里的IP就是真实IP,顺着IP查归属地和运营商信息,可以找到IDC机房,再配合报案,有机会查到购买者身份,但如果是大厂DDoS攻击,攻击者会利用肉鸡和反射放大,日志里只有肉鸡的IP,很难溯源到真凶。

日志显示正常,但网站还是很慢,怎么办?

那就说明问题不在应用层攻击,可能是服务器本身的性能瓶颈,比如内存不足、数据库慢查询、带宽被大流量占满但流量并不是来自Web请求(可能被DDoS打在网络层),这种情况要同时检查系统负载(top命令)、带宽监控图、数据库慢查询日志,而不是死磕访问日志。

最后再说一句:攻击日志不是安全工程师的专属工具,它就是你网站的“行车记录仪”,下次网站再出问题,先花十分钟把日志翻出来看看,比急着掏钱买防护有用的多。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱