1. 为什么要用国内镜像:瓶颈到底出在哪儿
做运维和开发的朋友应该都有过类似的经历:刚拿到一台新机器,想装个 Ubuntu 22.04 LTS,兴冲冲跑到官网下载页面,然后就是漫长的等待。进度条偶尔动一下,大部分时间都在转圈,最后可能等来一个“下载失败”的提示。这不是你的网速不行,也不是电脑不给力,而是因为默认下载路径本质上就是一条国际链路,数据要跨越大半个地球才能到你的硬盘里。
官方站点把安装镜像托管在海外服务器上,国内客户端访问时,请求要先经过国际出口带宽,再绕行到目标服务器。这条路径上的瓶颈很多:跨境链路的带宽本身就拥挤,尤其在晚高峰时段,几十万人同时抢一条通道,速度自然惨不忍睹。再加上跨地域传输的物理延迟,TCP 连接反复握手、丢包重传,整个下载过程就像堵在早高峰环路上的车,急也没用。
国内镜像加速的思路很简单:把海外的文件内容复制一份,放在国内的高带宽服务器上。这样你的下载请求就不用出国了,直接访问本地机房,速度是两个量级。对于 Ubuntu 这种动辄几个 GB 的系统镜像,用镜像站能把下载时间从“喝杯咖啡都不一定下完”缩短到“一首歌还没听完就搞定”。
这篇文章就围绕这个场景展开,讲清楚镜像加速背后的原理、如何挑选合适的镜像站、完整的下载和校验流程,以及我实际使用中踩过的坑。不管你是刚入门的新手,还是已经部署过多台服务器的老手,这篇文章都能帮你把“下载 Ubuntu 22.04 LTS 镜像”这件事做得又快又稳。
现在网络上关键词搜索“Ubuntu 22.04”的人,大部分都在找两样东西:一是安装镜像本身,二是安装完成后的软件源配置。这两个问题其实是同一条逻辑线:都在解决“国内网络环境下,如何让 Ubuntu 相关的下载变得更快”。所以这篇攻略会把“镜像下载”和“安装后的源替换”合并讲,一步到位。
2. 镜像加速原理与选型准备
2.1 镜像加速到底是怎么一回事
先说原理。镜像加速的核心概念是“缓存与分发”。官方原版的 ISO 文件发布后,国内的镜像站会按照一定的时间周期,自动从上游同步数据。同步完成后,你在国内下载到的文件和官方发布的文件,内容完全一致,只是存放位置不同。这就好比你在国外订购一本书,与其等海运几个月,不如让人家先把书批量运到国内的书店,你直接去店里拿,体验天差地别。
这里有一个关键概念叫“同步延迟”。镜像站不是实时同步的,通常有固定的同步周期,常见的有每 2 小时、每 6 小时或者每天同步一次。对于 Ubuntu 系统镜像这种更新频率不高的文件来说,延迟一两天完全无所谓。但对于那些需要及时更新的软件仓库来说,同步延迟就很重要了。不过本文只讨论系统镜像,所以这个话题点到为止。
还有一个容易误解的点:镜像站提供的不只是 ISO 文件,还有软件仓库、容器镜像、编程语言包管理器索引等一大堆东西。当你在配置 apt 源时,用的也是同一套镜像服务。所以,找到一个可靠的镜像站,既能解决安装镜像的下载问题,也能解决系统装好之后的软件安装速度问题,一举两得。
2.2 如何挑选一个可靠的镜像站
在国内,可供选择的开源镜像站数量不少,主要分为两大类:高校开源镜像站和云厂商开发者镜像站。这两种各有优劣,我分别说一下。
高校镜像站通常由高校的网络信息中心或开源社区维护,带宽相当充裕,很多都接入了几万兆的教育网骨干网。对于教育网用户来说,访问这类镜像站的速度往往是最快的,因为你在教育网内部,流量不用出网。但校外普通宽带用户访问高校镜像站,速度就要看运营商之间的互联互通情况了,有时候反而不如云厂商的镜像站快。
云厂商的镜像站部署在商业 IDC 机房,带宽按量付费,服务质量通常更有保障。对于大多数使用家庭宽带或企业专线的用户来说,云厂商镜像站的访问速度普遍更稳定。而且云厂商镜像站在 IPv4 和 IPv6 双栈方面做得比较到位,兼容性更好。
我在实际操作中会同时收藏两三个镜像站的地址,以防某一个临时维护或负载过高。挑镜像站时看几个硬指标:一是同步频率,一般每 6 小时同步一次就算很勤快了;二是带宽大小,这直接决定你能跑多快;三是是否有独立的域名和稳定的运营历史,避免那种三天两头关停的小站。把选择标准列成一个简单的对照,参考价值更直观:
| 对比维度 | 高校开源镜像站 | 云厂商镜像站 |
|---|---|---|
| 教育网速度 | 极快 | 一般 |
| 家庭宽带速度 | 取决于互通情况 | 通常较快 |
| 维护时间 | 寒暑假可能存在不确定 | 商业保障 |
| 稳定性 | 依靠师生志愿维护 | 商业化服务 |
| 同步频率 | 多数为 6 小时到 12 小时 | 多数为 2 小时到 6 小时 |
综合来看,如果你在校或能用教育网,首选高校镜像站;如果你在家里或公司,首选云厂商镜像站。这个选择不是一成不变的,可以在实际下载中测试对比,哪个快用哪个。
2.3 下载工具准备
下载镜像不一定要用浏览器。浏览器下载大文件有天然的劣势:不支持断点续传的自动恢复、进度条容易卡死、遇到网络波动只能从头再来。所以我强烈建议用命令行工具来下载。
我用得最多的是aria2,这是一个支持多线程、断点续传、多协议的命令行下载工具。对于几个 GB 的大文件,aria2 能把单个文件分成多个连接同时拉取,速度比单线程的浏览器快很多。安装方式很简单,在 Ubuntu 或 Debian 系系统上执行:
sudo apt install aria2如果你手头还没有任何 Linux 系统,只有 Windows 电脑,也可以用wget的 Windows 版本,或者直接用带断点续传功能的下载软件,比如很多通用下载管理器。Mac 用户则可以直接用系统自带的curl命令,配合-C -参数断点续传。
另外一个容易被忽略的工具是校验工具。Ubuntu 官方在发布镜像的同时会提供对应的校验值文件,常见的是 SHA256 格式。Windows 上可以用命令certutil -hashfile 文件路径 SHA256来生成哈希值;Linux 和 Mac 上直接使用系统自带的sha256sum命令。这个校验步骤我会在后面的实操中详细讲解,这里先记住一个原则:不校验,不安心。
3. 完整下载实操流程
3.1 定位正确的版本与文件
进入你选定的镜像站之后,找到 Ubuntu 相关目录。绝大多数镜像站的目录结构都是模仿官方源站布局的,路径通常是ubuntu-releases/。进入这个目录,你会看到一系列以版本号命名的子目录,比如22.04/、22.04.3/、23.10/等。
这里就有第一个容易踩坑的地方:版本目录的命名规则。Ubuntu 的长期支持版本(LTS)有一个特点是,它会在生命周期内不断推出“point release”,也就是维护更新版本。比如 22.04 LTS,你会在镜像站看到22.04目录,也可能看到22.04.1、22.04.2、22.04.3这样的子目录。它们之间的区别是,后者包含了前者的所有安全性更新和 bug 修复。
对于新装系统的用户来说,直接下载最新的 point release 版本是更优的选择。比如现在假设能看到22.04.3目录,那么就应该进去下载这个目录下的镜像,而不是去下载最初的22.04.0版本,因为后者还需要联网安装几百个更新才能达到前者的状态,费时费力。
进入具体的版本目录后,你会看到几个不同命名的 ISO 文件。这里再解释一下命名规则,比如常见的:
ubuntu-22.04.3-desktop-amd64.iso拆解开来就是:系统版本22.04.3,类型为桌面版desktop,架构为amd64。如果你需要安装带图形界面的桌面系统,拿这个文件;如果是要装服务器,应该选择live-server-amd64.iso结尾的文件。架构方面,近几年绝大多数 PC 都是 64 位,选amd64就对了。除非你手头有很老的 32 位硬件,否则不需要管i386的相关文件。
3.2 用命令行快速下载
找到文件链接后,把链接复制下来。在镜像站的页面上,一般会显示文件直链。假设复制到的链接是这样:
https://mirror.example.com/ubuntu-releases/22.04.3/ubuntu-22.04.3-desktop-amd64.iso在 Linux 终端中,用 aria2 下载:
aria2c -x 16 -s 16 -k 1M https://mirror.example.com/ubuntu-releases/22.04.3/ubuntu-22.04.3-desktop-amd64.iso参数的含义我来解释一下:
-x 16表示对同一个主机最多建立 16 个连接。-s 16表示将文件分割成 16 个分段进行并发下载。-k 1M表示每个分段的大小至少为 1M。
这三个参数配合使用,充分利用了带宽。正常情况下,你家的宽带能跑满网速上限,比如 200M 的宽带,下载速度能达到每秒几十兆字节。整个文件 4GB 左右,不到几分钟就搞定。
如果在 Windows 上使用命令行下载,也可以用 wget 的版本来实现:
wget -c https://mirror.example.com/ubuntu-releases/22.04.3/ubuntu-22.04.3-desktop-amd64.iso注意这里的-c参数代表断点续传。如果你的下载中途断开了,重新执行同样的命令,它会在上次的进度基础上继续,而不是从头再来。
3.3 校验文件完整性
下载完成后,千万不能直接就去刻盘安装。网络传输过程中可能出现数据损坏,尤其是大文件,哪怕一个比特位翻转,都可能导致安装过程崩溃。正确的做法是校验文件哈希。
在镜像站同目录下,一般会有一个SHA256SUMS文件,里面记录了所有镜像文件的哈希值。先用命令行把它下载下来:
wget -c https://mirror.example.com/ubuntu-releases/22.04.3/SHA256SUMS然后进行校验。在包含这两个文件的目录下执行:
sha256sum -c SHA256SUMS --ignore-missing这个命令的意思是,会按照SHA256SUMS文件里记录的哈希值,逐个检查当前目录下存在的文件是否匹配。由于我只下载了其中一个 ISO,所以用--ignore-missing参数忽略掉没有下载的文件,只看已有的这个。执行后,如果看到类似:
ubuntu-22.04.3-desktop-amd64.iso: OK则说明文件完整无误,可以放心使用。如果提示FAILED,那就说明文件在传输中出了问题,需要重新下载。千万别抱着侥幸心理用损坏的文件去安装,我见过太多人在这里栽跟头,浪费几个小时排查安装错误,结果发现只是镜像文件坏了。
3.4 制作启动盘与安装前准备
镜像校验通过后,下一步是把 ISO 写入 U 盘,做成启动盘。这里注意,不是简单地复制文件到 U 盘就行的,需要通过专门的工具来写入。Linux 下可以直接用dd命令,但危险性比较高,容易写错设备导致数据丢失。更稳妥的方式是用图形化的启动盘制作工具,在 Ubuntu 上一般自带“启动盘创建器”,Windows 上也可以用通用的刻录工具。
这类工具的使用逻辑都是相同的:选择你下载的 ISO 文件,选择目标 U 盘,点击开始。启动盘制作完成后,设置电脑从 U 盘启动,就能进入 Ubuntu 的安装界面了。制作启动盘时有一个细节要注意:U 盘的容量尽量大于 8G,因为 Ubuntu 桌面版的安装介质通常需要 4GB 左右的空间,但留出余量可以应对不同情况。同时制作启动盘会清空 U 盘里的数据,操作之前记得备份。
4. 常见问题与排查技巧实录
4.1 下载速度依然很慢怎么办
即便用了国内镜像,有时候速度还是不尽如人意。这种情况我在实际工作中遇到过不少次,原因通常有几个。
第一个原因是你选择的镜像站本身在当前网络环境下不通畅。不同运营商之间互联互通有差异,你所在的地区访问某一个镜像站可能很慢,但访问另一个就很快。解决办法很简单,换一个镜像站试试。我的习惯是先并行测试两三个镜像站的文件下载速度,下载链接指向的是同一个文件的相同版本,测试几秒钟就能看出差距。然后用最快的那个完成正式下载。
第二个原因是你的下载还在走 HTTP/1.1 协议,而镜像站支持 HTTP/2。HTTP/2 支持多路复用,多个请求可以在一个连接上并行传输,效率更高。aria2 默认会尽量使用协议协商,但某些情况下可能需要手动开启。为 aria2 增加参数:
aria2c --http-accept-gzip=true --file-allocation=none -x 16 -s 16 https://mirror.example.com/ubuntu-releases/22.04.3/ubuntu-22.04.3-desktop-amd64.iso第三个原因比较隐蔽:你的网络带宽可能被其他设备占用。如果家里同时有人在看 4K 视频、在打游戏、在下载其他大文件,你的下载速度自然会被挤占。最简单的做法是暂时限流其他设备,或者换个时间再下载。另外还有一种可能,就是本地磁盘的写入速度成了瓶颈,尤其是老旧的机械硬盘,写入速度跟不上网络下载速度,这时候把下载文件保存到固态硬盘里能明显改善。
4.2 校验和一直匹配不上
校验失败这个问题,我几乎每个月都会在论坛上看到有人求助。最直接的原因自然是文件损坏,但除此之外还有几个非文件损坏的情况需要排查。
第一个情况是你下载的文件版本和SHA256SUMS文件里的版本不对应。比如你下载的是ubuntu-22.04.3-live-server-amd64.iso,但在执行校验时用的却是另一个版本的校验文件。确保下载的SHA256SUMS文件和你下载的 ISO 文件在同一个目录下,且版本相同。
第二个情况是 Windows 系统下的换行符问题。如果你在 Windows 上用记事本打开SHA256SUMS文件,然后复制里面的哈希值去手动比对,可能会因为隐藏的回车符导致比对失败。这属于操作层面的坑,不是文件损坏的问题。在 Linux 系统下执行校验命令就可以规避。
第三个情况比较少见,但值得提一下:某些安全软件可能会在后台扫描大文件,导致文件被改动或者被删减。校验前最好把 ISO 文件加入安全软件的白名单,或者暂时退出安全软件进行校验。
如果排除了以上情况,校验依然失败,那就果断重新下载。与其耗费大量时间排查一个不确定的问题,不如直接花几分钟再拉一次文件,效率反而更高。我可以提供一个快速判断文件是否损坏的小技巧:很多启动盘制作工具在做完启动盘之后会自己也做一次校验,如果工具提示校验通过,那说明 ISO 文件大概率是好的。
4.3 安装后 apt 源也要换
下载完系统镜像,装好系统之后,你还会遇到一个问题:默认的软件源指向国外,安装软件时又慢又容易失败。这一步是镜像加速的延续,但很多新手不知道。安装完成后的第一件事,建议就是把 apt 源替换成国内的镜像源。
在 Ubuntu 22.04 中,apt 源文件的路径是/etc/apt/sources.list。不同镜像站提供了不同的配置方式。一条通用的做法是修改这个文件,将原来的下载地址替换成镜像站的地址。为了操作方便,可以用sed命令直接替换:
sudo sed -i 's/archive.ubuntu.com/mirror.example.com/g' /etc/apt/sources.list执行完成之后,记得先更新索引:
sudo apt update如果命令输出中不再有报错信息,说明源配置成功。这一步做完,之后安装任何软件都会快很多,比如sudo apt install python3-pip之类的操作,基本是秒级响应。
补充一个我自己的经验:有些云厂商的镜像站在配置 apt 源时,还需要额外考虑操作系统版本对应的代号。Ubuntu 22.04 的代号是jammy,在配置源时要注意把版本号替换为jammy,否则会出现找不到软件包的错误。镜像站页面上通常都会有现成的配置说明,建议照着说明配置,或者参考镜像站提供的自动化配置脚本,比自己手改要稳妥得多。
4.4 备份与多版本管理的小建议
最后分享一个我的个人习惯:我不会只保留一个 Ubuntu 版本镜像。通常我会在下载服务器或本地大容量硬盘里,同时保留最近两到三个 LTS 版本的最新 point release 镜像,以及对应的SHA256SUMS文件。平时安装时优先选择最新版本,但如果遇到某些特殊需求需要回退到旧版本,手头有镜像就不用临时去下载了。
另外,我会在下载完成后,立刻把校验和的值记录下来,存成一个文本文件,和镜像放在同一个目录。这样将来如果把镜像复制到其他机器,或者通过移动硬盘传给别人,都可以快速地再做一次完整性验证。大文件在复制和转存过程中也有损坏的风险,养成“下载即校验、转存再校验”的习惯,能省去后续大量排查时间。
关于镜像站的选择,我还有一个小建议:不要只保存一个镜像站地址。在我维护的服务器上,我会把两三个不同的镜像站地址写在一个备忘文件里,每个季度检查一次它们的可用性和同步状态。任何运营再稳定的服务,都有可能出现临时的故障、迁移或者调整。手上多几个备选方案,遇到问题切换起来从容很多。
4.5 常见问题速查
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 下载速度只有几十 KB/s | 镜像站选错或链路拥堵 | 切换镜像站,多个站点测速后择优 |
| 下载到一半断掉 | 网络不稳定或服务器断连 | 使用 aria2 或 wget 断点续传 |
| 校验提示 FAILED | 文件损坏或版本对应错误 | 重新下载,确保 SHA256SUMS 版本匹配 |
| 制作启动盘后无法引导 | ISO 文件不完整或 U 盘兼容性差 | 重新校验文件,换一个 U 盘重新制作 |
| 安装后 apt update 报错 | 源配置版本代号错误 | 检查源中的jammy版本代号是否正确 |
| 镜像站目录里找不到 22.04 | 镜像站同步延迟 | 等待同步,或切换到其他镜像站 |
写在最后的小体会
一个看似简单的下载流程,实际做顺了之后,能省下不少时间和精力。我自己刚开始折腾 Linux 的时候,也是老老实实去官网点下载,然后被龟速折磨到没脾气。后来明白了镜像加速的道理,下载速度提升了几十倍,整个体验完全变了。
说到这,我还想提醒一下:下载只是第一步,装好系统之后别忘了检查一下启动盘的制作是否规范,也别忘了尽快配置好 apt 源。整个 Ubuntu 的安装流程,从下载到装完软件源,其实是一个完整闭环。把这个闭环走顺了,以后不管是自己折腾环境,还是帮同事朋友安装系统,都能又快又稳。
最后再分享一个小技巧:下载大的 ISO 文件时,可以先把文件下载到本地固态硬盘,然后校验、制作启动盘。整个过程一气呵成,很少出问题。只要掌握了我上面说的这些方法,国内下载 Ubuntu 22.04 镜像这件事,真的可以做到又快又安心。