为什么电脑总是说我没连上网,以及要怎么解决

}OIGTRJOCY499$JQ)5W4YTQ.jpg

如果只想要解决方法就直接看文章最后一部分!!!

背景

不知道为什么,最近无论是在家还是在学校,电脑连上网络之后总是显示“小地球”,也就是无法连接互联网的图标。然而实际上,我却可以正常使用各种网站和软件,甚至包括微软自家的 Skype。今天,我在群里问了其他同样使用 Windows 10 的人,他们也表示遇到了这个问题。

挖掘原因

由于现在的 Android 和 iOS 都内置一个用于检测设备是否已连上互联网的功能,习惯上叫做 Captive Portal Detection(登录门户检测)。因为,你连接一些免费 Wi-Fi的时候,手机可能会弹出一个登录界面。这个登录界面就叫做 Captive Portal(登录门户)。

我很快就往这个方面联想:电脑系统 Windows 是否也包含这样一个功能呢?

其实根本不需要思考就能得到答案啊,我现在不就是被电脑说我没连上互联网吗?没有这种功能,系统就会直接告诉我,我已经连接上了网络。只是,因为这个功能没有官方名称,而且,就连!计算机!专业!的人都不!一!定!知道这玩意的存在,我找不到太多关于这个功能的描述。

根据 Microsoft 官方网站英文站点上的一篇文章,Windows 会在连接网络的时候进行“一系列检测”以确定系统已经连接到互联网。然后他们非常自豪地将这个过程称作“Active Network Probing(活跃网络探测)”!!!!!!!!!

看来,Windows 显示网络“无法连接到 Internet”,就是因为“活跃网络探测”无法连接到 Microsoft 的检测网址!

有什么影响?

你可能会觉得,不就是图标显示的问题而已吗,对我正常使用网络没什么影响吧?错!外国的安卓手机(例如 Pixel)由于使用 Google 的检测网址,在中国连接 Wi-Fi 时会因为连不上检测网址而提示没有网络连接,而且断开连接之后就不会再自动重连了(因为“网络质量不佳”)。Microsoft Windows 也采用一样的策略:如果 Wi-Fi 无法连接互联网,断开后就不会再自动连接回去,而且邮件、Skype等后台刷新功能也会被停止。

那你倒是百度啊!!!!

之前,我问别人这方面的配置在哪里,他说,在注册表

然后我问他,到底在注册表的哪里啊。他说:“你不会用百度吗!!!!!

这种东西,连个官方的英文名都没有,更毋论中文名了,你叫我百度,我输什么???

没办法,DH 作为新时代优秀青年,就是得肩负“连要搜什么都不知道就要开始搜”的时代重任

结果到最后还真的能整合出完整的解决方案,没想到吧?

虽然对于我来说,需要花半个小时的时间才能将问题搞清楚,但是,对于你来说,或许只要双击导入注册表就能解决问题了。

原理

“活跃网络探测”的配置注册表位于以下目录:

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet

当 Windows 连上了一个网络的时候,它会先向 DNS 服务器发出查询“dns.msftncsi.com”的指令,确认结果是否为“fd3e:4f5a:5b81::1(ipv6)”或“131.107.255.255(ipv4)”,如果不是的话,则提示“无法连接到 Internet”,不然则进行下一步。

在第二步中,Windows 10 会以GET方式访问http://www.msftconnecttest.com/redirect,确认内容是否为“Microsoft Connect Test”,如果不是,则提示无法联网或者弹出“需要登录”的警告。

然而,国庆节过后,“不知道为什么”,这个网址被“连接已重置”了,然后系统就会认为网络没连上了。

解决方案

如果你是直接跳转过来的,可以点击这里下载注册表(在 Chrome 上,你需要右键选择“链接另存为…”下载),然后双击导入(需要管理员权限),重新连接网络,问题通常就解决了。

这个解决方案是使用旧版 Windows 的检测网址,实测可用。如果你想要了解更进阶的解决方案,或者想要使用更靠谱的 Captive Portal Detection URL,例如 Apple 的,可以继续往下看。

reg0.jpg
在这个注册表目录中,“ActiveDnsProbeHost(V6)”代表 DNS 探测域名,解析的时候会检测是否与“ActiveDnsProbeContent(V6)”相对应。所以,这里要使用一个始终解析为单一 IP 的域名,并且将该域名指向的 IP 记录到注册表上。“ActiveWebProbeHost(V6)”与“ActiveWebProbeContent(V6)”之间的关系以此类推,只不过后者是网页的内容。

reg1.jpg
将注册表值改成如上图所示的,就可以解决目前的问题,但是这里面还是使用了 Microsoft 的服务器。所以如果要使用 Apple 的联网检测方案,事情会变得有点复杂(因为这不是为 Windows 设计的),但是你可以尝试自己手动推敲设置。

如果你想要自己搭建检测站点,那也不难,只要让你的网页服务器在设置好的 URL 上显示固定内容就可以了。但是,Microsoft 花了那么多工夫维持检测服务器的稳定,结果却还是被“连接已重置”了,说明自己搭建检测站点真的没那么轻松!

下面我会列出和这个话题相关的关键词,如果搜索引擎哪天好心收录了我的网站,或许就可以轻松找到解决这个问题的方法了!

关键词:小地球图标, Captive, Portal, URL, 注册表, 无 Internet.

评论已关闭