在 TCP 三次握手过程中,当攻击者伪造海量源 IP 发送 SYN 包时,服务器半连接队列(SYN Queue)会迅速打满导致拒绝服务。开启 SYN Cookie 后,服务端不在内存中分配 TCB,而是将握手状态编码为初始序列号(ISN)返回。
一、Linux 内核启用 SYN Cookie 与参数调优
ini
# /etc/sysctl.conf
# 开启 SYN Cookies
net.ipv4.tcp_syncookies = 1
# 调整半连接队列上限
net.ipv4.tcp_max_syn_backlog = 8192
# 减少丢弃重试次数以快速释放挂起资源
net.ipv4.tcp_synack_retries = 2