上周五到这周三joomlachina.cn所在的服务器一直在遭遇DDos攻击,网站无法提供任何服务。阿里云发邮件通知攻击流量已超过DDoS基础防护的黑洞阈值,服务器的所有公网访问已被屏蔽。本文简单的记录一下事件的经过以及解决方案。
问题现象
在周五也就是2025-05-09日晚大概22点的时候发现网站打不开,使用阿里云控制台可以登陆系统,我初步判断是服务器卡住了,或者哪个程序长时间运行出现了内存泄漏,一般就重启一下服务器即可正常。但这次执行了重启命令,网站依然无法访问。大概5分钟后收到了阿里云发来的通知邮件,
邮件主题为 阿里云盾清洗开始通知。
您的IP:xxxxxx 实例名称:Joomla中文网内地服务器 公网流量超过清洗阈值(bps或pps),为了保障您服务器的稳定运行,已启动限流保护措施。详情请登录流量安全控制台,事件中心查看。
邮件主题为 阿里云盾黑洞开始通知
您的IP:xxxxxxx 实例名称:Joomla中文网内地服务器 受到攻击,攻击流量已超过DDoS基础防护的黑洞阈值,服务器的所有公网访问已被屏蔽,屏蔽时长25分钟,屏蔽时间内未再次被攻击将自动解除否则会延期解除。详情请登录流量安全控制台,事件中心查看。黑洞状态无法人工解除,请耐心等待系统自动解封。
大概的意思是网站正在遭遇DDos攻击,阿里云将我的服务器的公网访问给切断了。我看了一下,只是25分钟,这个时间不算太长,就没有处理,在晚上23点的时候我看了一下,网站是可以正常打开的。但到了第二天早上,又收到了通知邮件,说是要屏蔽300分钟。这个时候就有群里的朋友发私信给我说joomlachina.cn打不开了。我给阿里云提交了工单,他们反馈这个没有办法解决,需要购买他们的防范DDos攻击的产品,大概看了一下价格,一年要10000多。没有办法,这个费用有点高,只能等待了。在随后的时间有接连收到了通知邮件,屏蔽的时间也越来越长,已经达到了2500分钟(大概2天)。必须要处理这个问题了。
DDos攻击
之前也简单的了解过DDos攻击,大概的意思就是突然又非常多的IP访问我们站点,导致服务器的带宽沾满,无法正常提供服务。这种攻击理论上对于我们写代码的程序员来说没有办法防御了,和代码层面关系不大,他并不需要你网站存在漏洞。
尝试的解决方法
对于普通的站点来说最简单的方法就是换一台服务器(换IP)。这是最省钱和最直接的方法。这是我事后总结的,在真正的操作上面,当时我的第一选择并不是更换服务器。
由于阿里云的DDos产品实在太贵,普通站点承受不起,我就搜索有没有其他的解决方案。最终还真的发现了可以使用cloudflare提供的免费服务来解决问题。
Cloudflare
Cloudflare 是一个全球性的云平台,提供多种网络服务以增强企业的安全性和性能。Cloudflare 可以提供一个域名的免费 DDoS 保护功能。
使用这个很简单,搜索一下cloudflare的官网,注册一个账号,然后在你的域名注册商哪里设置域名的DNS为cloudflare即可。
设置完成后,可以在你的网站上出现了机器人校验的页面。另外的一个效果就是可以隐藏你的服务器的真实IP.通过ping命令ping域名发现我域名的IP地址已经不是服务器的真实IP地址了,而是一些随机的IP地址。
出现的问题
在设置完Cloudflare后,我发现网站依然不能访问。这是因为阿里云将我的服务器的公网访问给屏蔽了。正确的做法是在遭遇DDos攻击前设置Cloudflare,这样攻击者就不能得到服务器的真实IP.很明显攻击者已经知道了我的服务器的真实IP.
由于阿里云将公网屏蔽时长达到了3天,不能等他自动解除,当下之后重购一台一样配置的服务器,然后将系统迁移到新的服务器。只有这样才能最快恢复服务。但这次我发现事情并不是那么简单。当我将域名解析到新的服务器上之后,发现迟迟不能生效。因为cloudflare会缓存,可能需要超过24小时我的解析才能生效。没有办法值得将cloudflare上的配置删除掉。即使这样cloudflare依然会有半天的缓存。
最终通过更换服务器才然joomlachina.cn重新恢复服务.
意想不到的后果
网站正常服务后,有朋友反馈说微信分享不能使用了,对于这个问题,我排查了一个小时后才恍然大悟,新的服务器的IP没有加入到微信公众号的IP白名单。
一些感想
使用云服务器迁移系统还是很方便的,做一个快照然后购买一个一样的配置的服务器就可以快速的恢复服务了。
阿里云服务器不允许更换IP.腾讯云允许更换一次IP.
评论 (0)