每次运行sudo apt update都会出现Clearsigned文件无效的错误,显示为'NOSPLIT'(是否需要网络验证?)

所以我在我的大学网络上,需要在开始使用互联网之前登录浏览器。我成功地完成了登录,但是在干净安装的Ubuntu上,当我尝试执行sudo apt update时,我会得到以下输出:
$ sudo apt update
Get:1 http://in.archive.ubuntu.com/ubuntu xenial InRelease [2,847 B]
Err:1 http://in.archive.ubuntu.com/ubuntu xenial InRelease                    
Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [2,854 B]    
Err:2 http://security.ubuntu.com/ubuntu xenial-security InRelease             
...
Get:3 http://in.archive.ubuntu.com/ubuntu xenial-updates InRelease [2,855 B]   
Err:3 http://in.archive.ubuntu.com/ubuntu xenial-updates InRelease
...
Get:4 http://in.archive.ubuntu.com/ubuntu xenial-backports InRelease [2,857 B]
Err:4 http://in.archive.ubuntu.com/ubuntu xenial-backports InRelease
Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
Fetched 11.4 kB in 0s (18.3 kB/s)
Reading package lists... Done
E: Failed to fetch http://in.archive.ubuntu.com/ubuntu/dists/xenial/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
...
E: Some index files failed to download. They have been ignored, or old ones used instead.

但是当我运行 wget http://in.archive.ubuntu.com/ubuntu/dists/xenial/InRelease 时,我得到了这个成功的输出:
2017-04-01 05:34:57  http://in.archive.ubuntu.com/ubuntu/dists/xenial/InRelease
Resolving in.archive.ubuntu.com (in.archive.ubuntu.com)... 91.189.88.162, 91.189.88.149, 91.189.88.152, ...
Connecting to in.archive.ubuntu.com (in.archive.ubuntu.com)|91.189.88.162|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 246846 (241K)
Saving to: ‘InRelease.3’

InRelease.3         100%[===================>] 241.06K   110KB/s    in 2.2s    

2017-04-01 05:35:00 (110 KB/s) - ‘InRelease.3’ saved [246846/246846]

明显地,我可以通过浏览器和wget访问互联网,但是当我执行sudo apt(或apt-get)update时,出现了这个错误。

附注:这个问题与其他帖子不同,因为它们的解决方案似乎在我的情况下不起作用。

据我所知,这个问题只发生在我身上,而不是学校网络上的其他人。尽管按照说明设置了网络,仍然会出现这个问题。如果有更多帮助,将不胜感激。

编辑:事实证明,我们学院中有50%的人面临这个问题,而另外50%的人尽管硬件没有问题,在上周之前也进行了sudo apt update,但并未遇到此问题。感谢@David Foerster在整个过程中对我的帮助。
目前,该问题已经上报给我们学院的网络部门 :)

wget -qO- http://in.archive.ubuntu.com/ubuntu/dists/xenial/InRelease | head 的输出是什么? - David Foerster
你在系统上配置了HTTP代理服务器或者专门为Apt配置了吗?系统是如何连接到互联网的?通常这种错误是由于代理配置错误或者代理服务器运行异常引起的。 - David Foerster
问题目前似乎只存在于特定的Apt上,而且仅限于学院的WiFi。这是因为Wget也能够无缝运行。 - Sparker0i
1这已经是第三次了,请你能否更换Ubuntu软件源镜像并尝试重现这个问题?如果这只在你们学校的网络中发生,我建议你联系当地网络管理员寻求支持,因为他们了解本地网络基础设施和HTTP代理服务器。谢谢。 - David Foerster
先生,请不要生气。我是一个 Linux 新手,试图进入 Ubuntu 的世界。我已经粘贴了另一个 pastie,输出结果很好,就像之前的那个一样。 - Sparker0i
我并不生气。如果给你的感觉是这样的,那我很抱歉。我只是想以一些紧迫性来提醒你我的请求,因为你似乎在过去两次中忽略了它。无论如何,谢谢你的更新。现在使用不同的Ubuntu软件源镜像,sudo apt-get update 的输出是什么? - David Foerster
与之前相同,使用NOSPLIT的东西。 - Sparker0i
2给投票者的通知:根据OP的回答,问题与上游网络问题有关。 - David Foerster
1我认为楼主的意思是他们在自己的环境中使用Ubuntu遇到了困难。你可以说问题出在环境上,但也可能存在一种有效的Ubuntu解决方案(对于一些有相似症状的人来说确实是如此)。 - Brent Bradburn
原来仅仅设置代理是不够的,因为sudo默认情况下不会应用用户的环境变量。请尝试以下方式:sudo --preserve-env apt update。另外,请记得在每次更改代理后打开一个新的终端窗口。 - Brent Bradburn
@nobar,谢谢你的回复。但现在不仅是我,任何连接学院WiFi的人都遇到了这个问题。而且这个问题存在于多个Ubuntu版本中。他们已经封锁了apt端口。 - Sparker0i
我投票支持重新打开这个问题,因为它确实与Ubuntu有关。这里的回答(包括楼主自己的回答)将帮助人们理解这个错误信息通常代表着什么意思。 - Eliah Kagan
在我重现这个问题时,发现是因为日期和时间设置错误,如果您正在使用HTTPS注册表。 - Mansur Ul Hasan
6个回答

