服务器遭受DDoS攻击怎么办?防御方案与紧急处置步骤详解

服务器遭受 DDoS 攻击怎么办?防御方案与紧急处置步骤详解

网站突然无法访问、服务器失去响应、流量监控图出现异常尖峰——这是很多站长遭遇 DDoS 攻击时的第一感知。DDoS(分布式拒绝服务攻击)是目前最常见的网络攻击手段之一,从小型个人博客到大型电商平台都可能成为目标。本文帮你快速识别攻击、实施紧急处置,并建立长效防御体系。


一、如何判断自己正在遭受 DDoS 攻击?

DDoS 攻击与服务器故障的区分很重要,处理方式完全不同:

现象DDoS 攻击服务器故障
流量监控出现异常尖峰,数倍于正常流量流量正常甚至下降
带宽占用上行/下行带宽接近或达到上限带宽正常
来源 IP 分布海量陌生 IP,来自多个国家无异常外部连接
服务器 CPU可能较高(应用层攻击)或正常(流量型攻击)通常较高(业务代码问题)
服务商通知IDC 可能因流量超限发警告或封端口无相关通知

快速确认命令

# 查看当前连接数最多的 IP(排名前20)
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

# 查看每秒新建连接数(持续刷新)
watch -n 1 'ss -tn | grep ESTAB | wc -l'

# 查看网络接口流量
ifstat -i eth0 1

如果看到大量来自不同 IP 的连接,且连接数是平时的数十倍,基本可以确认正在遭受攻击。


二、紧急处置:攻击发生时的即时应对步骤

第一步:联系 IDC,开启黑洞路由

如果攻击流量超过服务器带宽上限,服务器将完全无响应。此时应立即联系服务商,请求对被攻击 IP 开启黑洞路由(Null Route / Black Hole)——即将所有发往该 IP 的流量在上游直接丢弃。

黑洞路由的代价是:该 IP 暂时无法访问。但这样可以保护服务器本身不宕机,避免影响同机房其他客户,为后续处置争取时间。

第二步:将流量切换至 Cloudflare(最快的临时解决方案)

  1. 登录 Cloudflare,将 DNS A 记录指向原服务器 IP(如果尚未使用 Cloudflare)
  2. 确保 DNS 记录的"代理"选项为橙色云朵(已启用)
  3. 在 Cloudflare 安全设置中,将"安全级别"调整为"我遭到攻击"(Under Attack Mode)
  4. 开启"Bot Fight Mode"拦截自动化攻击流量

Cloudflare 免费版即可吸收大量中小规模 DDoS 攻击(通常在数 Gbps 以内)。Cloudflare Pro($20/月)以上版本具备更强的攻击吸收能力和更精细的规则配置。

第三步:在服务器端封禁攻击 IP 段

# 安装 iptables(通常已预装)
# 封禁单个 IP
sudo iptables -A INPUT -s 攻击IP -j DROP

# 封禁整个 IP 段(如 1.2.3.0/24)
sudo iptables -A INPUT -s 1.2.3.0/24 -j DROP

# 限制单个 IP 每秒的连接数(防 CC 攻击)
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP

# 保存规则(Ubuntu)
sudo iptables-save | sudo tee /etc/iptables/rules.v4

第四步:在 Nginx 层限制请求频率

# 在 nginx.conf 的 http 块中添加
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;

# 在站点配置的 server 块中应用
limit_req zone=one burst=20 nodelay;
limit_conn addr 20;
sudo nginx -t && sudo systemctl reload nginx

三、DDoS 攻击的常见类型与应对策略

攻击类型特征应对方案
流量型攻击(UDP Flood / ICMP Flood)带宽被打满,服务器无法响应黑洞路由 + 高防 IP
SYN Flood大量半连接耗尽连接表开启 SYN Cookie + iptables 限速
CC 攻击(HTTP Flood)大量 HTTP 请求使 PHP/DB 过载Cloudflare + Nginx 限速 + WAF
慢速攻击(Slowloris)保持大量慢连接,耗尽连接数Nginx 设置 client_body_timeout + 连接数限制
DNS 放大攻击利用 DNS 服务器放大攻击流量接入 Cloudflare 代理,隐藏真实 IP

四、开启 SYN Cookie 防 SYN Flood

# 临时开启(重启后失效)
sudo sysctl -w net.ipv4.tcp_syncookies=1

# 永久生效(写入配置文件)
echo "net.ipv4.tcp_syncookies = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 2048" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_synack_retries = 2" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

五、长效防御体系建设

方案一:Cloudflare 免费/Pro(推荐中小网站)

  • 免费版:可吸收大多数中小规模 DDoS,适合个人站和小型商业站
  • Pro($20/月):WAF、Bot 管理、DDoS 高级防护
  • Business($200/月):DDoS 无限防护,适合中型电商

方案二:高防服务器(适合长期被攻击的业务)

高防服务器在数据中心层面配置了专用的流量清洗设备,可以吸收 10Gbps~1Tbps 级别的攻击流量。适合:

  • 游戏服务器(游戏行业是 DDoS 攻击重灾区)
  • 金融/支付类网站
  • 曾被多次攻击的业务

方案三:真实 IP 隐藏(从根源预防)

从一开始就用 Cloudflare 代理隐藏真实 IP,攻击者无法知道你的服务器 IP,DDoS 攻击无从发起,是成本最低、效果最好的预防措施。


总结

DDoS 攻击的应对核心是:快速止血(黑洞路由)→ 流量清洗(Cloudflare)→ 根因防御(隐藏真实 IP)。三步缺一不可,建议在遭受攻击之前就完成 Cloudflare 接入,把攻击消弭于萌芽阶段。

后浪云香港服务器支持配合 Cloudflare 使用,自营 IP 资源,遭受攻击时可联系我们技术团队协助处置。如有高防需求,也欢迎通过 Telegram 或工单咨询专属方案。

THE END