读懂主机的 DDoS 防护

关于 DDoS 攻击以及主机商 DDoS 防护的一切。L3、L4、L7 三个层级,用大白话讲清楚。

概述

所谓 DDoS(分布式拒绝服务)攻击,就是用海量请求淹没您的服务器,让它无法访问。据 Cloudflare 统计,一年之内超过三成的站点至少遭遇过一次 DDoS 攻击。

主机商的 DDoS 防护会在这些攻击到达您的服务器之前把它们过滤掉。By-Hoster 在所有套餐中都含 L3/L4/L7 三层 DDoS 防护。

到 2026 年,DDoS 攻击已是家常便饭:论坛上几欧元就能买到「DDoS 即服务」套件,物联网设备组成的巨型僵尸网络(Mirai 及其变种)随处可见,攻击流量突破每秒一太比特。任何一个在线的站点或服务器都可能被盯上——或是误伤,或是有意为之。本指南讲清 DDoS 攻击的真实运作方式、常见类型、缓解手段,以及如何判断主机商宣称的防护是否靠谱。

DDoS 攻击的三个层级

  • L3(网络层):针对网络的攻击(ICMP 洪水、IP 分片)。流量极大(可达 Tbps)
  • L4(传输层):针对 TCP/UDP 的攻击(SYN 洪水、UDP 洪水)。会把连接表撑满
  • L7(应用层):针对 HTTP/HTTPS 的攻击(slowloris、HTTP 洪水)。模仿正常流量,更难过滤

2026 年常见的 DDoS 攻击类型

除了按 OSI 层级划分,DDoS 攻击还按手法分类。了解主要几种,就能明白一套靠谱的防护到底要拦住什么。

  • SYN 洪水:攻击者大量发送 TCP SYN 包却从不完成三次握手,把服务器的连接表撑满。缓解办法:SYN cookies、按 IP 限速。
  • UDP 洪水:向随机端口大量发送 UDP 包。服务器忙着回「端口不可达」,把带宽耗尽。缓解办法:UDP 限速、把闲置端口丢进黑洞。
  • DNS / NTP / Memcached 放大:攻击者用伪造的源 IP(也就是您的 IP)去查询 DNS、NTP 或 Memcached 服务器,对方回给您的数据比请求大 50 到 50000 倍。已观测到的纪录是通过 Memcached 打出 2.5 Tbps。
  • HTTP 洪水(L7):成千上万的机器人发出看似正常的 GET/POST 请求,但都打在开销大的地址上(搜索、购物车、登录)。缓解办法:JavaScript 挑战、验证码、机器人指纹识别。
  • Slowloris:开出成千上万条 HTTP 连接,几乎不发数据、极慢地吊着。不需要多大带宽就能耗尽 Apache/Nginx 的工作进程。缓解办法:把超时设得很短、上 mod_qos。
  • 勒索式 DDoS(RDoS):以「交 X 个比特币,否则我们打 Y Gbps」相要挟。2026 年已有多个团伙(REvil、Lapsus$)重拾这一套。

By-Hoster 的 DDoS 防护如何运作

我们在上游的清洗设施(容量达数 Tbps)会实时分析流量,在恶意数据包抵达您的服务器之前将其拦下。L3/L4 自动过滤,L7 应用层规则可自行定制。

  • 上游清洗(BGP scrubbing):发往我们 IP 段的流量,会先经过清洗节点,然后才进入我们位于新阿基坦大区的 DC-FR_NA(01) 机房。恶意数据包在源头就被剔除。
  • 自动检测:基线算法(先学习正常流量)+已知特征(各类 DDoS 套件)+启发式判断(每个源 IP 每秒的包数)。几秒之内即可启动清洗。
  • L3/L4 过滤:全自动处理,对客户透明。可拦下 SYN 洪水、UDP 洪水、反射放大(DNS、NTP、Memcached、SSDP)和滥用分片。
  • L7 清洗:应用层规则可配置(按地址限速、JS 挑战、按 user-agent 拦截、按地区拦截)。客户可在面板中调整,也可以找技术支持处理。
  • 服务不中断:正常访客毫无察觉(清洗期间最多多出 5 到 20 毫秒延迟)。您的网站照常可访问。

DDoS 攻击正在发生时该怎么办?

即便上游已有靠谱的防护,您这边做几件事也能更抗打。以下是发现攻击后(延迟异常、503 报错、监控告警)应逐项落实的清单:

  • 先确认是不是攻击:tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20 会列出访问量最大的 IP。如果看到 50 个以上的境外 IP,每个每秒都有几百次请求,那多半就是攻击。
  • 立刻联系主机商客服:靠谱的客服能在几分钟内启动加强清洗。请把被攻击的 IP、日志和起始时间一并给他们。
  • 打开「受攻击」模式:Cloudflare 有一个 JS Challenge 模式,会让所有访客先过一道浏览器验证。能拦下 99 % 的机器人,真人访问体验会略受影响。
  • 在应用层做限速:在 Nginx 中加入 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;,再在 location 里加 limit_req zone=one burst=20;。
  • 临时按地区封禁:如果攻击主要来自某个您本来就没有正常流量的国家,就用 iptables 加 GeoIP 把它挡掉,或者在 Cloudflare 里点几下搞定。
  • 留档以备后续:把日志、IP 和攻击特征都保存下来。一次 DDoS 之后往往还有后续尝试,这些日志能帮您把清洗规则调得更准。

