每当我运行 apt 命令时,我都会收到以下错误。请注意,这是数据中心中的虚拟机
Err:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Connection failed [IP: 91.189.91.39 80]
Err:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
Connection failed [IP: 185.125.190.36 80]
Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Connection failed [IP: 185.125.190.39 80]
Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Connection failed [IP: 91.189.91.39 80]
从虚拟机 ping 通该 IP 成功
ping 91.189.91.39
PING 91.189.91.39 (91.189.91.39) 56(84) bytes of data.
64 bytes from 91.189.91.39: icmp_seq=1 ttl=41 time=219 ms
64 bytes from 91.189.91.39: icmp_seq=2 ttl=41 time=221 ms
64 bytes from 91.189.91.39: icmp_seq=3 ttl=41 time=220 ms
64 bytes from 91.189.91.39: icmp_seq=4 ttl=41 time=219 ms
curl 连接也成功了。
curl http://archive.ubuntu.com/ubuntu/dists/bionic/InRelease
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Origin: Ubuntu
Label: Ubuntu
Suite: bionic
Version: 18.04
Codename: bionic
Date: Thu, 26 Apr 2018 23:37:48 UTC
Architectures: amd64 arm64 armhf i386 ppc64el s390x
Components: main restricted universe multiverse
Description: Ubuntu Bionic 18.04
MD5Sum:
32a92a5c20f378d42dd2d2f4f28f6637 628836439 Contents-amd64
53c6a594819b51a5755f88b45d1eff7f 37766986 Contents-arm64.gz
cd7bf6d50403da4348ee48138eace986 585939706 Contents-ppc64el
af42d07307c5d1398c75e28986b36509 616261664 Contents-i386
.......so on
我不知道发生了什么,这个问题对我来说一直是一个难题。有人能就下一步该怎么做提出建议吗?
答案1
似乎是由于网络异常导致 apt 被禁止。解决方法如下如何在 Ubuntu 18.04 上设置 apt 的代理那是成功的。
创建 apt 代理配置文件
apt
加载 下的所有配置文件/etc/apt/apt.conf.d
。您可以在此处为您的代理专门创建配置,并将其与所有其他配置分开。
创建一个名为的新配置文件代理配置文件。
sudo touch /etc/apt/apt.conf.d/proxy.conf
在文本编辑器中打开 proxy.conf 文件。
sudo nano /etc/apt/apt.conf.d/proxy.conf # or vi instead of nano if you prefer vi
添加以下行来设置您的 HTTP 代理。
Acquire::http::Proxy "http://user:[email protected]:port/";
添加以下行来设置您的 HTTPS 代理。
Acquire::https::Proxy "http://user:[email protected]:port/";
保存更改并退出文本编辑器。
您的代理设置将在下次运行 apt 时应用。
简化配置
还有另一种定义代理设置的方法。虽然类似,但可以消除一些冗余。
就像第一个示例一样,在目录下创建一个新文件/etc/apt/apt.conf.d
,然后添加以下行。
Acquire {
HTTP::proxy "http://127.0.0.1:8080";
HTTPS::proxy "http://127.0.0.1:8080";
}
答案2
我没有代理。因此,我删除了 Proxy.conf 提供的内容。这解决了我尝试获取更新时出现的所有错误。问题解决了。