“我们这种小站,要不要花钱买高防?”这是站长最纠结的问题之一。买吧,一年几千上万,平时用不上;不买吧,万一被打一次,业务停摆的损失可能更大。本文用 8 个问答讲清 DDoS 防护各档位的成本量级、判断要不要买高防的标准,以及不花钱的自建缓解方案到底能做到什么程度。
Q:DDoS 防护市面上有哪些档位,分别什么价格量级?
从便宜到贵一共四档,能力差距是数量级的:
- 免费 CDN 基础防护:0 元,能挡零散扫描和几 G 的流量型攻击,靠分散攻击面生效,但不承诺防护能力;
- 带防护的 CDN 套餐:一年几百到几千元,含一定防护额度(常见 10G~30G),超出的部分可能限速或按流量计费;
- 高防 IP / 高防服务器:一年几千到几万,按”保底防护带宽”计费,常见 50G~300G 档;
- 云清洗 + 弹性防护:一年数万到数十万,能扛几百 G 到 T 级攻击,按需弹性叠加,适合金融、游戏类高频被攻打的目标。
价格差距的核心是防护带宽和是否清洗,不是厂商牌子。记住一点:宣传的”防护能力”大多是保底值,真正的弹性上限和超量计费规则才是签约前要问清的。
Q:小网站到底要不要买高防?判断标准是什么?
别凭感觉,按三个维度打分:
- 业务停摆损失:网站挂一小时损失多少?如果只是展示型官网、挂一天也就少几个咨询,那不值得买;如果是下单、付费、在线服务的业务,一小时损失上千上万,就值得;
- 被攻击概率:是否正在与人竞争(同行、被投诉过的内容、游戏/金融/跨境类业务)?被攻击过的网站再被攻击的概率明显更高;
- 攻击规模预期:如果只是被脚本小子拿工具扫了几 G 流量,CDN 套餐就够;如果对手是有组织的、能打出上百 G,那就必须上高防,自建和 CDN 都扛不住。
三个维度里有两个偏高,就建议买带防护的 CDN 套餐起步;三个都高,直接上高防 IP。最忌讳的是”平时不花钱、被打才临时找”,那会儿厂商开通高防也要时间,业务已经停摆了。
Q:完全不花钱,纯自建能扛多少?要做什么配置?
先说实话:自建只能缓解小流量攻击,因为你的出口带宽和硬件上限就在那里,几百 M 到几 G 是极限。但对于低强度攻击和连接型攻击,系统调优效果明显。
第一步,内核参数调优,缓解 SYN Flood 和连接耗尽:
# /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 # 开启 SYN Cookie,缓解 SYN Flood
net.ipv4.tcp_max_syn_backlog = 8192 # 加大半连接队列
net.ipv4.tcp_synack_retries = 2 # 减少 SYN-ACK 重试
net.ipv4.tcp_fin_timeout = 15 # 缩短 TIME_WAIT
net.ipv4.ip_conntrack_max = 1000000 # 加大连接跟踪表
net.core.somaxconn = 65535 # 加大全连接队列
net.ipv4.tcp_tw_reuse = 1 # 复用 TIME_WAIT 连接
sysctl -p # 生效
第二步,用 iptables 限制单 IP 连接数,这是最直接的止血手段:
# 单 IP 对 80 端口的并发连接超过 50 就丢弃
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j DROP
# 单 IP 每秒新建连接超过 30 就丢弃
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 30/s --limit-burst 60 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j DROP
# 持久化(CentOS)
iptables-save > /etc/sysconfig/iptables
第三步,Nginx 层限制并发,避免连接被单点占满:
http {
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_req_zone $binary_remote_addr zone=reqip:10m rate=30r/s;
server {
location / {
limit_conn perip 20;
limit_req zone=reqip burst=50 nodelay;
}
}
}
这三层做完,能有效缓解连接型攻击(SYN Flood、CC 的高并发)和小规模的流量型攻击,但对几十 G 的带宽型洪水基本无效——带宽是物理限制,配置改不出来。
Q:CDN 的免费/低价防护够用吗,和高防有什么区别?
够不够,看攻击类型和规模。CDN 的强项是隐藏源站 + 分散流量:域名解析到 CDN 节点,攻击流量被分摊到众多边缘节点,几 G 到几十 G 的流量型攻击通常能扛住,而且成本低、顺带加速。高防 IP 的强项是集中清洗:把所有流量(包括上百 G 的攻击流量)引流到高防机房,清洗后再回源,防护能力上限高得多,但平时没有加速效果,成本也贵。
小站的最优解往往是”CDN 起步 + 被超量攻击时临时切高防”:日常靠 CDN 挡住杂散攻击,一旦发现流量超过 CDN 承载能力,立刻把域名解析切到高防 IP 应急。前提是源站 IP 必须藏住,否则攻击者绕过 CDN 直打源站,前面所有投入都白费。
Q:高防 IP 按什么计费?怎么避免被坑?
高防主要看三个计费项:保底防护带宽(必买,如 50G/年)、弹性防护带宽(超出保底后的临时上限,按次或按天计费)、回源流量/转发流量(按 GB 计费)。避坑要点:
- 问清被攻击时的计费规则:攻击流量算不算你的转发流量?很多纠纷出在这里;
- 确认弹性上限:保底 50G 不等于只能扛 50G,要问弹性到多少、超了会怎样(通常是被黑洞);
- 明确黑洞策略:超出防护上限后,是高防机房把你拉黑(业务全停),还是只丢攻击流量;
- 核实SLA 与清洗能力:别只看宣传页的 T 级,要求提供可验证的防护案例和清洗时延。
一句话:签约前把”攻击时怎么算钱、扛不住会怎样”两个问题问死,能避免后期绝大多数扯皮。
Q:被超大流量攻击,运营商能帮忙吗?
可以申请,但只能算辅助手段。当攻击流量超过机房出口能力时,机房侧通常会先做黑洞封堵(把被攻击 IP 完全丢弃)来保护整体网络,业务随之中断。更规范的做法是向运营商申请 IP 牵引/流量清洗:把被攻击 IP 的流量牵引到运营商或第三方清洗中心,清洗后回注。流程上需要联系你的 IDC 或运营商客户经理提交申请,处理时效从几十分钟到几小时不等,不适合作为第一响应手段。
国内主流做法仍然是”机房牵引到高防清洗”,这也是为什么”提前接入高防”比”被打再申请”更靠谱——黑名单可以等,业务不能等。
Q:零成本应急手段有哪些?
被打的当下,如果没提前买防护,可以按顺序做这几件事:
- 换 IP:如果是打 IP 的攻击,把源站换一个新 IP 并立刻隐藏,同时清掉历史解析记录。这是最快见效的应急手段;
- 限制连接 + 拉黑:用上面的 iptables connlimit 和限速规则挡住连接型攻击;
- 静态化降级:把首页、列表页切到静态缓存或直接挂一个静态说明页,减少数据库压力,让网站在攻击下还能打开;
- DNS 轮询/多线切换:有多台服务器或备用节点时,把被攻击的解析切到干净节点;
- 关掉非必要端口和服务:收缩暴露面,避免攻击者从其他端口找突破口。
这些手段能把”完全打不开”变成”能打开但慢”,争取到采购高防的时间窗口。
Q:还有什么补充建议?
给一套实用的预算思路:小站先花小钱——买一个带防护额度的 CDN 套餐(一年几百),把源站 IP 藏住,同时把系统调优和 iptables 限速配置做完,成本几乎为零;业务有营收后再升级——当网站一小时停摆的损失超过高防年费,或者已经明显被盯上,再上高防 IP;高价值业务直接上高防——别用业务收入去赌攻击概率。最后提醒一句:DDoS 防护是分层的,CDN 管隐藏和分散,WAF 管 CC 和应用层,高防管大流量清洗,自建调优管连接型小攻击,四者叠加才是完整方案,单靠任何一层都有明显盲区。