SYN Flood Attack SYN 洪水攻击

针对 TCP 三次握手机制的 DoS 攻击

正常 TCP 握手:

  1. 客户端 → 服务器: SYN
  2. 服务器 → 客户端: SYN-ACK(分配资源,等回应)
  3. 客户端 → 服务器: ACK(握手完成)

SYN flood 利用步骤 2 的”等回应”:

  1. 攻击者发大量 SYN 包,源 IP 通常伪造
  2. 服务器每收一个 SYN 就分配资源等 ACK
  3. 攻击者永远不发 ACK(或源 IP 假的,ACK 回不来)
  4. 服务器的半开连接队列塞满,正常用户的 SYN 进不来

为什么有效:

  • 服务器资源有限(连接表大小固定)
  • 半开连接要等超时才释放(几十秒到几分钟)
  • 攻击成本低 —— 一秒钟发几千个 SYN 包很轻松

防御:

  • SYN Cookies —— Linux 内核功能,半开连接不分配资源,等 ACK 才真的建表
  • 缩短 SYN-ACK 超时
  • 有状态防火墙 识别异常 SYN 模式
  • DDoS 防护服务(Cloudflare 等)