Linux 服务器上装软件、更新系统,基本都要靠 apt 去官方源拉包。官方源在海外,国内直连经常很慢,偶尔超时或中断。我见过一次 apt update 卡了十几分钟,批量部署时整个进度都被拖住。

阿里云的 apt 镜像覆盖 Ubuntu、Debian、CentOS 等常见发行版,同步比较及时,节点分布在国内几个地区。如果机器本身就在阿里云 ECS 上,走内网地址访问镜像,速度快,也不占公网带宽。
换源前先确认两件事
换源会修改系统的软件源配置,改错了 apt 可能直接用不了。所以先备份原文件,再确认系统版本。不同版本的源文件格式和代号不一样,照抄别人的写法很容易出问题。
- 用 lsb_release -a 查看发行版和代号。jammy 对应 Ubuntu 22.04,noble 对应 Ubuntu 24.04,bookworm 对应 Debian 12。
- 先确认服务器能连上外网或阿里云内网。如果网络本身不通,换源后 apt 报错,很容易误以为是配置写错了。
- 生产机器改之前,先在测试机上完整跑一遍。
案例一:Ubuntu 22.04 手动换源
某小团队在上海地域部署了一台 ECS,跑内部 Web 服务,系统是 Ubuntu 22.04。第一次 apt update 从默认源拉索引就花了十多分钟,装 Nginx 和 Python 依赖时也经常超时,运维同学决定统一换成阿里云镜像。
- 备份原配置:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 编辑 /etc/apt/sources.list,把域名换成 mirrors.aliyun.com,jammy、jammy-updates、jammy-backports、jammy-security 四组条目都保留。
- 执行 sudo apt update 刷新索引,再执行 sudo apt upgrade 做一次升级测试。
换完之后,索引更新基本在一分钟以内,依赖安装也很少再超时。单次省下的时间不算多,但部署次数一多,差别就很明显了。
案例二:Debian 12 批量部署
另一个场景是一家游戏公司要在同一地域开几十台 ECS,统一装运行环境。他们用的是 Debian 12,选了阿里云的内网镜像地址。内网地址不走公网出口,流量不计入公网带宽,速度也更稳。
具体做法有两种。一是用自动化脚本批量改 /etc/apt/sources.list;二是直接改 Debian 12 默认的 deb822 格式文件 /etc/apt/sources.list.d/debian.sources,统一替换 URIs 字段。脚本跑完后,每台机器自动执行一次 apt update,部署结果就能保持一致。
需要注意,内网地址只适用于阿里云 ECS 所在的网络环境。如果服务器在本地机房或其他云厂商,就得用公网镜像地址,否则连接会失败。
Ubuntu 24.04 的新格式
Ubuntu 24.04 默认使用 deb822 格式,配置文件在 /etc/apt/sources.list.d/ubuntu.sources。这时再改老格式的 sources.list,很可能不生效。把新文件里的 URIs 字段换成阿里云地址,然后执行 apt update 验证即可。
常见报错怎么查
换源后最常遇到的是 GPG 签名校验失败,报错里通常带着 NO_PUBKEY。一般是镜像的签名密钥和系统对不上,或者系统里缺少对应公钥。现在更推荐把密钥放在 /etc/apt/keyrings 目录下,再在源配置里用 Signed-By 字段指定,不要再使用已经废弃的 apt-key 命令。
另一个常见错误是代号写错。比如把 jammy 写成 focal,apt 就找不到对应的软件包。排查时先对照 lsb_release 的输出,再检查源文件里的代号是否一致。
如果 apt update 还是报错,先看完整日志,找出是哪一条源地址出的问题,逐条排除。反复改同一处配置,通常只会越改越乱。
阿里云 apt 镜像的用法并不复杂,备份、替换地址、刷新索引三步就够。在 ECS 上配合内网地址,速度和稳定性都会更好。经常要部署新机器的团队,可以把换源写进初始化脚本,新机器拿来就能用。