各位现在访问我的博客,应该都能看到公告里写着:因为服务器被入侵,我重新迁移了整个博客,导致原本的评论、访问量等数据全部丢失。
但服务器究竟是怎么被入侵的,我之前一直没有细说,所以干脆写篇文章记录一下这次经历。
也顺便给各位朋友提个醒:千万不要放养自己的服务器。
各种组件、中间件能更新就尽量及时更新,尤其是对外暴露的服务;除此之外,也一定要养成定期备份的习惯。
毕竟血与泪的教训已经摆在这里了(
一切的开始
事情的起因其实非常突然。
一天上午,我正在正常上班,阿里云突然给我发来了一条消息。
我进后台一看,好家伙——
我的博客因为“发布、传播色情低俗类违法内容”被禁止访问了。

我寻思不对啊。
我可是纯纯的良民,怎么可能在自己的博客上搞这种东西?
结果再一看阿里云提供的快照:

整个人当场就麻了。
这还哪是博客啊,这不直接成澳门新葡京了。
然后我赶紧访问了一下自己的博客,结果发现博客现在显示的内容又完全正常。
这时候我脑子里突然冒出来一件事:
年初的时候,Nginx 好像出过一个 CVE-2026-42945。
当时看到之后我没怎么在意,也一直没有处理。
坏了。
我的服务器不会早就已经被厚乳了罢(悲
两年没更新的服务器,多少有点作死
我并不是网络安全方面的专业人士,所以一开始其实也不知道应该从哪里查起。
不过从我自己的配置来看,SSH 本身没有开放密码登录,1Panel 也配置了安全入口和强密码,理论上来说,直接靠暴力破解进去的可能性应该没有那么大。
想来想去,我越来越怀疑问题出在服务器里那些两年没怎么更新过的组件和中间件上。
没错。
这台服务器差不多真的被我放养了两年。
平时只要博客还能正常访问,我基本就懒得动它。
现在回头看,这种行为多少有点作死。
开始翻日志
既然怀疑到了 Nginx,我就先把 OpenResty(Nginx 的衍生版本)的日志导了出来,然后丢给 Claude Code 帮我分析了一下。




至于 AI 分析得究竟准不准确,我自己其实也没办法完全判断。
但看到这些东西之后,我至少确认了一件事:
这个服务器环境已经不值得继续信任了。
既然已经无法确认到底有哪些地方被动过,与其继续在原来的环境里一点一点排查、修补,不如直接重新搭一套干净的环境。
于是我决定——
迁。
既然都迁了,那就顺便全换了
正好我原来的服务器是在香港地区。
域名没有备案,也没有套 CDN,所以从大陆访问的时候速度一直不算理想。
既然这次服务器出了问题,那干脆把之前一直懒得折腾的东西一起解决掉。
于是我重新买了一台杭州地区的云服务器,然后给域名做了备案,同时接入了阿里云 ESA。
也算是借这次事故,把整个博客的基础设施重新收拾了一遍。
虽然过程多少有点被迫,但结果还算不错。
博客文章是怎么迁移的
至于博客数据怎么迁移,我用到了这个插件:

这个插件可以快速把博客文章导出成 Markdown 格式,并且会把文章中的图片一起保存下来。
如果图片本身是以外部链接的形式存在,也会保留对应的链接。
所以迁移文章本身倒是非常方便:
旧服务器导出 → 新服务器安装同一个插件 → 再把文章导入进去。
至少文章基本都顺利保住了。
然后,我把评论全弄没了
问题出在评论。
当时迁移的时候,我压根没想到应该怎么把评论一起备份下来。
于是脑子一热:
算了。
然后现在回头看,我只想给当时的自己一巴掌(
毕竟文章还能重新导入,图片也还能迁移,但评论这种东西一旦没了,很多以前留下来的交流记录也就真的没了。
访问量之类的数据也是一样。
所以这次之后,我对“备份”这两个字的理解明显深刻了不少。
现在怎么样了
总之,目前服务器已经重新搭建完成,博客也恢复正常了。
这一次我至少没有再继续之前那种“能跑就别动”的放养策略。
现在我已经在 1Panel 里设置了组件有更新时发送邮件通知,之后也会尽量让各种对外服务和组件保持在相对新的版本。
同时网站现在也接入了阿里云 ESA。
不能说这样以后就绝对不会再出问题,毕竟安全这种东西本来也不存在什么“一劳永逸”。
但至少相比之前那台两年基本没管过的服务器,现在这套环境应该还是靠谱多了。
最后的教训
所以最后,再拿我自己这次的经历提醒一下各位朋友:
千万不要放养自己的服务器。
尤其是长期暴露在公网里的服务,各种 Web 服务、面板、反向代理、中间件,该更新的时候还是得更新。
以及最重要的一件事:
一定、一定、一定要勤快备份。
服务器真出了问题的时候,你会发现很多东西都可以重新搭,软件也可以重新装。
但那些没备份的数据——
是真的回不来的。
评论