先说结论:Debian 11(Bullseye)的 LTS 支持已经在 2026 年 8 月 31 日结束,之后不再有官方安全更新。还在跑 Debian 11 的机器,要么升级到 Debian 12/13,要么重建。简单栈可以原地升级,复杂生产环境更建议重建,别在唯一一台生产机上直接试。
升级前先确认三件事:
- 有没有快照和可用备份:没有就不要开始
- 应用依赖什么版本:PHP 7.4、MySQL 10.5、OpenSSL 1.1.1 都会变
- 有没有第三方源:Docker、NodeSource、面板、监控 agent 都要单独确认
下面按“现状 → 升级前检查 → 原地升级步骤 → 常见坑 → 重建还是升级”讲,命令以 Debian 11 升 12 为例。

Debian 11 现在是什么状态
Debian 11 在 2021 年发布,常规支持结束后进入 LTS,LTS 到 2026 年 8 月 31 日结束。之后官方不再提供安全更新,第三方源和面板也可能逐步停止支持。继续用不是“立刻出事”,而是“出了漏洞没有补丁”,风险会随时间累积。
两个可选目标:Debian 12(Bookworm)和 Debian 13(Trixie)。Debian 12 更保守,生态兼容性好;Debian 13 更新,PHP、内核、工具链版本更高。新机器直接上 13,老机器按应用兼容性选 12 或 13。
升级前的 10 项检查
- 在云控制台打系统盘快照,确认能回滚
- 备份网站目录、数据库、证书、cron、Nginx/Apache 配置、面板配置
- 验证备份能恢复,别只看备份文件存在
- 记录当前版本:
cat /etc/debian_version、php -v、mysql -V、nginx -v - 列第三方源:
grep -rh ^deb /etc/apt/sources.list /etc/apt/sources.list.d/ - 检查被 hold 的包:
apt-mark showhold - 检查磁盘空间:升级需要下载和安装空间,至少留 2GB
- 确认应用对 PHP 8.2/8.4、MariaDB 10.11/11.x 的兼容性
- 准备维护窗口和回滚方案,通知相关方
- 在快照或克隆机上先演练一遍
原地升级 11 到 12
确认快照和备份后,按顺序执行:
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
# 备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 把 bullseye 替换为 bookworm(先确认没有别的发行版代号)
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo apt update
sudo apt upgrade --without-new-pkgs
sudo apt full-upgrade
sudo reboot
重启后确认内核和版本:
cat /etc/debian_version
uname -r
systemctl --failed
dpkg --audit
如果 apt update 报第三方源 404,先把对应源注释掉,升级完再按新版本重配。不要在源混着的情况下硬升。

从 12 到 13
步骤一样,把 bookworm 换成 trixie,重复 update、upgrade、full-upgrade、reboot。跨两个大版本不建议一次跳,先 11→12 验证业务,再 12→13。每步都留快照。
常见坑
- PHP 版本跳变:Debian 11 默认 PHP 7.4,Debian 12 是 8.2,Debian 13 是 8.4。老代码里的废弃语法、扩展、框架版本都可能不兼容,先跑测试。
- 数据库升级:MariaDB 10.5 到 10.11/11.x,升级前必须 dump,升级后检查字符集、权限和存储引擎。
- OpenSSL 1.1.1 到 3.x:老证书、旧 TLS 协议、部分 SDK 会受影响,检查支付、邮件、API 调用。
- 第三方源:Docker、NodeSource、面板、监控 agent 的源要换成对应新版本,别直接沿用 bullseye 的源。
- 面板类工具:宝塔、1Panel 等要确认支持新系统;不支持就先迁移站点,再重建面板。
- 内核和驱动:云主机一般没问题,但自定义内核模块、WireGuard、文件系统工具要单独验证。
重建还是原地升级
| 场景 | 建议 |
|---|---|
| 单台生产机、依赖复杂、没有完整测试环境 | 重建:新机器装 12/13,迁移站点和数据,切 DNS |
| 简单 LEMP/LAMP、第三方源少、有快照 | 可原地升级,先克隆演练 |
| 跑着面板、多个 PHP 版本、老扩展 | 优先重建,避免升级过程中连锁故障 |
| 测试机、临时环境 | 直接重装最快 |

重建的好处是干净、可回滚、不影响旧机器;代价是要迁移数据和切流量。原地升级省事,但一旦失败,回滚就是整机快照恢复,业务中断时间更长。
升级后验证
- 系统:版本、内核、
systemctl --failed、dpkg --audit - Web:Nginx/Apache 配置测试、站点 200、SSL 证书链
- PHP:版本、扩展、
php -m、应用错误日志 - 数据库:连接、慢查询、字符集、备份任务
- 定时任务:cron、systemd timer 是否正常触发
- 监控和告警:agent 是否上报,告警是否能收到
- 安全:防火墙规则、SSH、面板端口、失败登录
回滚方案
升级前打快照,升级后保留旧配置备份。原地升级失败时,直接回滚快照,不要在坏系统上反复修。重建方案则保留旧机器一段时间,DNS 切回即可。回滚后把失败原因记录下来,下次演练时补上。
常见问题 FAQ
Q1:Debian 11 还能继续用吗?
能跑,但不再有官方安全更新。暴露在公网的服务不建议长期停留,尤其是 Web、SSH、数据库。
Q2:能直接从 11 升到 13 吗?
不建议。跨两个大版本一次升级,问题很难定位。先 11→12,验证后再 12→13。
Q3:升级要多久?
小机器 30 到 60 分钟,大机器和依赖多的环境要预留 2 到 4 小时,包含验证和回滚时间。
Q4:宝塔面板怎么办?
先确认面板版本支持 Debian 12/13。不支持就迁移站点到新机器,再重建面板;不要在旧面板上硬升级系统。
Q5:升级后 PHP 版本变了,网站白屏?
先看 PHP 错误日志和扩展列表,再确认 Nginx 的 fastcgi_pass 指向新版本 socket。老代码的兼容问题要单独修。
参考来源
总结
Debian 11 的 LTS 已经结束,继续用等于接受“没有安全补丁”。简单栈可以原地升级,复杂环境优先重建;无论哪种,先快照、先演练、先备份。升级不是目的,把业务安全地迁到受支持的版本才是。
需要一台干净机器做升级演练或新环境,可以按小时开一台萤光云香港 CN2 VPS,装 Debian 12/13 跑一遍再动生产。







