博客维护:升级到 Ubuntu 24.04

这个博客在四年前做了一次迁移1,目前是架设在一台 DigitalOcean 的 VPS 上,前面用 Cloudflare 作 CDN,得益于我选择的这两家公司非常靠谱(但是最近 Cloudflare 的事故2 3让我这个 CF 吹有一些尴尬),自从搭建起来之后,我几乎没有维护过。

最近后台一直提示我 PHP7.4 EOL 了,今天终于打起精神来决定升级一把。

一不做而不休,干脆直接把 4 年半前启动的这台 VPS 全升了吧:

  • Ubuntu 升级到 24.04;
  • Mysql 升级到 8.0;
  • PHP 升级到 8.3;

因为我是专业的 SRE,所以这次升级读者感受不到任何区别。

整体比较顺利,唯一遇到的问题是,我用的 wordpress theme 太老了,一样的代码居然在 PHP8.3 挂了。看提示是函数参数少传了,在 PHP7.4 是 Warning,在 PHP8.4 是直接 Fatal。

本来打算放弃治疗,直接用一个新的 wordpress 官方主题得了,省心。结果一个二〇二五这些主题,都是什么玩意,行距看着都难受。又回来决定修好主题的代码。得亏 ChatGPT,没想到意外地顺利,很快就跑起来了,目前也没发现什么问题。

安全方面上顺便做了一个加强,以前的架构是:域名解析到 Cloudflare,Cloudflare proxy 到我的 Nginx,Nginx 只接受 Cloudflare 的 IP4,其他的一概拒绝。自己以为很安全了,没有人知道我的真实 IP。然后自己一查,居然早已经暴露了。

censys 的查询结果

我也不知道什么时候暴露的。

这次直接用了 cloudflared,原理是,我的服务器 Nginx 只 listen localhost 的端口,我的服务器安装一个 cloudflared,cloudflared 会去主动连接 cloudflare,这样,在 cloudflare 收到请求的时候,会通过 –> cloudflared –> nginx 转发到我的机器上。有点像 FRP5 穿透。如此一来,我的 IP 完全没有暴露在公网上了。过段时间再去搜索一下,看暴露了没有。

欢迎读者留言 ; D

  1. 博客迁移到 Cloudflare ↩︎
  2. Cloudflare outage on November 18, 2025 ↩︎
  3. Cloudflare outage on December 5, 2025 ↩︎
  4. Cloudflare 的 IP range:https://www.cloudflare.com/ips/ ↩︎
  5. https://github.com/fatedier/frp ↩︎


博客维护:升级到 Ubuntu 24.04”已经有13条评论

  1. 看了这一篇文章吓得我也去查了一下censys的结果,发现ip不对,并且只是查询出来了系统是liunx的我就放心了,很好不是像你一样显示出来了Ubuntu Linux 20.04 以及ip信息,并且还有一点你应该修改一下head头中的meta->generator,很明显就知道是WordPress 6.9的版本了,如果人家知道这个版本的漏洞就出大问题了。看了一下你的原理,之前我为了不暴露ip,是通过一台ADSL服务器的nginx转发到另外一台waf服务器的nginx再转发机器上的nginx上,如果waf或者web两个中的一个服务器检测到攻击就直接拉黑拦截,到期才解封,如果突然之间一堆攻击就拉黑拦截,并通知ADSL服务器进行换ip。唯一点问题就是dns传播需要10分钟,切换ip地址池的时候会影响一下正常的用户

    • 这个级别太高了,我不想花这么多精力维护。现在策略是定期备份,不怕被攻破,没有敏感数据的。如果有问题我就换一台 VM 再搭建一次。

      至于 wordpress,我觉的问题不大。隐藏自己的版本不彻底解决漏洞问题,我是直接跟着官方的 wordpress 版本升级的。

    • 应该不会,cloudflared 只是帮你代理单个服务,其他的东西该怎样还是怎样的。

      不过都用 cloudflare 了,直接让 cloudflare 负责证书不就好了吗?

    • 哈哈,还真是,我 trace 了一下是 DO 来解析的。

      然后看了文档 https://docs.digitalocean.com/products/networking/dns/how-to/manage-records/#ptr-rdns-records

      > We automatically create PTR records for Droplets based on the name you give that Droplet in the control panel. The name must be a valid FQDN. For example, using example.com as the Droplet name creates a PTR record, but ubuntu-s-4vcpu-8gb-fra1-01 or my-droplet does not. Droplets with IPv6 enabled only have PTR records enabled for the first IPv6 address assigned to it, not to all 16 addresses available.

      PTR records

Leave a comment

您的邮箱地址不会被公开。 必填项已用 * 标注