Ubuntu 20.04系统下更换国内软件源的完整指南

9 次阅读

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/

查看当前软件源,可以执行:

Bash
cat /etc/apt/sources.list

如果希望同时检查额外的软件仓库,可以执行:

Bash
ls -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 配置前,建议先备份原始文件。这样即使修改后出现问题,也可以快速恢复。

执行:

Bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

确认备份文件:

Bash
ls -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:

Bash
sudo 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 索引已经立即改变,需要执行:

Bash
sudo 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 等错误,通常说明新的仓库地址已经可以正常访问。

更新完成后,可以进一步执行:

Bash
sudo 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 官方地址替换为清华镜像:

Bash
sudo 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/

则需要根据实际内容进行替换。

修改前最好先查看:

Bash
grep -v '^#' /etc/apt/sources.list

这样可以避免因为源地址不同导致替换命令没有生效。

九、如何确认软件源已经成功更换

可以使用:

Bash
apt update

观察终端输出中的仓库地址。

也可以执行:

Bash
apt policy

该命令会显示 APT 当前使用的软件仓库。

例如:

500 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main amd64 Packages

如果输出中已经出现新的镜像地址,说明 APT 已经读取新的软件源配置。

还可以检查:

Bash
grep -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

通常意味着仓库中不存在对应的软件包索引。

首先确认系统版本:

Bash
lsb_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 或网络连接问题,而不一定是软件源本身的问题。

可以测试:

Bash
ping mirrors.aliyun.com

或者:

Bash
getent 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/

例如:

Bash
ls /etc/apt/sources.list.d/

不要简单地把所有文件中的 archive.ubuntu.com 替换成国内镜像地址。

原因是第三方仓库与 Ubuntu 官方仓库的目录结构、签名密钥和发行版代号可能完全不同。

如果某个第三方软件仓库访问较慢,应针对该软件仓库单独寻找对应的镜像或官方替代方案。

十二、图形界面更换软件源的方法

Ubuntu 桌面版也可以通过图形界面修改软件源。

通常可以打开:

“软件和更新” → “Ubuntu 软件”

找到“下载自”或类似的软件服务器选项,然后选择:

其他 → 选择最佳服务器

系统可以根据网络连接情况测试镜像速度。

如果列表中提供国内镜像,也可以直接选择相应服务器。

图形界面操作的优势是不需要手动编辑配置文件,同时降低输入仓库地址时出现拼写错误的概率。

不过对于服务器、云主机和远程开发环境,直接编辑 /etc/apt/sources.list 往往更加方便。

十三、服务器环境更换软件源时的注意事项

如果 Ubuntu 20.04 运行在云服务器上,需要考虑服务器所在区域。

例如服务器位于中国大陆,可以优先测试国内镜像;如果服务器位于境外,国内镜像未必更快。

更换源之后不要只关注下载速度,还应观察:

Bash
sudo apt update

是否稳定,以及软件包索引是否完整。

对于生产服务器,修改软件源前最好保留原配置备份:

Bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

完成更新后再进行软件安装或系统升级。

如果出现严重问题,可以恢复:

Bash
sudo 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 国内用户,可以按照以下顺序操作:

首先备份:

Bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

查看当前系统版本:

Bash
lsb_release -a

确认代号为:

focal

然后编辑软件源:

Bash
sudo 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

保存后执行:

Bash
sudo apt update

确认没有报错后,可以检查软件源:

Bash
apt policy

最后根据实际需求决定是否执行:

Bash
sudo 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 配置。

软件源换完还是很慢怎么办?

先执行:

Bash
sudo apt update

确认是否存在 DNS、连接超时或仓库错误。如果当前镜像线路不理想,可以测试其他国内镜像。同时也应检查服务器本身的网络状况。

对于 Ubuntu 20.04,更换国内软件源的核心操作可以归纳为:备份配置、确认 focal 版本代号、替换官方镜像地址、保留必要的软件仓库组件、执行 apt update 验证,并针对第三方仓库单独处理。如果系统还承担生产业务,则应在修改前保留原配置,并避免通过直接修改发行版代号的方式进行跨版本升级。