我遇到了同样的问题。原来apt-get使用/etc/apt/apt.conf来设置代理(我的浏览器已经设置好了)。 将apt.conf与我的浏览器代理设置保持一致解决了这个问题。
/etc/apt$ cat apt.conf

Acquire::http::proxy "http://<proxy>";
Acquire::https::proxy "https://<proxy>";
Acquire::ftp::proxy "ftp://<proxy>";
Acquire::socks::proxy "socks:<proxy>";

2请注意:您必须在16.04版本中_创建_此文件(该文件之前不存在)。 - Brent Bradburn
这显然是一个需要解决的错误。对于受影响的人来说,这是一个重大的问题。 - Brent Bradburn
你可能只需要http行。并且不要忘记端口号:http://<name>:<port> - Brent Bradburn
是的!我在我的Ubuntu WSL上要做的第一件事是运行echo Acquire::http::proxy \"http://$proxy:$port\";" | sudo tee -a /etc/apt/apt.confecho Acquire::https::proxy \"https://$proxy:$port\";" | sudo tee -a /etc/apt/apt.conf;然后我就可以使用apt-get了。 - kayleeFrye_onDeck
2@brian 我应该写什么来替代<proxy>? - TSR
顺便说一句,你也可以检查/etc/apt/apt.conf.d/00proxy,它做的是同样的事情。 - CodeMonkey
@CodeMonkey 在Linux Mint上怎么办?在同一个目录下没有00proxy文件。 - David G

原来是我们学院网络后端的问题。它仍然存在问题,其他WiFi网络正常运行。

4这对任何人都没有帮助。你们学院网络出了什么问题? - Musa Haidari
嗯,我不能说是什么,但他们已经阻止了来自apt的任何请求,因为当我打开存储库URL时,它可以正常工作。 - Sparker0i
@MusaHaidari 这真的帮了我大忙 :D - Aaron John Sabu
当我们在谷歌搜索时,没有人需要这样的回答。 - undefined

当你遇到这样的问题时,首先确保DNS能够解析链接,我认为这可能是问题所在。
sudo vim /etc/resolv.conf

确保您使用谷歌DNS:
nameserver 8.8.8.8

作为第一个要检查的名称服务器。重新启动networking.service,然后您就可以继续了。

2根据问题来看,名称解析是正确的(将列出的IP地址与host in.archive.ubuntu.com 8.8.8.8的输出进行比较),但HTTP代理设置有问题。-1 - David Foerster
2在我的情况下,这并没有解决问题。我还没有找到问题所在,但 DNS 不是原因。我不需要使用代理,apt.conf 中也没有设置代理。 - user323094
解决了我的问题。 - hzh
这个不起作用 - NMukama

我知道这是一个三年前的帖子,但是我想分享我的解决方案,以便将来有人能够受益。
我也遇到了同样的问题,结果发现是因为超过了我的连接的流量限制。在浏览器上,我被重定向到了网络服务提供商的流量限制提醒页面,之后问题就解决了。

对我来说,这个错误信息还伴随着另一个错误信息:
E: Failed to fetch http://packages.microsoft.com/repos/code/dists/stable/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
E: The repository 'http://packages.microsoft.com/repos/code stable InRelease' is no longer signed.


这篇帖子提供了解决第二个问题的方法(基本上是禁用有问题的PPA),在修复第二个问题后,第一个问题也消失了。
然而,这并不是一个永久解决方案,因为来自被禁用的PPA的软件包将不再更新。

2那篇帖子通过简单地移除那些PPA来解决问题,但在我看来这并不是一个真正的解决方案。 - Patrizio Bertoni
1好观点,这更像是一个权宜之计,直到PPA解决了他们自己的问题。我会编辑答案以反映这一点。 - Sam De Meyer
这个仓库地址是错误的。根据https://wiki.debian.org/VisualStudioCode,正确的地址应该是"https://packages.microsoft.com/repos/vscode stable main",并且需要使用signed-by选项。 - lafka
官方文档中,repos/code是正确的仓库,但需要使用https。然而,错误仍然存在于https连接上。 - Paleo

由于某种原因,存储库的URL发生了变化:
  • 从:https://packages.microsoft.com/repos/vscode
  • 到:https://packages.microsoft.com/repos/code
所以将APT源更新为以下内容解决了我的问题:
deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/code stable main

来源