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

2026-09-02 11:21:31 22 次阅读

Ubuntu 20.04(Focal Fossa)默认使用 Ubuntu 官方软件源。如果服务器位于国内,访问境外软件源时可能出现下载速度慢、连接超时或软件包更新失败等情况。将软件源切换为国内镜像,可以明显改善 apt update、软件安装以及系统升级时的网络体验。

下面以 Ubuntu 20.04 为例,介绍备份软件源、替换镜像地址、刷新软件包索引以及常见问题处理方法。

一、查看当前 Ubuntu 软件源

Ubuntu 的软件源配置主要位于:

Bash
/etc/apt/sources.list

可以使用 cat 查看当前配置:

Bash
cat /etc/apt/sources.list

也可以使用:

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

这个命令会过滤掉注释行和空行,更方便查看实际生效的软件源。

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-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse

其中:

  • focal 对应 Ubuntu 20.04;

  • focal-updates 用于提供常规更新;

  • focal-security 提供安全更新;

  • focal-backports 提供从较新 Ubuntu 版本回移植的软件包;

  • mainrestricteduniversemultiverse 表示不同的软件仓库组件。

二、更换软件源之前先备份

修改系统配置文件之前,建议先进行备份。这样即使新的镜像配置出现问题,也可以快速恢复。

执行:

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

确认备份文件存在:

Bash
ls -l /etc/apt/sources.list*

如果后续需要恢复官方配置,可以执行:

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

备份这一操作看似简单,但在服务器环境中非常重要,尤其是通过远程 SSH 操作时,可以降低误修改导致系统无法更新的风险。

三、选择国内 Ubuntu 20.04 镜像源

国内有多个常用的 Ubuntu 镜像站,包括阿里云、清华大学、中国科技大学、网易等。

实际选择时不必过度追求某一个固定镜像。镜像站的网络质量、同步状态和访问速度可能随着运营商、地区以及时间发生变化,可以根据服务器所在网络环境进行选择。

1. 阿里云镜像源

常见配置如下:

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. 清华大学镜像源

清华大学镜像站也提供 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

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

同一台机器不建议同时混用多个第三方 Ubuntu 镜像。通常选择一个稳定镜像即可。

四、使用命令行更换 Ubuntu 20.04 软件源

对于服务器环境,直接编辑 sources.list 是最通用的方法。

首先打开配置文件:

Bash
sudo nano /etc/apt/sources.list

如果习惯使用 Vim:

Bash
sudo vim /etc/apt/sources.list

将原有的软件源内容替换为需要使用的镜像,例如阿里云:

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

保存之后退出编辑器。

使用 Nano 时,可以按:

Ctrl + O
Enter
Ctrl + X

五、刷新 APT 软件包索引

修改软件源后,不能直接认为系统已经完成切换,还需要重新获取软件包索引。

执行:

Bash
sudo apt update

如果软件源配置正确,终端中会看到类似:

Hit:1 https://mirrors.aliyun.com/ubuntu focal InRelease
Get:2 https://mirrors.aliyun.com/ubuntu focal-updates InRelease
Get:3 https://mirrors.aliyun.com/ubuntu focal-security InRelease

最后如果出现:

Reading package lists... Done

通常说明软件包索引更新成功。

可以进一步查看 APT 是否能够正常安装软件:

Bash
sudo apt install curl

如果能够正常解析依赖并下载软件包,说明新的软件源基本可以正常使用。

六、使用命令批量替换软件源

如果只是临时更换镜像,也可以使用 sed 批量修改。

例如将常见的官方地址替换成阿里云:

Bash
sudo sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list

如果配置中使用的是 HTTPS 官方地址,也可以针对实际内容进行替换。

修改完成后检查:

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

确认地址已经发生变化,再执行:

Bash
sudo apt update

需要注意的是,批量替换命令依赖原始配置的具体写法。如果软件源来自其他文件,或者地址格式不同,sed 不一定能够全部替换。

七、Ubuntu 20.04 软件源中的几个关键组件

软件源配置中的仓库组件并不是随意填写的。

例如:

main restricted universe multiverse

分别代表不同的软件包范围。

main

Ubuntu 官方正式维护的自由软件,属于系统核心软件仓库。

restricted

包含部分受到限制但系统运行可能需要的软件,例如某些硬件相关驱动。

universe

包含大量由 Ubuntu 社区维护的软件包,开发环境和服务器环境中经常会用到。

multiverse

包含许可证或其他原因导致无法完全按照 Ubuntu 自由软件政策维护的软件。

如果软件安装时提示找不到某个软件包,有时并不是镜像源失效,而是对应仓库组件没有启用。

可以通过以下命令检查:

Bash
sudo add-apt-repository universe

也可以检查 /etc/apt/sources.list 中是否包含:

universe

八、为什么更换国内源后仍然很慢

更换软件源后下载速度没有明显改善,并不一定代表配置错误。

首先检查当前实际使用的地址:

Bash
apt policy

也可以执行:

Bash
grep -R "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null

