Ubuntu 20.04 使用 APT 软件包管理器维护系统中的软件,默认软件源通常位于 Ubuntu 官方服务器。对于国内用户而言,由于网络距离和线路等因素,访问官方源时可能出现下载速度较慢、连接超时或软件包索引更新不稳定等情况。将软件源切换为国内镜像,可以改善软件包下载体验,同时提高执行 apt update 和系统更新时的稳定性。
需要注意的是,Ubuntu 20.04(Focal Fossa)已经结束标准支持周期。如果仍然维护 20.04 环境,除了更换镜像源,还应关注软件仓库是否继续提供对应版本的软件包,以及是否需要使用 ESM 等延长支持服务。更换软件源本身并不会改变 Ubuntu 的版本,也不会自动升级系统。
一、Ubuntu 20.04的软件源配置文件在哪里
Ubuntu 20.04 主要通过 APT 管理软件源,传统配置文件是:
Bash/etc/apt/sources.list
此外,还可以在下面的目录中找到第三方软件仓库配置:
Bash/etc/apt/sources.list.d/
查看当前软件源,可以执行:
Bashcat /etc/apt/sources.list
如果希望同时检查额外的软件仓库,可以执行:
Bashls -l /etc/apt/sources.list.d/
常见的 Ubuntu 20.04 软件源配置类似:
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
其中 focal 就代表 Ubuntu 20.04。
二、更换软件源之前先备份
修改 APT 配置前,建议先备份原始文件。这样即使修改后出现问题,也可以快速恢复。
执行:
Bashsudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
确认备份文件:
Bashls -l /etc/apt/sources.list*
如果系统中已经存在其他第三方仓库,也建议提前查看 /etc/apt/sources.list.d/,避免误修改与 Ubuntu 官方仓库无关的配置。
三、Ubuntu 20.04常见国内镜像源
国内常用的 Ubuntu 镜像站包括阿里云、清华大学、网易以及中科大等。不同地区和网络运营商访问速度可能存在差异,因此不必固定选择某一个镜像。
1. 阿里云镜像
Ubuntu 20.04 可以使用:
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
2. 清华大学镜像
可以配置为:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
3. 中科大镜像
配置示例:
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
4. 网易镜像
也可以使用:
deb https://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb https://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
实际使用时建议优先选择维护正常、网络连接稳定的镜像。镜像站的具体同步状态和支持情况可能发生变化。
四、使用命令行更换软件源
如果习惯终端操作,可以直接编辑 sources.list:
Bashsudo nano /etc/apt/sources.list
将原有 Ubuntu 官方源替换为选定的国内镜像。
例如使用清华镜像:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
保存后退出编辑器。
如果使用 Nano,可以按:
Ctrl + O
保存,然后按:
Enter
确认文件名,最后按:
Ctrl + X
退出。
五、修改后必须更新软件包索引
软件源修改完成后,不代表本地 APT 索引已经立即改变,需要执行:
Bashsudo apt update
正常情况下,可以看到类似:
Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease Get:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease Get:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease
如果最后没有出现明显的 Err:、Failed to fetch 等错误,通常说明新的仓库地址已经可以正常访问。
更新完成后,可以进一步执行:
Bashsudo apt upgrade
如果只希望测试软件源是否正常,执行 apt update 即可,不需要立即升级所有软件。
六、Ubuntu软件源各组件分别有什么作用
很多用户直接复制软件源配置,却不了解每个字段的含义。以:
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
为例:
deb 表示使用 Debian/Ubuntu 格式的二进制软件包仓库。
https://mirrors.aliyun.com/ubuntu/ 是软件仓库地址。
focal 表示 Ubuntu 20.04。
后面的组件决定可以获取哪些类型的软件包。
main
包含 Ubuntu 官方支持的主要开源软件,是系统基础软件的重要组成部分。
restricted
主要包含部分受到限制的硬件驱动等软件。
universe
包含大量社区维护的开源软件,软件数量非常丰富。
multiverse
包含许可证或其他因素限制、不能完全按照 Ubuntu 自由软件政策归类的软件。
一般桌面和开发环境建议保留:
main restricted universe multiverse
否则可能出现部分软件包无法找到的问题。
七、为什么还要配置 focal-updates 和 focal-security
Ubuntu 软件源通常不只有一个 focal 仓库。
例如:
focal focal-updates focal-security focal-backports
其中,focal 是 Ubuntu 20.04 的基础软件仓库。
focal-updates 用于提供正式发布后的更新软件包。
focal-security 用于安全更新。
focal-backports 则用于提供从较新 Ubuntu 版本回移植的软件版本,具体软件包是否存在取决于仓库维护情况。
对于普通系统,至少应该关注 focal、focal-updates 和 focal-security。
八、使用一条命令批量替换软件源
如果已经确定需要将 Ubuntu 官方源全部替换为某个镜像,也可以使用 sed。
例如将常见的 Ubuntu 官方地址替换为清华镜像:
Bashsudo sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.tuna.tsinghua.edu.cn/ubuntu/|g' /etc/apt/sources.list
如果原文件使用的是其他地址,例如:
http://cn.archive.ubuntu.com/ubuntu/
则需要根据实际内容进行替换。
修改前最好先查看:
Bashgrep -v '^#' /etc/apt/sources.list
这样可以避免因为源地址不同导致替换命令没有生效。
九、如何确认软件源已经成功更换
可以使用:
Bashapt update
观察终端输出中的仓库地址。
也可以执行:
Bashapt policy
该命令会显示 APT 当前使用的软件仓库。
例如:
500 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main amd64 Packages
如果输出中已经出现新的镜像地址,说明 APT 已经读取新的软件源配置。
还可以检查:
Bashgrep -R "deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
这个命令可以快速查看系统中配置的 Debian/Ubuntu 软件仓库。
十、执行apt update出现错误怎么办
更换软件源后,如果出现错误,不要急着反复执行更新命令。首先确认错误类型。
1. 出现404 Not Found
例如:
404 Not Found
通常意味着仓库中不存在对应的软件包索引。
首先确认系统版本:
Bashlsb_release -a
Ubuntu 20.04 应该显示:
Release: 20.04 Codename: focal
然后检查软件源中是否错误地写成了其他版本,例如 jammy、noble 等。
如果系统实际是 Ubuntu 20.04,就应该使用:
focal
2. 出现Temporary failure resolving
例如:
Temporary failure resolving 'mirrors.aliyun.com'
这通常更接近 DNS 或网络连接问题,而不一定是软件源本身的问题。
可以测试:
Bashping mirrors.aliyun.com
或者:
Bashgetent hosts mirrors.aliyun.com
如果无法解析域名,应优先检查网络连接和 DNS 配置。
3. 出现连接超时
如果某个镜像站访问速度较慢,可以尝试更换其他国内镜像。
例如:
https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
或:
https://mirrors.ustc.edu.cn/ubuntu/
国内不同地区的网络线路差异比较明显,因此更换镜像是常见的排查手段。
4. 出现GPG签名相关错误
如果看到类似:
NO_PUBKEY
或:
The following signatures couldn't be verified
不要直接通过关闭签名验证来解决。
APT 的签名验证用于确认软件仓库元数据的可信性。应该先确认软件源地址是否正确、系统时间是否正常,以及是否存在第三方仓库配置异常。
十一、不要随意修改第三方软件源
Ubuntu 系统中除了 /etc/apt/sources.list,还可能安装 Docker、Node.js、Google Chrome 等软件对应的第三方仓库。
这些配置通常位于:
Bash/etc/apt/sources.list.d/
例如:
Bashls /etc/apt/sources.list.d/
不要简单地把所有文件中的 archive.ubuntu.com 替换成国内镜像地址。
原因是第三方仓库与 Ubuntu 官方仓库的目录结构、签名密钥和发行版代号可能完全不同。
如果某个第三方软件仓库访问较慢,应针对该软件仓库单独寻找对应的镜像或官方替代方案。
十二、图形界面更换软件源的方法
Ubuntu 桌面版也可以通过图形界面修改软件源。
通常可以打开:
“软件和更新” → “Ubuntu 软件”
找到“下载自”或类似的软件服务器选项,然后选择:
其他 → 选择最佳服务器
系统可以根据网络连接情况测试镜像速度。
如果列表中提供国内镜像,也可以直接选择相应服务器。
图形界面操作的优势是不需要手动编辑配置文件,同时降低输入仓库地址时出现拼写错误的概率。
不过对于服务器、云主机和远程开发环境,直接编辑 /etc/apt/sources.list 往往更加方便。
十三、服务器环境更换软件源时的注意事项
如果 Ubuntu 20.04 运行在云服务器上,需要考虑服务器所在区域。
例如服务器位于中国大陆,可以优先测试国内镜像;如果服务器位于境外,国内镜像未必更快。
更换源之后不要只关注下载速度,还应观察:
Bashsudo apt update
是否稳定,以及软件包索引是否完整。
对于生产服务器,修改软件源前最好保留原配置备份:
Bashsudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
完成更新后再进行软件安装或系统升级。
如果出现严重问题,可以恢复:
Bashsudo cp /etc/apt/sources.list.bak /etc/apt/sources.list sudo apt update
十四、Ubuntu 20.04已经停止标准支持需要特别注意
Ubuntu 20.04 的代号是 Focal Fossa。由于该版本已经进入生命周期后期,继续使用时不能只考虑镜像下载速度。
如果服务器长期运行 Ubuntu 20.04,应确认当前环境所需要的软件包是否仍能从现有仓库正常获取,并关注 Ubuntu 官方提供的安全维护方案。
尤其需要避免将 Ubuntu 20.04 的软件源直接修改成 Ubuntu 22.04、24.04 等其他版本的软件源。
例如,下面这种做法是错误的:
Ubuntu 20.04系统 ↓ 直接把focal改成jammy ↓ 执行apt update ↓ 继续使用原系统
不同 Ubuntu 发行版的软件包版本、依赖关系和系统组件存在差异。跨版本修改软件源可能导致严重的依赖冲突。
如果确实需要升级 Ubuntu,应该按照正式的发行版升级流程进行,而不是简单修改 sources.list 中的版本代号。
十五、推荐的一套完整操作流程
对于 Ubuntu 20.04 国内用户,可以按照以下顺序操作:
首先备份:
Bashsudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
查看当前系统版本:
Bashlsb_release -a
确认代号为:
focal
然后编辑软件源:
Bashsudo nano /etc/apt/sources.list
例如配置清华镜像:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
保存后执行:
Bashsudo apt update
确认没有报错后,可以检查软件源:
Bashapt policy
最后根据实际需求决定是否执行:
Bashsudo apt upgrade
这套流程的关键并不是简单替换一个域名,而是确保系统版本代号正确、软件仓库组件完整、仓库签名正常、网络连接稳定。
十六、常见问题总结
Ubuntu 20.04更换国内源后需要重启吗?
通常不需要。修改软件源并执行 sudo apt update 后,APT 就可以使用新的软件包索引。
更换软件源会删除已经安装的软件吗?
正常更换 /etc/apt/sources.list 不会删除已经安装的软件。它主要改变 APT 获取软件包和软件包索引的位置。
阿里云、清华、中科大哪个更快?
没有适用于所有网络环境的固定答案。服务器所在地、运营商和网络线路都会影响实际速度,可以根据 apt update 的连接稳定性和下载速度进行选择。
Ubuntu 20.04可以直接使用Ubuntu 22.04的软件源吗?
不建议这样做。Ubuntu 20.04 使用 focal,Ubuntu 22.04 使用 jammy,不能通过简单修改软件源代号实现系统升级。
更换国内源后还需要修改PPA吗?
不一定。PPA 属于独立的软件仓库,应该根据实际使用情况单独处理。不要因为修改 Ubuntu 官方源,就批量修改所有 PPA 配置。
软件源换完还是很慢怎么办?
先执行:
Bashsudo apt update
确认是否存在 DNS、连接超时或仓库错误。如果当前镜像线路不理想,可以测试其他国内镜像。同时也应检查服务器本身的网络状况。
对于 Ubuntu 20.04,更换国内软件源的核心操作可以归纳为:备份配置、确认 focal 版本代号、替换官方镜像地址、保留必要的软件仓库组件、执行 apt update 验证,并针对第三方仓库单独处理。如果系统还承担生产业务,则应在修改前保留原配置,并避免通过直接修改发行版代号的方式进行跨版本升级。