解决ubuntu无法连接上security.ubuntu.com:80 (185.125.190.81)的问题
前言
本来因为项目需要又要使用虚拟机,但这次发现问题百出,出现了security连接不了的问题。根据我一步一步的排查,终于解决了这个问题。
问题原因分析
导致这个错误的原因可能有以下几种,我们从最简单、最常见的开始尝试:
- 网络连接问题:你的本地网络无法访问外部互联网。
- 临时服务器问题:security.ubuntu.com 的某个特定镜像服务器暂时不可用或过载。
- DNS 解析问题:你的系统无法正确地将域名 security.ubuntu.com 解析为 IP 地址。
- 软件源配置问题:系统中配置的软件源(sources.list)指向了一个速度慢或已下线的镜像服务器。
- 防火墙或代理设置:系统或网络中的防火墙、代理服务器阻止了访问。
寻找问题
1. 检查基本网络连接
首先,确认你的电脑可以正常上网,使用国内的网站测试:
ping -c 4 baidu.com
如果不通:说明是你的本地网络问题。请检查你的网线、Wi-Fi连接、路由器等。
如果可以通:说明网络是通的,问题出在其他地方,请继续下一步。
zjr@zjr-virtual-machine:~$ ping -c 4 baidu.com PING baidu.com (220.181.7.203) 56(84) bytes of data. 64 bytes from 220.181.7.203: icmp_seq=1 ttl=128 time=51.4 ms 64 bytes from 220.181.7.203: icmp_seq=2 ttl=128 time=55.4 ms 64 bytes from 220.181.7.203: icmp_seq=3 ttl=128 time=55.4 ms 64 bytes from 220.181.7.203: icmp_seq=4 ttl=128 time=55.2 ms --- baidu.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 21129ms rtt min/avg/max/mdev = 51.426/54.380/55.433/1.707 ms
网络是通的,这说明虚拟机可以正常访问互联网。问题出在通往特定 Ubuntu 服务器的路上。既然基础网络是通的,我们就继续顺序检查。
2. 尝试直接 Ping 该服务器
看看是域名解析问题还是根本路由不通。
ping -c 4 security.ubuntu.com
如果 ping 不通(显示 unknown host 或 100% 丢包):这很可能是 DNS 解析问题 或者那个特定IP (185.125.190.81) 的服务器对你当前的网络环境连接不佳。如果能 ping 通:说明连接是建立的,但可能在 apt update 使用的 HTTP 端口(80)上被阻止了。继续下一步。
zjr@zjr-virtual-machine:~$ ping -c 4 security.ubuntu.com PING security.ubuntu.com (185.125.190.81) 56(84) bytes of data. --- security.ubuntu.com ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3065ms
很好!这个测试结果非常清楚地指明了问题所在。ping baidu.com 是通的:证明虚拟机网络连接和基础互联网访问完全正常。ping security.ubuntu.com 100% 丢包:证明网络无法直接访问Ubuntu的官方安全服务器(185.125.190.81)。
解决方案更换国内镜像源
1. 备份当前的软件源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2. 替换软件源
首先,你需要知道你的Ubuntu版本代号,请运行以下命令查看:
lsb_release -c
你会看到类似 Codename: jammy 或 Codename: focal 的输出。
然后,根据你的版本代号,选择以下对应的国内源内容,全部替换掉 /etc/apt/sources.list 文件里的所有内容。
3. 编辑软件源列表文件
我们将使用 nano 文本编辑器:
sudo nano /etc/apt/sources.list
方案A:使用阿里云镜像
如果你的系统是 Ubuntu 22.04 (Jammy Jellyfish),请使用以下内容:
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
如果你的系统是 Ubuntu 20.04 (Focal Fossa),请将上面所有 jammy 替换为 focal。
方案B:使用清华大学镜像
同样,根据你的版本替换 jammy 或 focal。
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
4. 保存并退出编辑器
在 nano 编辑器中:
按 Ctrl + O 来写入(保存)。
按 Enter 确认文件名。
按 Ctrl + X 退出。
当然你也可以使用此方法:
sudo bash -c 'cat > /etc/apt/sources.list << EOF
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF'
5. 更新软件列表
最后,执行更新命令,现在它应该会从国内的镜像服务器快速下载信息:
sudo apt update