无法连接到某些(并非全部)存储库服务器

无法连接到某些(并非全部)存储库服务器

我在更新 Ubuntu 12.04 服务器系统时遇到了一些棘手的问题。
当我发出以下命令时(以 root 身份):

apt-get update

...什么也没有发生,过了一会儿,apt-get 放弃并出现大量错误,例如:

W: Failed to fetch http://nl.archive.ubuntu.com/ubuntu/dists/precise-updates/restricted/i18n/Translation-en  Unable to connect to nl.archive.ubuntu.com:http:

下面是 stdout 的副本。请注意,我没有等待命令完成,而是用CTRL-中止了它C,以节省一些时间

root@webserver:/var/log/apt# apt-get update
0% [Connecting to nl.archive.ubuntu.com (213.136.29.218)]^C

我的 sources.list 如下所示:

root@webserver:/var/log/apt# cat /etc/apt/sources.list
###### Ubuntu Main Repos
deb http://nl.archive.ubuntu.com/ubuntu/ precise main restricted 
deb-src http://nl.archive.ubuntu.com/ubuntu/ precise main restricted 

###### Ubuntu Update Repos
deb http://nl.archive.ubuntu.com/ubuntu/ precise-security main restricted 
deb http://nl.archive.ubuntu.com/ubuntu/ precise-updates main restricted 
deb-src http://nl.archive.ubuntu.com/ubuntu/ precise-security main restricted 
deb-src http://nl.archive.ubuntu.com/ubuntu/ precise-updates main restricted 

我的/etc/apt.apt.conf是空的,没有使用代理

root@webserver:/var/log/apt# cat /etc/apt/apt.conf
root@webserver:/var/log/apt# echo $http_proxy

root@web-octoplus01:/var/log/apt# echo $HTTP_PROXY

root@web-octoplus01:/var/log/apt# 

使用美国镜子给出相同的结果。美国镜像的特殊之处在于,每尝试三次它就会突然成功!(只有 91.189.91.14 地址有效,其余地址都会导致相同的错误)

root@web-octoplus01:/var/log/apt# host us.archive.ubuntu.com
us.archive.ubuntu.com has address 91.189.91.14
us.archive.ubuntu.com has address 91.189.91.15
us.archive.ubuntu.com has address 91.189.91.13
us.archive.ubuntu.com has IPv6 address 2001:67c:1562::15
us.archive.ubuntu.com has IPv6 address 2001:67c:1562::13
us.archive.ubuntu.com has IPv6 address 2001:67c:1562::14

是不是因为我的服务器在 Ubuntu 上被列入了不一致的黑名单?
我没看到什么?

答案1

由于 IPv4 版本可以工作,您可以在 /etc/gai.conf 文件(控制目标地址选择)中将到目标节点的连接类型的优先级从 IPv6 更改为 IPv4。

取消文档中的以下内容的注释:

优先级 ::ffff:0:0/96 100

正如文件中所述,这样,喜欢 IPv4 连接的站点可以使用 IPv4 而不是 IPv6 进行连接。

相关内容