
你收到监控告警:带宽从平时的50Mbps突然飙到400Mbps。你的第一反应是业务爆发了。你打开网站,响应速度正常,用户没有明显增长,但流量确实爆了。
流量暴涨通常只有两种可能:要么你被盯上了,要么你的服务器被别人盯上了。今天把5个排查方向整理出来。
先看一个数据
服务器入站流量异常暴涨的原因通常集中在以下三类:恶意爬虫(大量遍历访问)、CC攻击(同一URL高频请求)、正常业务高峰(如热门内容被转发)。通过分析Nginx访问日志,可以快速判断流量来源,有针对性处理。
排查一:入站流量暴涨
入站流量是从外部进入服务器的流量。带宽突然打满,通常是这三种情况之一:搜索引擎爬虫、恶意爬虫或CC攻击。
快速定位:用iftop或nethogs查看是哪个服务在吃带宽,用Nginx日志找出哪些URL被大量访问、哪些IP请求量最高。
bash
# 查看带宽实时使用情况
iftop
# 查看最近10000条日志中的高频IP
tail -10000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
搜索引擎爬虫的特征:请求来自Googlebot、Baiduspider、Bingbot等。它们抓取通常遵循robots.txt,不会把服务器打满。如果在高峰期抓取过于频繁,可以在robots.txt中设置抓取延迟(Crawl-delay)缓解。
恶意爬虫的特征:请求频率极高,不遵守robots.txt,User-Agent伪造。解决方法是Nginx限流或User-Agent屏蔽。恶意爬虫的核心特征就是不遵守robots.txt,你设置了Crawl-delay它仍然会以极限频率抓取。
CC攻击的特征:大量请求集中在同一URL,通常持续时间较短,可能伴随User-Agent伪造或空User-Agent。解决方法同样是Nginx限流拦截高频请求。
排查二:出站流量暴涨
出站流量是服务器往外发送的流量。入站流量暴涨是有人打你,出站流量暴涨是你的服务器在对外发送大量数据。
可能原因:
- 服务器被入侵,往外传输数据
- 服务器被用作DDoS攻击的跳板
- 网站文件被大量下载(盗链、资源被引用)
快速定位:用iftop查看外连的目标IP,用nethogs按进程查看流量分布。如果看到大量流向陌生IP,基本可以确定是安全问题。
bash
# 查看外连IP iftop -P # 按进程查看流量 nethogs
排查三:外部监控数据验证
确定网络是否真的满了。用第三方工具验证:
- Ping.pe:从全球多个节点测试你的服务器延迟和丢包情况。所有节点都超时,可能是网络断了;只有部分节点高延迟,可能是路由绕路。
- 站长工具Ping检测:国内多节点测试,判断是否是国内线路问题。
排查四:确认是业务增长还是异常流量
区分正常业务高峰和异常流量,核心方法是看访问模式:
| 特征 | 正常业务高峰 | 异常流量 |
|---|---|---|
| 时间规律 | 与业务场景一致(工作日白天、晚间等) | 无规律或集中在凌晨 |
| 访问行为 | 浏览路径自然 | 集中在特定URL(如登录、搜索、某个API) |
| 用户特征 | 不同IP、不同浏览器 | 大量重复UA或虚假UA |
| 转化率 | 与流量同步增长 | 流量涨但订单/注册不涨 |
如果流量暴涨时业务数据(订单、注册、页面停留时间)没有同步增长,基本可以判断为异常流量。
排查五:CDN流量分析
如果网站用了CDN,CDN控制台会显示更详细的流量来源和访问趋势。在CDN控制台查看:
- 流量来源分布和热门URL访问量排名
- 热门Referer(如果某个外部网站大量引用你的资源,可能是盗链)
- 热点时间段的请求状态码分布
通过CDN的报表,结合源站日志验证排查方向是否准确。
流量暴涨应急处理清单
- 区分入站还是出站:入站暴涨查恶意爬虫或CC攻击,出站暴涨查服务器是否被入侵
- 如果是恶意爬虫:Nginx限流
limit_req_zone限制单IP请求频率 - 如果是CC攻击:Nginx限流,Cloudflare开启“我正在被攻击”模式
- 如果是出站流量:马上检查服务器安全状态
- 如果是正常业务高峰:优化代码、上CDN、考虑临时扩容
一个真实案例
某资讯网站周末下午流量突然从20Mbps飙到300Mbps。分析Nginx日志发现,大量请求集中在同一篇文章URL,且User-Agent都显示为python-requests。确认是恶意爬虫在抓取某篇爆款文章。在Nginx配置对该URL路径做了限流,带宽恢复正常,服务器重新稳定。
最后一句
流量暴涨时,先看入站还是出站。入站暴涨查Nginx日志找来源IP和URL,出站暴涨查iftop看外连目标并排查服务器是否被入侵。区分正常流量和异常流量的关键是业务数据是否同步增长——流量涨但订单不涨,基本就是异常。把排查逻辑记清楚,下次遇到流量告警你不会慌。