这个命令可以检查主配置文件和额外软件源目录。

Ubuntu 的部分第三方软件源并不存放在 /etc/apt/sources.list,而是在:

/etc/apt/sources.list.d/

例如:

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

如果某个第三方仓库仍然使用境外地址,执行 apt update 时依然可能受到网络影响。

此外,还需要考虑服务器所在机房的网络线路。如果服务器本身位于海外,那么切换国内镜像不一定能够带来明显优势。

九、出现 NO_PUBKEY 错误怎么办

如果执行:

Bash
sudo apt update

时出现类似:

NO_PUBKEY XXXXXXXX

说明 APT 在验证软件仓库签名时缺少相应的公钥。

这种情况下不要为了让更新命令通过而直接关闭 APT 的签名验证。

应该首先确认具体是哪个软件仓库出现问题,再根据该仓库官方提供的方式安装或更新签名密钥。

尤其需要注意,Ubuntu 官方仓库和第三方仓库的密钥管理方式可能不同,不建议随意从不可信网站下载 .gpg 或密钥文件。

十、出现 Release file 错误怎么办

如果执行 apt update 后出现:

The repository ... does not have a Release file

需要检查软件源中的发行版代号是否正确。

Ubuntu 20.04 对应:

focal

例如:

deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

如果误写成:

jammy

那么实际上对应的是 Ubuntu 22.04,而不是 Ubuntu 20.04。

因此,Ubuntu 20.04 的软件源不能简单套用其他 Ubuntu 版本的配置

可以通过:

Bash
lsb_release -a

查看当前系统版本。

也可以:

Bash
cat /etc/os-release

确认系统发行版信息。

十一、apt update 与 apt upgrade 的区别

更换软件源后,经常有人直接执行:

Bash
sudo apt upgrade

实际上更换源之后首先应该执行:

Bash
sudo apt update

apt update 的作用是从软件仓库获取最新的软件包索引信息,并不会直接升级已经安装的软件。

如果确认索引更新正常,再执行:

Bash
sudo apt upgrade

升级现有软件包。

如果需要处理依赖变化,可以根据实际情况使用:

Bash
sudo apt full-upgrade

生产服务器执行升级之前,应先确认业务兼容性,并做好必要的数据和配置备份。

十二、如何恢复 Ubuntu 官方软件源

如果国内镜像出现同步异常、软件包缺失或网络访问问题,可以恢复之前的备份。

执行:

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

然后:

Bash
sudo apt update

如果没有备份,也可以重新配置 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-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse

恢复完成后再次运行:

Bash
sudo apt update

十三、Ubuntu 20.04 生命周期问题需要注意

Ubuntu 20.04 属于较早版本的 Ubuntu LTS。普通维护周期结束后,软件源和安全更新策略会发生变化。

如果长期运行 Ubuntu 20.04 服务器,应确认当前系统是否仍处于对应的维护支持范围。对于已经进入扩展维护阶段的环境,继续使用普通镜像源时可能遇到软件包仓库变化等问题。

因此,在生产环境中不能只关注“国内源速度快不快”,还应该同时考虑系统版本、官方支持周期、安全更新以及业务软件兼容性。

如果服务器允许升级,建议结合业务情况规划向更新的 LTS 版本迁移,而不是长期停留在旧版本上。

十四、桌面版也可以通过图形界面更换

Ubuntu 20.04 Desktop 用户还可以通过“软件和更新”工具修改下载服务器。

打开应用菜单,搜索:

Software & Updates

进入后找到 Ubuntu Software 选项卡,在 Download from 中选择其他服务器。

部分系统可以通过“其他...”选择具体的镜像地址。

选择完成后关闭窗口,系统通常会提示重新载入软件包信息。确认执行后,APT 就会使用新的软件源。

对于服务器或者没有图形桌面的 Ubuntu 20.04,直接编辑 /etc/apt/sources.list 更方便。

十五、推荐的一套完整操作流程

如果目标只是把 Ubuntu 20.04 切换到国内镜像,可以按照下面的顺序执行:

Bash
# 1. 备份原始配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 2. 编辑软件源
sudo nano /etc/apt/sources.list

填入:

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

然后执行:

Bash
# 3. 更新软件包索引
sudo apt update

# 4. 检查软件源
apt policy

# 5. 根据需要升级系统
sudo apt upgrade

如果 apt update 能够正常完成,并且下载地址已经变成所选择的国内镜像,基本就完成了软件源切换。

Ubuntu 20.04 更换国内软件源的核心并不复杂,关键是保持发行版代号正确、修改前做好备份,并确保 focalfocal-updatesfocal-security 等仓库配置完整。遇到更新失败时,也不要只盯着下载速度,还需要检查 /etc/apt/sources.list.d/ 中的第三方仓库、GPG 签名、网络连接以及系统版本支持状态。

对于长期运行的服务器,建议固定记录当前软件源配置,并在系统升级前保留可恢复的备份。这样既能获得更稳定的软件包下载速度,也能减少因错误修改 APT 配置而导致系统维护中断的风险。