连接到 archive.ubuntu.com 花费的时间太长

Ahm*_*mad 50 apt networking

我有一个刚刚安装的 Ubuntu 11.10 服务器。现在,如果我尝试对 做任何事情apt-get,它会尝试连接到archive.ubuntu.com.. 它会停留在该[Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]阶段大约2 分钟,之后它实际上开始通信和下载东西...

最终它总是连接,但[Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]每次都在等待2 分钟!

我之前在 Ubuntu 11.10 上没有这个问题,在重新安装操作系统之后..

关于问题可能是什么的任何想法?

小智 88

我在 12.10 上通过编辑/etc/gai.conf并取消注释该行解决了这个问题:

#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96 100
Run Code Online (Sandbox Code Playgroud)

这使您可以保持启用 IPv6,但将优先顺序设置为首选 IPv4 而不是 IPv6。

  • 我不应该写 ty 作为评论,但我认为应该说你我的英雄 tytytytytyty (13认同)
  • 在 Ubuntu 14.04/ElementaryOS freya 上也得到了确认! (3认同)
  • 完美的!很有魅力! (2认同)
  • 对 Xubuntu 15.04 仍然有效 (2认同)

Ahm*_*mad 16

解决方案:

我解决了这个问题。正如 The Lord Of Time 指出的那样,我不得不禁用 IPv6 连接。

在终端中运行以下命令可以判断是否启用了 IPv6:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

0表示已启用,而1表示已禁用。

要从终端内禁用 IPv6,请输入以下内容:

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

重新运行第一个命令,应该是1现在。


Luk*_*uke 7

如果您只想修改 apt-get,则可以使用以下命令强制 IPv4:

apt-get -o Acquire::ForceIPv4=true update
Run Code Online (Sandbox Code Playgroud)

要使设置持久化,请在 /etc/apt/apt.conf.d/ 中创建文件 99force-ipv4。

sudoedit /etc/apt/apt.conf.d/99force-ipv4
Run Code Online (Sandbox Code Playgroud)

将以下内容放入其中:

Acquire::ForceIPv4 "true";
Run Code Online (Sandbox Code Playgroud)

保存文件,您就可以开始了。如果要强制使用 IPv6,请将文件名和设置中的 4 更改为 6。要在其中之一中进行选择,请使用快速方法进行测试,看看哪个效果更好。