卡在0% [等待头部信息]

在谷歌上搜索这个错误,似乎很多人都遇到了这个问题。 apt-get upgrade0% [waiting for headers] 处卡住,apt-get install apache2 也在 0% [waiting for headers] 处卡住。一些 apt-get 命令可以正常工作,但只有特定的软件包。
有什么想法吗?我不认为这是慢镜像源的问题,因为我已经使用了很长时间,百分比还是停留在0%。我已经编辑过 sources.list,但当出现这个问题时,我删除了添加的行,但没有任何改变。
任何线索都将非常有用。

您的互联网连接已断开... - αғsнιη
阅读与MTU相关的答案,可能会有帮助。 - Eslam Shapsough
我已经尝试了上面的所有解决方案,但都没有起作用。我甚至尝试在命令提示符下重新启动,但问题依然存在,进度条永远停留在0%。这是一个严重的问题,因为它阻碍、减慢甚至阻止用户安装和运行程序或应用。我从未见过在Ubuntu 14.04中发生这种情况。我不认为这是因为网络连接的问题,因为每当出现问题时,我都会通过访问不同的网站来检查我的浏览器,并且能够正常上网。我认为这是Ubuntu 16.04中的一个错误,需要尽快修复。 - Plutarc
1对我来说,这是因为我连接到了我的工作VPN - 例如无法连接到deb.nodesource.com。断开VPN连接 - 没问题。再次连接VPN - 问题出现。这可能不是每个人的问题源,但如果你正在使用VPN并且遇到这个问题,请尝试断开连接。(不能发布答案,因为声望不够) - drkvogel
我同意@drkvogel的观点。一旦我关闭了VPN,就能迅速、轻松地获得结果。由于声望不够,我也无法发帖。 - Casivio
5个回答


2在ssh上如何做到这一点有什么想法吗? - Thomas Clayson
2你需要编辑/etc/apt/sources.list文件,将其指向一个不同的镜像源。 - tumbleweed

最简单的方法是按照以下命令进行操作:
sudo apt-get clean

&

sudo apt-get update

那么

sudo apt-get install <package_name>

干杯
如果有效,请告诉我

1对我来说有效。 - igauravsehrawat
9对我没用。 - isomorphismes
@isomorphismes 你能详细描述一下吗?也许是错误或者提供一些截图。 - igauravsehrawat
我在这里发布了问题:http://askubuntu.com/questions/439829/what-is-ubuntus-default-web-proxy-server - isomorphismes
@isomorphismes 我猜这是一个不同的问题,似乎是代理设置的错误配置。 - igauravsehrawat
1@iguarav 可能也可能不是,取决于下一个谷歌搜索者... - isomorphismes

我不得不。
sudo apt-key update
sudo apt-get update

从manpages中:
apt-key用于管理apt用于验证软件包的密钥列表。使用这些密钥进行身份验证的软件包将被视为可信任的。

1apt-key不能神奇地生成HTTP响应。 - Chai T. Rex
@ChaiT.Rex 它确实更新了钥匙环,这解决了我的问题。 - Stiin
钥匙扣并不是0% [waiting for headers]的问题所在。0% [waiting for headers]的问题在于HTTP连接已经停滞。重新尝试命令将会启动一个新的HTTP连接,可能不会卡住。这就是你解决0% [waiting for headers]具体问题的方法(再次运行sudo apt-get update)。在HTTP连接完成后,当检查下载完成时,密钥才会参与到这个过程中。 - Chai T. Rex
在Ubuntu 22(WLS)上对我有效。 - dfcorbin

如果您正在使用代理服务器并且在用户环境中设置了这些选项,请尝试以下操作:
sudo -E apt update

以root身份运行命令,但使用当前用户的环境。

(只是重新发布,因为原帖莫名其妙地被删除了)
本周我注意到一个在数据中心运行了10年的虚拟机上出现了这个问题(在此期间通过许多Ubuntu LTS版本进行了升级)。
我运行了tcpdump来记录对/etc/apt/sources.list中URL的请求,但是当我运行apt-get update时,没有看到任何请求。
例如,
 tcpdump -i eth0 host archive.ubuntu.com

如果我尝试使用wget从主机获取,它可以正常工作。
例如。
wget archive.ubuntu.com/

最终我发现,当我的虚拟机在2009年首次激活时,ISP在/etc/apt/apt.conf中为apt设置了代理。
Acquire
{
  http 
  {
      Proxy "http://apt2.memset.net:3128";
  };
};

显然,代理最近停止正常工作。
我从我的/etc/apt.conf中删除了上面的代码块,恢复了正常。