资讯动态

Ubuntu LTS升级为Pro:从5年到10年的安全维护实操指南

发布时间:2026/9/30 17:46:48 来源:尧图企业网站定制
1. 先搞清楚Ubuntu Pro 到底升级了什么1.1 一个容易被忽略的“订阅服务”很多人看到“Ubuntu LTS 升级为 Pro”这个说法第一反应是“Pro 是不是又是一个新的发行版”实际上完全不是。Ubuntu Pro 不是一个独立的系统镜像也不是要你重装系统它是 Canonical 官方提供的一套订阅服务作用在现有的 Ubuntu LTS 系统之上。说得直白一点它就是把原本 5 年标准支持的 LTS 系统通过订阅方式延长到 10 年的安全维护周期同时额外解锁一批安全与合规功能。为什么会有这个东西因为 LTS 版本本身的生命周期是有限的。比如 Ubuntu 20.04 LTS标准支持到 2025 年之后你要继续用要么自己扛着安全漏洞要么升级到新版本。但对于企业服务器、生产环境尤其是跑着数据库、Web 服务的老机器升级系统往往比续命更麻烦。Pro 就是为了解决这个“系统还活着但官方不管了”的尴尬状态。还有一个常见误解是“Pro 是不是要收费”。确实Ubuntu Pro 有付费商业版但它同时提供一个非常慷慨的免费档个人用户最多可以在 5 台机器上免费启用 Pro 订阅。这个政策已经持续很久了绝大多数个人开发者、实验室服务器、家庭 NAS 都完全够用。所以这篇文章讲的“升级”绝大多数情况下是一分钱不花的正规操作。1.2 LTS 和 Pro 的差异对比为了让你直观理解升级前后的差距我直接给一张对比表。这张表我整理自官方文档和实际使用体验不是网上随便抄的那种。能力项普通 Ubuntu LTSUbuntu Pro标准安全更新5 年10 年ESM扩展安全维护不支持支持覆盖主仓库所有软件包Livepatch 内核热补丁不支持需单独配置支持无需重启即可修补内核漏洞CVE 自动修复仅主仓库基础包覆盖 28000 软件包自动修复合规组件HIPAA/FIPS等需手动折腾一键启用客户侧支持社区支持可选商业支持付费项免费额度-个人 5 台机器注意一个细节ESM 覆盖的不仅仅是内核和核心工具而是整个主仓库main repository里的软件包。这是什么概念意味着你 apt 装过的那些 PHP、Python 库、nginx 模块、openssl 之类的软件在系统进入 EOL生命周期结束之后依然能收到安全补丁。这个价值非常大因为很多生产事故并不是系统本身被攻破而是某个第三方库被曝出 CVE你却无处打补丁。后面我会演示具体操作但建议你先理解 Pro 的本质它不是一个“功能开关”而是一套叠加在现有系统上的“安全维护服务层”。理解了这一点你后续配置时就不会被各种术语绕晕。2. 升级前的准备工作2.1 系统版本与架构检查聊完了概念进入实操。我见过不少人在升级过程中卡住回头一问都是系统版本太老或者架构不对。Pro 虽然支持的范围比较广官方宣称 Ubuntu 14.04 ESM 以上都支持但不同版本对不同功能支持有差异所以第一步一定是检查自己的系统环境。执行以下命令lsb_release -a输出类似这样No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy这里最关键的是 Release 那一行。我个人建议你最低用 Ubuntu 20.04 LTS 起步再老的版本虽然技术上支持但 ubuntu-advantage-tools后面会讲到的兼容性会逐渐变差有些新功能在旧版本上不可用。接着检查架构dpkg --print-architecture如果你是 x86_64 或 amd64那没问题。如果是 arm64比如树莓派上的 Ubuntu Server、ppc64el、s390x也都在支持范围内。真正需要注意的是 i38632 位这个架构在近几个 LTS 版本里已经逐步降级支持Pro 的 ESM 覆盖也不完整不建议折腾。另外还要确认你能正常访问 ubuntu.com 和 esm.ubuntu.com 这些域名。整个 attach 流程需要联网验证订阅状态。如果服务器在内网、有严格的 egress 管控需要提前把这两类域名加入白名单。2.2 注册 Ubuntu One 账号并获取订阅令牌Pro 的订阅绑定需要一个“令牌”token。你可以理解为一把钥匙attach 的时候用它来跟 Canonical 的服务器确认“这个机器归这个账号管”。访问 Ubuntu 官网的 Pro 页面ubuntu.com/pro点击页面上醒目的“Get Ubuntu Pro”按钮进入注册流程。需要注册的是 Ubuntu One 账号就是 Canonical 的统一账号体系。如果你之前用过 Launchpad、Snap Store 或者 Ubuntu 论坛同一个账号可以直接登录。登录之后在个人页面的“Your subscriptions”区域可以看到一个免费的订阅方案名字通常叫“Ubuntu ProFree Personal Use”每个账号最多 5 台机器。点进去之后系统会为你生成一个形如C1ABCDEF1234xyz的令牌字符串。这里有个经验之谈不要把令牌直接当作 API Key 塞进代码里或者写进公开文档。它虽然可以随时作废重建但万一泄露别人就能把你的免费额度占用掉5 台机器的名额其实挺紧张的。建议你把它先保存在密码管理器里或者放到服务器的/root/.pro-token文件里设置权限为 600后面操作时再读取。3. 正式升级的核心操作流程3.1 安装并更新 ubuntu-advantage-toolsUbuntu 上的 Pro 客户端工具叫ubuntu-advantage-tools不过在新版本中它已经被整合进ubuntu-pro-client这个包名里。为了统一我建议你不管哪个版本先把系统自带的包更新一下然后安装这个工具sudo apt update sudo apt install ubuntu-advantage-toolsUbuntu 22.04 及之后的 LTS 版本这个包默认就已经安装了但版本可能比较老。务必确保它是新版apt show ubuntu-advantage-tools | grep Version我写这篇文章时规范的做法是把它升到 30.x 以上因为新版客户端修复了不少 attach 流程中的 bug也支持更新的服务类型。如果版本太老建议执行sudo apt upgrade ubuntu-advantage-tools如果你用的是较老的 Ubuntu 20.04可能需要先启用esm-infra相关的 apt 源才能更新到这个工具。但这里有个鸡生蛋的问题——你要启用 ESM 源又得先有新版工具。不过不用担心老版本工具本身就能 attach只是功能提示没有新版丰富。先 attach、再升级也是可以的。3.2 用 attach 指令绑定订阅令牌环境就绪之后执行 attach 才算是真正开始“升级”sudo pro attach C1ABCDEF1234xyz如果你的令牌已经存到了文件里可以用命令替换sudo pro attach $(cat /root/.pro-token)执行过程中客户端会先连接 Canonical 的合约服务验证令牌有效性然后自动启用一部分默认服务。整个流程通常几十秒视网络状况而定。成功之后你会看到类似这样的输出Enabling default service esm-infra Updating package lists Ubuntu Pro services: esm-infra enabled Enable service: esm-apps Enable service: livepatch ... This machine is now attached to Ubuntu Pro - Free Personal Use看到This machine is now attached这行基本就成功了。此时你的 Ubuntu LTS 已经“升级”为带 Pro 订阅的状态。注意attach 的时候不要用sudo su切换到 root 再执行在 Ubuntu 新版本中pro命令会明确提示你避免在 root 环境下直接操作建议始终使用sudo调用避免后续 token 读取权限混乱。3.3 验证状态并启用关键服务attach 完成不等于所有服务都开了。Pro 包含的服务是一组有些是默认启用有些需要手动开启。用下面这个命令查看当前状态sudo pro status输出会以一张表格形式列出所有服务项包括服务名、状态、描述。比如SERVICE ENTITLED STATUS DESCRIPTION esm-infra yes enabled Expanded Security Maintenance for LTS esm-apps yes enabled Expanded Security Maintenance for Applications livepatch yes enabled Canonical Livepatch service fips yes disabled NIST-certified FIPS modules fips-updates yes disabled FIPS compliant updates不同版本的系统服务列表可能略有差异。关键是 esm-infra、esm-apps、livepatch 这三项的状态是 enabled。如果某几项显示 disabled而且你确实需要对应功能可以单独启用sudo pro enable livepatch如果你只是个人使用esm-infra 和 esm-apps 默认启用了其实已经覆盖了 90% 的价值。Livepatch 我建议也打开后面会讲为什么值得。4. 升级后一定要做的事Pro 的核心功能逐个上手4.1 ESM把 10 年安全补丁握在手里ESM 是 Ubuntu Pro 最重要、也最基础的能力全称 Expanded Security Maintenance扩展安全维护。它解决的核心问题是当 Ubuntu LTS 进入 EOL 之后第三方和我们自己部署的软件包还能不能继续收到安全更新。举个例子Ubuntu 20.04 LTS 标准支持到 2025 年 4 月。如果我不升级系统过了这个时间点一个 2026 年才被发现并修复的 openssl 漏洞正常 apt 源里是不会推送修复包的。但是启用了 ESM修复包会在 Canonical 的内部源里继续更新你的apt upgrade依然能拉到新版本。启用 ESM 之后无需额外操作它已经自动接入了 apt 源。你只需要正常执行sudo apt update sudo apt upgrade它会自动从 ESM 源拉取更新。想确认当前系统是否能收到 ESM 的推送可以看源列表里有没有esm.ubuntu.com相关的条目grep -r esm /etc/apt/sources.list /etc/apt/sources.list.d/ 2/dev/null | head -20看到类似https://esm.ubuntu.com/infra/ubuntu的地址就说明生效了。这里有个小细节ESM 源的优先级通常比普通源高所以同一个包在两个源里都有新版本时apt 会优先装 ESM 的。这个设计是故意的确保优先覆盖安全补丁。4.2 Livepatch 热补丁不重启也能修内核Livepatch 是很多人冲着 Pro 来的一大原因。它的作用通俗点说内核出了安全漏洞不需要重启机器就能打补丁。对生产服务器、7x24 小时服务这个价值无可估量。为什么香因为普通的内核更新流程是apt upgrade装好新内核然后reboot才能生效。对于跑着线上业务的服务器一次重启意味着一次服务中断可能要申请变更窗口半夜起来操作。而 Livepatch 把补丁直接打进正在运行的内核内存中应用之后只是进程层面短暂抖动不需要重启。启用方式很简单sudo pro enable livepatch执行之后系统会安装canonical-livepatch这个工具并自动完成注册。你可以查看当前补丁状态canonical-livepatch status输出里会显示当前内核版本、补丁状态、是否有待应用的补丁等信息。如果显示kernel patch: applied说明热补丁已经生效。这里有一个实操心得Livepatch 不是万能的它主要覆盖内核自身的 CVE 补丁不保证覆盖所有内核模块的第三方驱动。如果你的服务器用了特殊的商用内核模块比如某些网卡厂商的驱动重启之后还是要留个心眼验证一下。另外Livepatch 依赖网络连接会定期与 Canonical 的服务通信如果服务器完全离线热补丁下发会失败只能退回到传统重启打补丁的方式。4.3 CVE 修复与合规审计组件Pro 还有一个容易被忽略但很实用的功能CVE 修复的主动管理。普通 apt 只会被动推送更新但 Pro 环境下你可以主动查询某台机器对某个 CVE 的暴露状态并一键修复。这个能力通过pro客户端暴露sudo pro fix CVE-2024-1234pro fix会帮你分析当前系统是否受该 CVE 影响如果受影响它会自动拉取修复包并应用如果系统已经免疫它会明确告诉你无需操作。对于喜欢安全审计、或者要给客户出安全报告的人来说这个命令非常好用省去了手动对照 CVE 列表和 apt changelog 的繁琐过程。Pro 还附带合规组件比如 FIPS美国联邦信息处理标准认证的加密模块、USGUbuntu Security Guide等。这类组件主要用于政企合规场景个人用得不多。如果你不是在做等保、FIPS 相关的交付项目不需要碰。不过有一点想提醒这部分合规组件启用后会改变系统底层的加密库配置比如把 OpenSSL 的算法策略改成 FIPS 模式。这是系统级变更启用后某些软件可能因为算法限制而运行异常。所以我的建议是知道有这个东西就行不到万不得已别在已经有业务跑的机器上乱启。5. 常见问题与排错实录5.1 网络与镜像源导致的 attach 失败这是我遇到最多的一类问题。attach 报错的典型特征是执行后长时间卡住、超时或者提示Failed to connect to authentication server。排查思路从三步走第一步确认能访问 Canonical 的服务地址curl -I https://ubuntu.com/pro curl -I https://contracts.canonical.com curl -I https://esm.ubuntu.com如果其中某个域名不通说明你的网络出口拦截了访问。常见场景是企业防火墙、云安全组、或某些地区访问海外站点不稳定。你需要把上述域名加入白名单或者换网络环境再试。第二步排查 apt 源是否正常。attach 过程中要读写 apt 源如果你的sources.list已经被改成了奇怪的内网镜像可能导致软件包校验失败。第三步看日志。ubuntu-advantage-tools 的日志在/var/log/ubuntu-advantage.log报错的信息大多能在这里找到。比如我遇到过一次报错是证书链问题最终定位到服务器系统时间不对导致 TLS 握手失败。日志里写的是x509: certificate has expired or is not yet valid时间同步一下就好了。5.2 Token 误用或绑定数量超限免费订阅最多 5 台机器。如果你在 6 台机器上 attach第 6 台会提示订阅额度不足。这种情况有两种处理方法。第一种如果确实有机器不再需要 Pro 了先在那台机器上 detachsudo pro detach它会释放一个名额。注意 detach 之后ESM 等服务的包源会切回普通源某些安全更新可能不再推送。第二种把某台机器从订阅里移除不用登录网页后台。如果你手头已经没有那台机器的访问权限可以登录 Ubuntu One 账户在 Pro 订阅管理页面强制移除机器。这是一个很隐蔽但很有用的操作——我曾经因为重装系统忘了 detach白白占着一个名额后来就是通过网页后台清理的。运营这个免费额度时我的建议是给机器命名规范一点。attach 时系统会采集机器的主机名你可以提前把主机名改成有辨识度的名字比如web-prod-01这样在后台看到的机器列表一目了然不会出现五六台ubuntu并列的情况。5.3 命令报错与状态检查技巧有时候 attach 成功之后pro status显示某个服务是 disabled但pro enable又报错。常见的原因有两个一是ubuntu-advantage-tools版本太旧新服务类型不认识。解决方法是先升级工具本身sudo apt install --only-upgrade ubuntu-advantage-tools二是与既有软件冲突。比如手工安装过canonical-livepatch的旧版本再启用 Pro 的 livepatch 时可能提示冲突。先把旧工具卸载干净sudo apt remove canonical-livepatch sudo pro enable livepatch另外pro status --all可以查看所有服务及其详细状态比不加参数的信息更全。想要 JSON 格式方便脚本解析可以加--format json。排查问题的时候这两个参数比单纯看表格有用得多。我这里整理了一个速查表覆盖高频问题现象直接原因解决动作attach 超时域名不通或网络劫持检查 contracts.canonical.com调整网络/白名单apt update 报 404ESM 源配错 / 系统版本过旧检查 sources.list 中 esm 条目升级 ubuntu-advantage-toolsattach 提示额度不足免费 5 台名额已满detach 空闲机器或在网页后台移除pro fix 拉不到包apt 缓存脏 / 源未刷新执行 apt clean apt update 再试livepatch 状态异常内核模块冲突或网络不通检查 canonical-livepatch status重启 livepatch 服务时间不同步导致 TLS 报错服务器时钟偏差同步时间sudo timedatectl set-ntp true6. 升级后的日常维护与使用建议6.1 定期检查订阅状态与更新推送Pro 接好之后不是一劳永逸的我建议把状态检查纳入日常巡检脚本。我自己会在服务器上配置一个 cron 任务每周执行一次pro status并输出到日志同时检查 ESM 源的更新包数量。#!/bin/bash echo Ubuntu Pro Status sudo pro status --format json echo Available Updates apt list --upgradable 2/dev/null | grep -c esm把这段脚本存到/usr/local/bin/pro-check.sh加上可执行权限再配合 cron 每周一早上执行有异常一眼就能看到。6.2 如何正确看待 Pro 免费版与商业版的区别经常有人问我免费版是不是阉割版就我实际使用来看免费版和个人开发场景匹配度很高核心的 ESM、Livepatch、CVE 修复全都包含没有功能裁剪。商业版主要多出来的是不限机器数量、商业化许可授权、优先技术支持、以及一些面向企业的合规服务。这些对单机用户来说用不上没必要为它掏钱。但有一点要提醒免费订阅仅限“个人使用”。如果是在公司生产环境大规模使用需要评估是否需要购买商业订阅以免产生授权合规问题。虽然 Canonical 在实际执行中不会立刻来找你但作为从业者合规意识还是要有的。6.3 一个容易被忽视的坑升级系统版本后要重新 attach 吗这个问题我在社区里看到很多人问。答案是不需要。Ubuntu Pro 的订阅是绑定机器而不是绑定某个具体的系统版本的。你用do-release-upgrade从 22.04 升到 24.04只要机器的主机识别信息没变Pro 订阅会自动继承。升级过程中系统会重新配置 apt 源Pro 的源也会跟着调整。升级完建议执行一次pro status确认所有服务正常偶尔会遇到 livepatch 内核版本跳变需要重新匹配的情况手动sudo pro enable livepatch --refresh一下就好。这个特性对长期维护的老机器非常友好不用担心升级系统导致安全维护断了。7. 写在最后含个人实操体会处理过几十台机器的 Pro 订阅之后我最大的感受是这个免费额度被严重低估了。很多人觉得 Ubuntu LTS 用默认源就够了直到某天某个依赖库爆出高危 CVE而你的系统版本已经过了维护期那时候才知道什么叫欲哭无泪。提前把 Pro 挂上相当于给老系统上了一道安全保险收益远大于那几分钟的操作成本。最后再分享一个小技巧如果你在本地虚拟机里测试 Pro建议把系统时钟设成网络同步因为 attach 流程对时间非常敏感时间偏了大几秒就可能 TLS 握手失败然后你会怀疑是不是自己命令敲错了。这个坑我踩过一次排查了半个多小时才发现是虚拟机暂停恢复之后时间漂移导致的。另外如果你是 Python 开发者或者跑着不少第三方源安装的软件比如 Node.js 的 nodesource 源、Docker 官方源这些源和 ESM 不冲突。ESM 只管理主仓库和配套应用的软件源第三方源照常工作。但在排查问题时要注意区分报错的包到底是来自 ESM 源还是自己的第三方源这个定位思路能省掉不少无用功。这篇文章没有写什么高深的原理都是可以照着操作的步骤和这些年碰过的坑。如果你打算给手头的老机器续命按照上面的流程操作完基本五分钟内就能看到This machine is now attached的字样那一刻你会觉得这波操作挺值的。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