启用syn cookie是防御syn flood最根本手段,需配合调大tcp_max_syn_backlog、降低tcp_synack_retries、iptables限速及云防火墙联动,形成内核级防护+参数调优+流量过滤的多层协同体系。

服务器防火墙对 SYN Flood 的防御不是靠一条规则“写完就了事”,而是需要多层协同、参数配合的系统性配置。核心思路是:不让虚假 SYN 包轻易触发资源分配,同时快速识别并丢弃无效连接请求。
启用 SYN Cookie(操作系统内核级防护)
这是最根本、最有效的防御手段,无需依赖外部设备,直接在 Linux 内核中生效:
- 临时启用:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies - 永久生效:编辑
/etc/sysctl.conf,添加或修改这一行:net.ipv4.tcp_syncookies = 1 - 执行
sysctl -p使配置立即加载
启用后,服务器收到 SYN 不再立即分配 TCB(连接控制块),而是用加密 Cookie 构造 SYN-ACK 序列号;只有客户端真正返回 ACK(且携带正确确认号),服务器才验证 Cookie 并建立连接——伪造 IP 或不响应的攻击包完全不消耗内存。
调整 TCP 半连接队列与超时参数
即使启用了 SYN Cookie,合理调优仍能提升抗压能力:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 增大半连接队列上限(默认常为 128):
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog - 缩短 SYN-ACK 重试次数(默认 5 次,超时约 3 分钟):
echo 2 > /proc/sys/net/ipv4/tcp_synack_retries(2 次重试,总超时约 6 秒) - 降低半连接状态存活时间,加快释放无效连接
iptables 基础限速与过滤(补充防护)
适用于轻量级场景或作为辅助手段,注意不能替代 SYN Cookie:
- 限制单 IP 新建连接速率(每秒最多 10 个 SYN):
iptables -A INPUT -p tcp --syn -m limit --limit 10/sec --limit-burst 20 -j ACCEPT - 超出速率即丢弃:
iptables -A INPUT -p tcp --syn -j DROP - 封禁已确认的恶意源 IP:
iptables -A INPUT -s 192.0.2.100 -j DROP
该策略对固定源 IP 攻击有效,但对 IP 随机 spoofing 攻击效果有限,需配合日志监控(如 netstat -antp | grep SYN_RECV | wc -l)及时发现异常。
硬件/云防火墙联动(企业级部署)
当攻击流量达 Gbps 级别时,需前置设备分担压力:
- 开启防火墙的 SYN 网关(SYN Proxy)模式:代替服务器完成三次握手验证,只将合法连接转发
- 启用“半连接数检测”和“新建连接速率阈值告警”,超过阈值自动触发清洗或限流
- 接入高防 IP 或云 WAF,由边缘节点过滤 SYN Flood 流量,原始服务器只收清洗后流量
这类配置通常在厂商管理界面完成(如 H3C、华为 USG、阿里云 DDoS 高防),不涉及命令行编写,但需明确开启对应策略模块。










