服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-08-25 更新于 2026-08-25 简米科技 3,167 字 7 分钟阅读

网站被攻击之后如何通过日志定位攻击源所在段,网站被攻击怎么定位IP段

导读网站被攻击后,千万别慌着重启服务器,直接去翻Web日志,通过分析IP请求频率、User-Agent特征和请求路径,你就能在几分钟内锁定攻击源所在的IP段,这是最直接的止损方法,网站被攻击后怎么查?日志定位攻击源段三步法第一步:确认攻击时间窗口,缩小日志检索范围网站出现卡顿或502时,运维人员的第一反应应该是打开……

网站被攻击后,千万别慌着重启服务器,直接去翻Web日志,通过分析IP请求频率、User-Agent特征和请求路径,你就能在几分钟内锁定攻击源所在的IP段,这是最直接的止损方法。

网站被攻击后怎么查?日志定位攻击源段三步法

第一步:确认攻击时间窗口,缩小日志检索范围

网站出现卡顿或502时,运维人员的第一反应应该是打开监控面板,查看流量曲线图,如果流量在某个时间点突然飙升,或者出现大量404错误,那个时间点就是攻击的起点。

打开你的服务器,进入日志目录,通常在/var/log/nginx//var/log/httpd/,用grep命令过滤出攻击时间段内的请求,

grep "2024-01-15 14:00:00" access.log > attack.log

这一步能帮你把日志文件从几百MB缩减到几十MB,后续分析效率会高很多,如果日志文件太大,可以直接用split命令按时间切割。

第二步:统计高频IP,提取攻击源候选列表

行业共识认为,攻击流量的核心特征就是频率异常,正常用户的请求间隔通常在几秒甚至更长,而攻击脚本会在毫秒级内发起大量请求。

awk配合sortuniq统计IP频率:

awk '{print $1}' attack.log | sort | uniq -c | sort -nr | head -100

运行后,你会看到类似这样的输出:

 5234 192.168.1.100
 1023 10.0.0.55
  876 172.16.0.22

排在前面的IP,尤其是那些请求数超过正常用户几百倍甚至上千倍的,基本可以确定是攻击源,多数情况下,攻击源会集中在某个C段内,比如168.1.100168.1.101168.1.102同时出现,说明攻击源大概率来自168.1.0/24这个段。

第三步:分析请求特征,确认攻击类型并锁定段

网站被攻击之后如何通过日志定位攻击源所在段,网站被攻击怎么定位IP段

光有IP列表还不够,你需要确认这些IP是真实攻击,还是被误封的爬虫或CDN,接着看请求路径和User-Agent:

awk '{print $7}' attack.log | sort | uniq -c | sort -nr | head-20

如果发现大量请求指向同一个URL,比如/wp-login.php/api/user/login,那就是典型的CC攻击,攻击源在用脚本刷接口。

再看User-Agent,如果你看到清一色的python-requestsGo-http-client,或者干脆没有UA头,那基本可以断定是攻击脚本,业内专家指出,攻击源段往往集中在某个运营商或地域,比如全部来自0.0.0/8段,这个段属于某个省份的移动宽带出口。

你可以用iptables或Nginx的deny指令临时封禁整个段,验证是否恢复正常,如果封禁后服务器负载下降,说明你找对了。

nginx日志分析IP段:从海量请求中揪出攻击源

用频率分布定位A段和B段

攻击者有时会使用多个IP轮换,但IP段不会变,你可以在统计IP频率后,进一步分析IP段分布:

awk '{print $1}' attack.log | awk -F'.' '{print $1"."$2}' | sort | uniq -c | sort -nr | head-20

这个命令会提取IP的前两段,比如1680,如果某个段出现频率异常高,比如0这个段有5000个IP,而其他段只有几十个,那攻击源段大概率就在0.0.0/16内。

利用Referer字段识别盗链攻击

有些攻击是通过盗链消耗你的带宽,在日志中,Referer字段会显示来源地址,如果Referer全部指向一个你根本不认识的第三方网站,那就是盗链攻击,此时你要封禁的不是真实IP,而是那个Referer域名对应的服务器IP段。

