网宝
新闻中心 / / 正文

服务器被DDoS攻击了怎么办?

2026-04-28 21:21
技术部
← 返回

凌晨三点,监控告警响起,网站彻底无法访问——这是很多服务器运维人员都经历过的噩梦。DDoS攻击往往在最意外的时刻爆发。本文提供从攻击识别到应急处置的完整操作流程,帮助你在最短时间内恢复业务。

一、如何判断是否遭受DDoS攻击

典型症状

  • 网站突然无法访问,但服务器本身可以SSH登录。
  • 服务器带宽监控显示流量突增至正常值的数十倍以上。
  • CPU或内存占用异常飙升,但没有明显的业务高峰。
  • Nginx/Apache日志中出现大量来自同一IP段或分散IP的异常请求。
  • 服务商发送了带宽超限或IP被封的通知邮件。

快速检测命令

SSH登录服务器后执行以下命令查看当前连接状态:

netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c | sort -rn | head -20

如果 SYN_RECV 数量异常高(数千以上),基本可判定为SYN Flood攻击。

查看当前访问量最高的IP:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

二、应急处置步骤

第一步:立即联系服务商开启防护

第一时间通过工单或客服告知服务商正在遭受攻击,请求开启流量清洗或切换至高防IP。这是最快恢复访问的途径,通常15~30分钟内可生效。

第二步:临时封锁攻击IP段

如果攻击IP相对集中,可通过iptables临时封锁:

iptables -A INPUT -s 攻击IP/24 -j DROP

注意:大规模DDoS的攻击IP通常分散在全球各地,单独封IP效果有限,这一步主要应对CC攻击。

第三步:限制连接频率

针对CC攻击,可在Nginx配置中添加频率限制:

limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

在具体location块中应用:

limit_req zone=api burst=20 nodelay;

第四步:接入CDN隐藏真实IP

将域名解析切换至Cloudflare等CDN服务,启用代理模式(橙色云朵),隐藏源站IP。攻击者无法获取真实IP,后续攻击将被CDN层吸收。

第五步:更换IP(必要时)

如果源站IP已完全暴露且持续被攻击,联系服务商更换一个新的IP,并确保新IP不被泄露(关闭所有可能暴露IP的服务,如直接返回IP的邮件服务器)。

三、攻击后的复盘与加固

加固措施 作用 优先级
接入高防服务器 根本性防御
CDN隐藏源站IP 降低直接攻击面
WAF规则(CC防护) 过滤应用层攻击
监控告警配置 攻击早期预警
多机房容灾 单节点被打时切换 中(大型业务)

四、预防比处置更重要

  • 业务上线前评估攻击风险,有风险的业务直接选高防服务器。
  • 不在任何公开场合暴露服务器真实IP(邮件头、历史DNS记录等)。
  • 配置完善的监控系统,实现攻击秒级告警。
  • 与服务商提前签订应急响应协议,确认遭受攻击时的SLA和处理流程。
QQ客服 提交工单