DDoS防护:小商家能扛住吗
小够讲 DDoS 防护:攻击有哪几种、小商家和大厂云的防护能力差多少、自己能做什么、被打了怎么应急。跟着做就行,够用不折腾。
我是小够,只推够用的 VPS。
“我的站被 DDoS 了,商家直接把我机器 null 了(封 IP),怎么办?"——这是 VPS 玩家最慌的场景之一,也是最无助的:攻击不停,网站就一直挂。DDoS 攻击不讲武德:不偷数据、不讲技术,就是拿流量砸你,砸到你的带宽撑不住、商家把你掐了为止。这篇讲清楚 DDoS 有哪几种、小商家到底能不能扛、你自己能做什么,以及被打之后的第一反应该是什么。
DDoS 是什么:先认识敌人
DDoS(分布式拒绝服务攻击),说白了就是"用人海战术把你挤垮”。攻击者控制成千上万台肉鸡,同时向你的服务器发请求,你的带宽、CPU 被占满,正常用户就进不来了。常见类型:
流量型攻击(拼带宽):
- UDP Flood / 放大攻击:利用 NTP、DNS、Memcached 这些服务的"放大效应",1Mbps 的攻击请求能放大几十倍打到你脸上。几十 Gbps 的流量,个人 VPS 的 1Gbps 端口瞬间被淹。
- SYN Flood:伪造大量 TCP 半连接,占满服务器的连接表。带宽没满,但新连接进不来,网站照样挂。
应用层攻击(拼资源):
- CC 攻击 / HTTP Flood:模拟正常用户疯狂刷页面、刷接口。带宽占用不大,但 CPU、数据库被拖死。最恶心的是它看起来像正常流量,难分辨。
- 慢速攻击(Slowloris):慢慢发、不发完,占着连接不放,连接池被占满就挂。
混合攻击:几种一起来,这是现在的主流。攻击成本越来越低,几十美元就能买到 Gbps 级的攻击服务——这就是为什么个人小站也会被打:攻击者不挑食,有的是"顺手"和"误伤"。
小商家能扛住吗:实话实说
直接给结论:绝大多数小商家扛不住,扛住了也不想扛。
VPS 商家的带宽是花钱买的,你被打 50Gbps,烧的是商家的带宽钱。所以商家的标准操作是:null route(空路由)你的 IP,也就是把你的 IP 在上游封掉,攻击流量进不来,你的正常流量也进不来——机器还在,但对外失联,一般几小时到 24 小时解封。便宜 VPS 商家(RackNerd、CloudCone 这类)基本都是这个策略,别指望它们替你扛。
大厂云好一点,但也有限:Vultr、DigitalOcean、Linode 有基础的 DDoS 缓解(AWS 叫 Shield Standard 那种级别),能过滤掉一部分明显的攻击流量,但大流量还是扛不住,一样会限流 / 封 IP。它们的优势是网络大、调度能力强,小规模攻击能消化掉。
真正能扛的:高防 IP、高防 CDN(Cloudflare、国内的各类高防),靠的是 Tbps 级的清洗中心 + 流量调度。但价格是另一个世界:高防 IP 按 G 计费,个人小站基本用不起。
所以正确的预期是:VPS 商家不负责帮你扛 DDoS,这是你的事。选商家的时候,防护能力是加分项,不是必选项——指望 10 美元/年的小鸡扛住 DDoS,本身就是不切实际的。把这笔账算清楚,防护方案才做得实在。
自己能做的:四层防护
第一层:别暴露源站 IP(最重要)
攻击者打的是 IP,不是域名。你的源站 IP 一旦泄露,套多少层都没用。做法:
- 网站套 Cloudflare(免费版就有基础防护),DNS 只暴露 CF 的 IP。
- 源站防火墙只允许 Cloudflare 的 IP 段访问 80/443,其他全禁。
- 邮件服务别和网站放同一台机器(邮件头会泄露源站 IP)。
- 历史 DNS 记录查一下(SecurityTrails 这类),如果源站 IP 曾经暴露过,换 IP。
第二层:Cloudflare 免费版先套上
Cloudflare 免费版能挡掉大部分小规模攻击和 CC,而且是真正的 $0 成本,注册个账号、改个 NS 就行,10 分钟配好:
- DNS 代理(小黄云)打开,隐藏源站 IP。
- 防火墙规则:限速(Rate Limiting)、 chặn 可疑国家 / IP 段、开" Under Attack Mode"(被打时一键开,访客过 5 秒盾)。
- 缓存静态资源,减少源站压力。
免费版不够,Pro 版($20/月)有 WAF 规则,更 fine 的控制。但记住:CF 免费版防的是"小打小闹",真被大流量盯上,还是要上付费高防。
第三层:服务器本地加固
- Nginx / Apache 限流:
limit_req限制单 IP 请求频率,CC 攻击的第一道防线。 - 连接数限制:单个 IP 最大并发连接数,超了直接拒。
- SYN Cookies 开启:
/proc/sys/net/ipv4/tcp_syncookies设为 1,防 SYN Flood 的基础操作。 - fail2ban:虽然主要是防爆破,但配上合适的规则也能挡一波 CC。
这些是"被打时少死一点"的措施,别指望靠它们扛住大流量。
第四层:架构层面
- 动静分离:静态资源扔对象存储 + CDN,源站只跑动态请求。攻击者打静态资源,CDN 替你扛了,源站压力小很多。
- 多地备份:被打到 null 了,换个 IP / 换台机器,DNS 一改,半小时恢复。参考本站的换 VPS 不掉线:迁移清单。
- 监控告警:Uptime Kuma 监控 + 流量告警,被打第一时间知道,而不是用户告诉你。看本站的监控告警自建。
被打了怎么办:应急流程
- 确认是被打:流量监控里入站暴涨、网站打不开、
netstat看到大量陌生 IP 建连。先确认,别把程序 bug 当攻击。 - 开 Cloudflare Under Attack Mode:5 秒盾先顶上,过滤掉大部分肉鸡。
- 联系商家:开工单说明被攻击,问能不能换 IP(很多商家支持免费 / 付费换 IP)。如果商家直接 null 了你的 IP,问解封时间。
- 换 IP + 藏好:换到新 IP 后,重复第一层的隐藏操作,别再泄露。
- 评估损失:停机多久、丢了多少数据(一般不会丢数据,DDoS 不偷数据),要不要通知用户。
- 事后复盘:源站 IP 怎么泄露的?防护哪一层没做到位?补上。
千万别做的事:跟攻击者谈判 / 交"保护费"。交了第一次,就有第二次,而且你的信息会被卖到黑市,换来更多攻击。
成本:防护要花多少钱
| 方案 | 成本 | 防护能力 |
|---|---|---|
| Cloudflare 免费版 | $0 | 小规模攻击、基础 CC |
| Cloudflare Pro | $20/月 | WAF、中等 CC |
| 高防 IP / 高防 CDN | $100+/月起 | 大流量攻击 |
| 换商家 / 换 IP | 几美元 | 应急止损 |
个人小站的够用配置:Cloudflare 免费版 + 隐藏源站 IP + 本地限流,$0 成本,能挡掉 95% 的"顺手"攻击。真被大流量盯上(比如得罪人了),要么上高防,要么认栽换 IP——这是成本和现实的平衡。
CC 攻击专项:最磨人的一种
CC(Challenge Collapsar)值得单拎出来说,因为它是个人站长最常遇到的,也是最磨人的。流量型攻击动静大,商家和 CF 都能识别;CC 模拟正常用户请求,难分辨、难清洗。
CC 的典型特征:带宽占用不大(可能只有几 Mbps),但网站巨慢 / 打不开;日志里看到同一个 / 几个 URL 被高频请求;请求头看起来正常,IP 分散(代理池 / 肉鸡)。
对付 CC 的实战方法(按见效排序):
- Cloudflare Under Attack Mode:一键开 5 秒盾,人机验证挡掉 90% 的肉鸡。对正常用户的影响是首次访问多 5 秒,可以接受。
- Nginx 限流:
limit_req_zone按 IP 限速,比如单 IP 每秒 10 个请求,超了返回 503。正常用户不受影响,刷接口的直接被限。 - 封禁特征:看 access log,CC 攻击常有固定特征(某个 User-Agent、某个 URL 参数、某个地区 IP 段),Nginx / CF 防火墙规则按特征封。
- 验证码前置:登录、注册、搜索这些接口,被打时临时加上验证码 / CF Turnstile。牺牲一点体验,换服务不挂。
- 降级:实在扛不住,临时关掉搜索、评论等重型功能,保首页和核心页面。这是"断臂求生",但比全站挂了强。
CC 和爬虫的区别:正常爬虫(搜索引擎)有固定 UA、遵守 robots.txt、频率克制;恶意 CC 伪装 UA、频率离谱。别把百度蜘蛛封了——看 IP 段,搜索引擎有公开的 IP 范围,加白名单。
不同业务的防护策略
个人博客:Cloudflare 免费版 + 隐藏源站 IP,够了。博客被大流量盯上的概率极低,$0 方案覆盖 99% 的情况。精力放内容上,别在防护上过度投入。
企业官网 / 展示站:CF 免费版 + 本地限流 + 监控告警。官网挂了影响形象,但一般没人专门打。重点是"被打了 5 分钟内知道",Uptime Kuma 告警配好。
电商 / 在线业务:CF Pro($20/月)起步,WAF 规则配上,支付接口单独限流。业务有收入,防护预算按收入的 1-3% 算。有条件的上高防 IP, downtime 的损失远大于高防的费用。参考电商场景的选购思路,机器本身也要选稳的。
API 服务:限流是核心。按 key / IP 限流,超了返回 429。架构上做降级:核心接口保,边缘接口可降级。API 被打,损失的是调用方信任,防护优先级最高。
游戏服:UDP 游戏协议最难防(CF 免费版不代理 UDP)。方案:游戏流量走高防 IP(按量计费),网站部分走 CF。开服前就把防护配好,别等被打了再弄——游戏服是 DDoS 重灾区,同行 / 玩家都可能打你。
高防产品选购避坑
真到要花钱上高防的时候,坑也不少:
坑一:“无限防”。看到"无限防御"“T级防护"配 10 美元/月的价格,直接 pass。清洗带宽是硬成本,T 级清洗的成本不可能 10 美元/月。正规高防都是按 G 计费、明码标价。
坑二:防护值虚标。“500G 防护"听着唬人,问清楚是"保底防护"还是"峰值防护”,超了之后怎么计费。有些是 500G 以内免费、超了按量收天价,不问清楚账单吓死人。
坑三:只防 TCP 不防 UDP。游戏、语音这类 UDP 业务,买之前确认高防支持 UDP 防护,价格和策略都不一样。
坑四:没试用期。高防效果好不好,试一次就知道。敢给试用的,一般有底气;上来就让你年付的,多半心里有鬼。
小够的建议:个人用户先把免费的做到极致(隐藏 IP + CF + 限流),真不够了,按"业务收入"倒推防护预算。防护是成本,不是面子,别为"万一被打"过度投入,也别等"已经被打"才想起配。
常见误区
误区一:“我小站没人知道,不会被打”。攻击很多是随机的:扫描全网 IP 段,看到 80 端口开着就打一波;或者是打你的"邻居”,你被误伤。没被打过不等于不会被打。
误区二:“换个高防商家就万事大吉”。号称"无限防"的小商家,99% 是噱头。真有 Tbps 清洗能力的,价格不会便宜。看到"10 美元/月无限防",直接 pass。
误区三:“Cloudflare 免费版能防一切”。免费版防小打小闹可以,大流量 + 精准 CC 还是顶不住。而且源站 IP 泄露了,CF 套了也白套。
误区四:“被打了是商家的责任”。VPS 都是非托管的,DDoS 防护不在商家义务内。商家 null 你的 IP 是在保护整台母机和其他用户,别骂商家,赶紧自救。
一句话总结
小商家扛不住 DDoS,大厂云也只能扛小的;防护靠自己:隐藏源站 IP + Cloudflare + 本地限流,$0 挡掉 95% 的攻击;被打了别慌,按应急流程走:开盾、换 IP、复盘。记住,DDoS 防的是"被打垮",备份防的是"数据丢",两个都要做,缺一不可。
常见问题
Q:怎么知道自己被 DDoS 了,还是程序 bug?
A:看流量监控:入站流量突然暴涨几十倍,基本是被打;流量正常但网站慢,多半是程序 / 数据库问题。再看 netstat:大量陌生 IP 建连,是攻击;连接数正常,是程序问题。
Q:商家把我 IP null 了,多久解封?
A:一般几小时到 24 小时,看商家政策。工单问客服最准。急着恢复的,问能不能换 IP(很多商家支持),换 IP 比等解封快。
Q:Cloudflare 免费版够用吗?
A:对个人小站够用。它能隐藏源站 IP、挡小规模攻击和基础 CC。记住免费版的定位是" baseline 防护",不是"高防"。被大流量盯上,还是要升级或换方案。
Q:源站 IP 泄露了怎么办?
A:换 IP,然后重新做隐藏:DNS 只走 CF 代理、防火墙只放行 CF IP 段、邮件服务分离。换 IP 的成本很低(有的商家免费换),别舍不得。
Q:高防 IP 值得买吗?
A:看业务价值。月入过万的业务,花 $100+/月买高防是保险;个人博客,不值。先把免费的做到位(隐藏 IP + CF + 限流),真不够了再考虑花钱。
Q:被打了,数据会丢吗?
A:一般不会。DDoS 是"挤垮"你,不是"偷"你,数据本身不受影响。但有一种情况要注意:攻击期间如果商家整台母机出问题,或者你慌乱中误操作,数据可能受影响。所以备份还是要做,看本站的 VPS 备份 321 原则。
Q:怎么预防"误伤"(邻居被打连累我)?
A:选母机规模大、调度好的商家(大厂云在这方面有优势),被打的是邻居 IP,null 的也是邻居的 IP,一般连累不到你。但整台母机被超大流量淹了,谁都跑不掉——这种概率极低,真遇上了,换台机器是最快的解法。