Windows 10 – 提示“无Internet” 却可以上网 解决 Outlook 无法登录问题

作者: lesca 分类: Troubleshoot,Tutorials,Windows 发布时间: 2021-10-10 18:01

引言

最近,访问外网出现不稳定的频率有所提升,随之而来的是 Windows 10 客户端 和 Office 365 客户端也出现了奇奇怪怪的问题:

  • Windows 10 右下角显示“地球”图标,并提示“无Internet”,但是实际上国内网站都正常访问。
  • Office 365 客户端无法登录,Outlook 无法收发邮件,其登录依赖于上述检测结果

Windows 10 是如何判断是否有互联网访问的

Windows 10 检测是否有互联网访问,通过一种叫做 NCSI (Network Connection Status Indicator) 的检测机制,当网卡连接后,会发起“主动”检测,检测该URL的可访问性:

如果该文件无法获得,则认定为“无Internet”。此时,如果用户手动访问以下地址,则有机率被检测到,并认为网络恢复。这种方式称为“被动”检测机制。

该链接会重定向到MSN网站。

原因

如果出现“地球”图标后,你可以手动访问这个链接:http://www.msftconnecttest.com/connecttest.txt
目前,我的测试结果是,WebKit内核的浏览器,大约5次中有一次可以访问;IE浏览器,可能因为缓存的原因,始终无法访问。

这意味着,Windows判断是否有外网,成为了概率问题。
有趣的是,无法访问connecttest.txt时,出现了”Connection RESET”的提示,说到这里,大家应该清楚是什么原因了。

解决方法

既然知道了工作原理,那么就好解决了。
一句话,自己架设一台web服务器,托管connecttest.txt文件,并将域名 www.msftconnecttest.com 重定向到该服务器IP。

我已经完成了,这里公布下我的IP,修改hosts如下即可:

13.94.56.171 www.msftconnecttest.com

如果有条件的话,可以在自己的DNS服务器上建A记录,一次性解决所有客户端的问题。

安全提示

如果错误地设置connecttest.txt文件可以导致 WIN10 无法进行“主动”验证,从而自动转为“被动”认证,这种情况下,在网络连接图标附近会弹出用户点击验证,一旦用户点击,将会打开浏览器,进行“被动”验证。
黑客可以利用这一特性,将 redirect 设置为一个精心设计的网址,如果浏览器存在 0-day 漏洞,则可能产生安全问题。
如果使用本人托管的验证服务,redirect页面是一个404页面。

感言

本应该微软通过CDN或者架设冗余服务器解决的问题,却要用户来解决。

版权声明

本文出自 Lesca 技术宅,转载时请注明出处及相应链接。

本文永久链接: https://lesca.me/archives/windows10-no-internet-but-there-is.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

Leave a Reply

Your email address will not be published. Required fields are marked *