游戏上线两小时,服务器瘫痪,被迫关服一天。损失了几千个预约玩家,TapTap评分从9.2掉到7.8。
那天发生了什么
我们团队做了一款轻竞技手游,前后开发了14个月。TapTap预约破五万的时候,所有人都挺兴奋的,觉得总算熬出头了。
开服当天上午10点,服务器准时开放。前半小时一切正常,玩家陆续涌入,在线人数稳步爬升。
10点45分左右,监控面板上的入站流量开始异常。从正常的50Mbps左右,在几分钟内飙到了8Gbps,还在继续涨。
我第一反应是“是不是哪里配置错了导致流量放大”,赶紧登录服务器排查。但CPU和内存占用还算正常,不像程序bug。
10点52分,流量突破15Gbps。服务器开始出现大量TCP连接超时,玩家开始掉线。
10点58分,流量峰值到了接近80Gbps。服务器彻底失去响应,SSH都连不上了。
11点05分,机房打电话过来说“你们的IP被黑洞了”,要等30分钟自动解封。
当时整个人是懵的。准备了14个月的东西,上线不到两小时就没了。
事后复盘:到底怎么回事
冷静下来之后,我开始翻日志、查监控、问机房要攻击报告。
攻击类型:主要是UDP Flood,夹杂少量SYN Flood。机房给的报告显示攻击峰值约87Gbps,持续了大约20分钟[reference:0]。
攻击来源:机房说源IP非常分散,来自全球各地,典型的僵尸网络特征[reference:1]。
为什么免费防护没用:我们用的是云服务商自带的免费基础防护,号称能扛5Gbps。87Gbps的攻击打过来,5Gbps的防护相当于不存在[reference:2]。
为什么黑洞那么快:机房的黑洞触发阈值是30Gbps。攻击到了80多G,远超阈值,系统自动封禁了我们的IP[reference:3]。
我犯了哪些错
错1:低估了被攻击的概率
之前总觉得“我们就是个独立游戏,谁有闲心来打我们”。后来才知道,游戏行业DDoS攻击占比高达32%,是所有行业里最高的[reference:4]。攻击者根本不在乎你是大厂还是小团队,只看你好不好打。
错2:没提前准备应急预案
被打的那一刻,我完全不知道该怎么办。临时去查“怎么防DDoS”、临时去问朋友、临时去找方案。攻击持续了20分钟,我浪费了起码15分钟在慌乱和搜索上。
如果有应急预案,至少能缩短一半的恢复时间。
错3:把“免费”当“够用”
5Gbps的免费防护,在当下T级攻击都屡见不鲜的环境里[reference:5],真的和没有一样。我天真地以为“云服务商提供的防护应该够用”,结果发现免费的东西就是最贵的——它让你误以为自己有防护,实际上漏洞百出。
错4:源站IP没有隐藏
我们的服务器直接暴露了公网IP。攻击者只需要扫一下端口就能找到目标,连绕过高防的功夫都省了。
后来怎么解决的
关服当天下午,我通过朋友介绍紧急接了一家云防护(名字就不说了,免得像广告)。
接入过程很简单:
- 把域名CNAME解析到他们给的地址
- 上传SSL证书
- 在源服务器加回源IP白名单
全程有人远程指导,大概30分钟配完。第二天重新开服,后续又被打过几次,但都被挡在外面了。
价格方面,100Gbps防护套餐月付不到3000,比大厂高防IP动辄大几千上万便宜不少[reference:6]。而且CC防护包含在套餐里,不需要额外付费[reference:7]。
给独立开发者的几点建议
1. 开服前先把防护配好
不要等被打才去临时找方案。从被打到恢复,中间的时间足够让你损失大量玩家。TapTap的开发者文档也建议,在开服或上榜等可能被攻击的时间点前提前接入防护[reference:8]。
2. 源站IP一定要隐藏
只要你的真实IP暴露在外面,攻击者随时可以绕过防护直接打你。云防护的核心价值之一就是通过CNAME解析隐藏源站IP。
3. 问清楚黑洞阈值
很多高防服务有“黑洞”机制——攻击超过一定阈值就直接把你的IP下线。签合同前一定要问:超过套餐带宽后是弹性扩容还是直接黑洞?黑洞了怎么解封?多久能恢复?
4. 别迷信“免费”
免费防护在今天的攻击规模面前基本等于没有。花点钱买安心,比你被攻击后损失的用户和口碑划算得多。
最后
那次关服之后,我们花了两周时间才把玩家信任慢慢找回来。TapTap评分到现在还没回到被打之前的水平。
如果你也在做独立游戏,希望我的经历能让你少走点弯路。
有什么问题欢迎留言交流。
3087

被折叠的 条评论
为什么被折叠?