关于 DDoS 防护的误区

  • 「我的站点太小,不会被攻击」:不对。随手发起的攻击是冲着整段 IP 去的,只要邻近的 IP 挨打,您就会被殃及。勒索式 DDoS 更是随机挑中小企业,索要一笔「不算多」的赎金。
  • 「免费版 Cloudflare 就够了」:Cloudflare 只保护经由其网络的 HTTP/HTTPS 流量。一旦有人拿到您的源站 IP(旧的 DNS 记录、SSL 证书、邮件头都可能泄露),就能绕过 Cloudflare 直接打。主机商这一层的防护仍然不可或缺。
  • 「DDoS 防护会拖慢我的网站」:平时(没有攻击时)做得好的防护带来的延迟不到 1 毫秒;清洗进行时也就 5 到 20 毫秒。跟一次没被拦下、直接让站点瘫掉的攻击相比,这点根本察觉不到。
  • 「在 VPS 上装个防火墙就能挡 DDoS」:对付流量型攻击(L3/L4)时这是错的。如果 100 Gbps 的攻击流量已经把您 1 Gbps 的链路灌满,防火墙毫无用处——流量早就到了您的网卡上。过滤必须放在上游。不过对付有针对性的 L7 攻击,防火墙依然有用。
  • 「上了 DDoS 防护,就不需要 fail2ban 了」:不对。DDoS 防护针对的是分布式的大流量,fail2ban 针对的是有针对性的暴力破解和扫描。两者互补,不能互相替代。

怎样判断一家主机商宣称的防护是否靠谱?

不少主机商只写「含 DDoS 防护」,别的一概不提。以下几条可以帮您分辨真防护和空口号:

  • 公开的清洗容量:靠谱的防护会写明容量(Gbps 还是 Tbps)。如果文档含糊其辞,就直接问客服:单个 IP 能扛多少,整体又能扛多少。
  • L3/L4/L7 三层:专业的防护三层全过滤。如果套餐只提「网络层过滤」而不提 L7,那您在 HTTP 洪水面前就是不设防的。
  • 常开还是触发式:「常开」更好,清洗即时生效;「触发式」意味着防护启动之前会有几秒到几分钟的不可用。
  • 包含还是收费选项:把 DDoS 防护另外收费是个负面信号。正经的主机商都会含在套餐里(相对于整套清洗设施,这点成本微不足道)。
  • 事后的沟通:让对方给您看一份典型的事后报告。靠谱的主机商在攻击之后会提供:日期、时长、流量、攻击类型、主要来源 IP。

常见问题

会。任何站点都可能中招,往往是无妄之灾(正好在被攻击的 IP 段里),也可能是有意针对(同行、心怀不满的旧用户)。正因如此,DDoS 防护应当是默认包含的,而不是一项收费选项。

我们的清洗容量达数 Tbps,远高于常见攻击的量级(1 至 50 Gbps)。即便是全球纪录级别的攻击(3 Tbps),也仍在我们的清洗能力之内。

非常少。地下论坛上的「DDoS 即服务」(booter、stresser)只要每月 5 到 50 欧元,随叫随到地提供 10 至 100 Gbps 的攻击流量。攻击之所以变得稀松平常,正是因为投入与破坏之间的比例过于有利于攻击者。

Cloudflare 在 L7 层面以及 HTTP/HTTPS 流量上非常出色,但前提是您的源站 IP 从不外泄。实际情况是,IP 常常会泄露(旧的 DNS 记录、以前的 SSL 证书、邮件头)。因此,主机商这一层的防护既是补充,也是必需——它能挡住绕开 Cloudflare、直接冲着 IP 来的攻击。

DoS(拒绝服务)来自单一来源(一个攻击者、一个 IP),用防火墙就能挡住。DDoS(分布式拒绝服务)来自成千上万个分散的来源(由被感染机器组成的僵尸网络),在服务器一侧根本挡不住,必须由主机商或专业服务在上游过滤。

会,如果它被入侵了。防护薄弱的服务器(弱口令、暴露在外的服务、没打补丁的软件包)可能被拉进僵尸网络,替人发动攻击。后果是:您的 IP 被列入黑名单,主机商也可能暂停您的账户。应对办法:SSH 只用密钥、装 fail2ban、开 UFW、打开自动更新、监控出站带宽。

黑洞是最后的手段:主机商通过 BGP 把您的 IP 宣告为「不可路由」,于是发往该地址的全部流量都被丢进虚空。您的网站会无法访问,但主机商的基础设施得以保全。黑洞通常持续 1 到 4 小时,等攻击平息。只有面对任何清洗都吸收不了的超大规模攻击时,才会动用这一招。