跟CDN日志做交叉验证

如果你用了CDN,源站日志里看到的IP都是CDN节点的IP,不是真实访客,这时你需要去CDN平台拉取回源日志,或者直接查看CDN的访问日志,里面会记录真实客户端IP。

网站被攻击之后如何通过日志定位攻击源所在段,网站被攻击怎么定位IP段

千万别把CDN节点的IP段当成攻击源,否则你会封掉整个CDN,导致网站全线瘫痪。

网站维护成本与攻击源定位的关系

为什么日志分析能帮你省下高防服务器费用

相当一部分站长在遇到攻击后,第一反应是去买高防服务器,一个月几千块,结果发现攻击源根本没变,换了IP照样被打,如果你能通过日志定位到攻击源段,找到那个段对应的机房或IDC运营商,直接向对方投诉,成本几乎为零

据统计,一般的中小规模CC攻击,攻击源段往往集中在某个低防护的海外机房或国内拨号VPS,你只需要在日志中提取IP段,然后用whois查询这个段归属的运营商,发一封投诉邮件,对方机房通常会在一小时内封禁这个段。

国内高防服务器地域选择的锅

如果你确实需要买高防,日志分析也能帮你判断该买哪个地域的节点,攻击源段大量集中在华南地区,那你的高防节点就应该选在华东或华北,利用地理距离过滤掉大部分攻击流量。盲目选最贵的,不如选离攻击源最远的

永久封禁攻击源段:从日志到防火墙的闭环操作

在Nginx层面封禁IP段

nginx.confserver块或http块中添加:

deny 192.168.1.0/24;
deny 10.0.0.0/16;

然后nginx -s reload立即生效,这个方法适合封禁规模较小的段。

用Fail2ban实现自动化封禁

安装Fail2ban后,配置一个针对Web日志的规则:

[nginx-cc]
enabled = true
filter = nginx-cc
logpath = /var/log/nginx/access.log
maxretry = 300
findtime = 60
bantime = 86400

这个规则的意思是:在60秒内,如果同一个IP发起超过300次请求,就封禁24小时。

网站被攻击之后如何通过日志定位攻击源所在段,网站被攻击怎么定位IP段

够用且直接,自动化程度高,能帮你省去手动封禁的麻烦。

在云防火墙中设置永久黑名单

如果你用的是简米云、酷番云或华为云,直接在控制台的Web应用防火墙或云防火墙中,把攻击源段加入黑名单,云厂商的封禁是在网络入口层做的,比服务器层面的封禁更彻底,攻击流量根本进不了你的服务器

攻击源定位常见问题QA

Q: 网站被攻击后,日志被攻击者删除了怎么办?
A: 如果攻击者拿到了服务器的root权限,日志确实可能被清空,这种情况下,你应该检查系统日志/var/log/messages/var/log/secure,看是否有异常登录记录,联系CDN或云服务商,拉取它们保留的流量日志和访问日志,这部分数据攻击者删不掉,如果之前配置了日志异地备份,直接从备份中恢复。

Q: 定位到的攻击源段是公共WiFi或代理节点,封禁后误伤正常用户怎么办?
A: 这个情况很常见,特别是攻击源段来自大公司的出口IP或公共云服务商的节点,建议你先封禁该段,观察网站是否恢复正常,如果正常用户反馈无法访问,你可以临时放行该段,改为针对单个攻击频率最高的IP进行封禁,同时降低封禁灵敏度,比如把maxretry从300调整为600,避免误伤正常使用代理的用户。

Q: 攻击源段封禁后,攻击者换IP段继续攻击怎么办?
A: 攻击者换段是常见操作,但通常换段后,攻击流量会下降一段时间,因为新段的IP需要重新连接,你只需重复上述日志分析步骤,定位新段并封禁,循环几次,如果攻击者使用大量不同段的IP,说明攻击成本已经很高,这时候你再考虑升级到高防服务,但在此之前,日志分析仍然是成本最低的溯源手段

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