解决Windows有网络连接但是显示“无Internet”的问题

引子最近电脑莫名其妙地出现了可以正常上网,但是任务栏上的网络图标显示“无Internet”的问题。如果不使用微软账户的话,这个问题其实没什么影响,但是如果使用微软账户,这个问题会导致所有与微软账户相关的软件无法登录,比如Microsoft365和Outlook邮箱。在网上找了很多帖子都没有解决,最终通过相关帖子的学习提供一种解决该问题的思路,如果有用,请不要吝惜你的点赞????如果你有更好的解决方案,欢迎评论分享思路要想知道这个问题的原因,首先我想到的是需要了解Windows网络感知的原理。通过查

大家好,又见面了,我是你们的朋友全栈君。

引子

最近电脑莫名其妙地出现了可以正常上网,但是任务栏上的网络图标显示“无Internet”的问题。如果不使用微软账户的话,这个问题其实没什么影响,但是如果使用微软账户,这个问题会导致所有与微软账户相关的软件无法登录,比如Microsoft 365和Outlook邮箱。
在网上找了很多帖子都没有解决,最终通过相关帖子的学习提供一种解决该问题的思路,如果有用,请不要吝惜你的点赞?如果你有更好的解决方案,欢迎评论分享

思路

要想知道这个问题的原因,首先我想到的是需要了解Windows网络感知的原理。通过查找相关资料,发现Windows系统中的网络感知功能是通过获取特定服务器的请求来实现的,具体可以参考[1],其中介绍了Windows 7中的网络感知功能实现方式,在Windows 10中,实现方式类似,但是服务器地址变了。进入注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet路径可以查看具体服务器地址。
根据[1],下面简要介绍一下在我的机器上,网络感知的基本过程:

  1. dns.msftncsi.com 发送 DNS 查找请求。此 DNS 地址应解析为 131.107.255.255。
  2. 请求 http://www.msftconnecttest.com/connecttest.txt,如果网络正常,则此文件是纯文本文件,仅包含文本 Microsoft Connect Test

如果上面过程1不正常,则提示“无法访问Internet”,如果1正常2不正常,则提示需要进行身份验证。

尝试

检查dns解析

大致了解原理后开始尝试问题的解决办法,我的思路首先是检查 dns.msftncsi.com是否被正确的解析了,通过Ping检查:

ping dns.msftncsi.com

结果返回:

正在 Ping dns.msftncsi.com [131.107.255.255] 具有 32 字节的数据:
请求超时。

说明正确的解析了 dns.msftncsi.com,ping不通的原因是 dns.msftncsi.com不会响应Ping请求[2]

检查网页请求

在确认上一步没有问题之后,点击http://www.msftconnecttest.com/connecttest.txt查看是否能名获取正确的文本内容,测试发现文本内容也可以正确获取。到这一步就可以排除网络和连接的问题了。

最终方法

在排除网络的原因之后,我猜测可能是驱动的原因,在禁用网络适配器并重新启用后,网络就可以正常连接了。

总结

这个问题的解决其实带有一定的偶然性,但是在解决问题的过程中学习了Windows的网络感知原理,特此记录分享。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126345.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号