服务器 DDoS 防御配置如何做

作者:袖梨 2026-08-07

DDoS防御需分层设防:一、隐藏源站IP,用CDN+WAF+私有网络通信;二、系统层加固,启用SYN Cookie、调高连接队列、禁用ICMP响应;三、轻量自动封禁,配置DDoS Deflate;四、应用层限速,Nginx设置请求与连接限制。

服务器DDoS防御不能只靠一个工具或一条命令,得从网络层、系统层、应用层分层设防。核心思路是:藏好源站、收窄入口、限制异常、及时清洗。

一、先隐藏真实IP,切断攻击源头

攻击者找不到你的服务器真实IP,90%的流量型攻击就失效了。

  1. 用CDN(如Cloudflare、腾讯云CDN、阿里云DCDN)做第一道网关,所有用户请求先过CDN节点,再回源。记得在CDN后台开启“Web应用防火墙(WAF)”和“DDoS基础防护”
  2. 源站服务器必须关闭公网IP,只保留内网地址。通过私有网络(VPC)与CDN或负载均衡器通信
  3. 如果必须暴露管理端口(如SSH),改用非标准端口(如22222),并用安全组/IP白名单严格限制来源IP段,绝不要开放0.0.0.0/0

二、系统层加固:降低被拖垮的风险

即使有攻击进来,也要让服务器扛得住、不卡死。

  1. 启用SYN Cookie:确保/etc/sysctl.conf中包含net.ipv4.tcp_syncookies = 1,然后执行sysctl -p生效,可有效缓解SYN Flood
  2. 调高连接队列上限:net.core.somaxconn = 65535net.ipv4.tcp_max_syn_backlog = 65535
  3. 缩短连接超时:net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_tw_reuse = 1
  4. 禁用ICMP入站响应(防Ping Flood):iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

三、轻量级自动封禁:用DDoS Deflate守门

适合中小业务,在攻击初起时快速拉黑高频恶意IP。

  1. 安装后配置/etc/ddos/ddos.conf关键项:

    NO_OF_CONNECTIONS=120(Web服务建议100–150,避免误杀爬虫)

    DAEMON_FREQ=5(每5秒检查一次,平衡灵敏度与负载)

    BAN_PERIOD=1800(封禁30分钟,足够应对短时扫荡)

    FIREWALL=iptables(主流Linux默认适配)

    ONLY_INCOMING=true(只管进来的连接,防止误封出站IP)

  2. 启用端口级控制(可选):设ENABLE_PORTS=true,再配置PORT_CONNECTIONS="80:50,443:50",对HTTP/HTTPS单独限流
  3. 加白名单防误伤:IGNORE_IP_LIST="192.168.1.100,203.208.60.0/24"(填运维IP或可信网段)

四、应用层兜底:用Nginx限速防CC攻击

HTTP Flood和慢速攻击(如Slowloris)必须在Web服务器层面拦截。

  1. http块定义限速区:

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

    limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

  2. serverlocation中启用:

    limit_req zone=req_limit burst=20 nodelay;

    limit_conn conn_limit 40;

  3. 增强抗慢速攻击能力:

    client_header_timeout 15s;

    client_body_timeout 15s;

    keepalive_timeout 30s;

相关文章

精彩推荐