Win10 无网络问题

Windows10 能上网但显示未连接网络,任务栏显示小地球图标。

之前用的是 Windows10 LTSC 2019, 最近升级了 Windows10 LTSC 2021. 就出现了右下角显示未连接网络的问题,但实际上是能够连接的。

原因、原理

问题都出在一个叫 ncsi 的东西上,这是微软用来检测网络状况的一个工具。从注册表中可以看到检测方式两种,一种是检测 dns 连通状况,另一种是检测网页连通状况。

1
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet

regedit

如检测DnsProbeHost的返回值是否等于DnsProbeContent.

检测 http://`WebProbeHost`/`WebProbePath`的返回值是否等于`WebProbeContent`

解决办法

1. 关闭检测功能(不推荐,不实用)

通过配置\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet下的EnableActiveProbing关闭这个检测功能。

据网友反馈,这样操作,一些应用依然会认为计算机没有联网而无法使用。

2. 使用之前的检测地址

微软在某次更新中,使用了新的检测地址。而有一段时间这个检测地址被国内网络屏蔽了,导致 windows 错误提示未连接到互联网。不过现在应该已经解除屏蔽了。

上方图片即为之前的检测配置,对照修改就可。

下面为导出的.reg注册表项,可复制粘贴保存为.reg文件打开导入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet]
"ActiveDnsProbeContent"="131.107.255.255"
"ActiveDnsProbeContentV6"="fd3e:4f5a:5b81::1"
"ActiveDnsProbeHost"="dns.msftncsi.com"
"ActiveDnsProbeHostV6"="dns.msftncsi.com"
"ActiveWebProbeContent"="Microsoft NCSI"
"ActiveWebProbeContentV6"="Microsoft NCSI"
"ActiveWebProbeHost"="www.msftncsi.com"
"ActiveWebProbeHostV6"="ipv6.msftncsi.com"
"ActiveWebProbePath"="ncsi.txt"
"ActiveWebProbePathV6"="ncsi.txt"
"CaptivePortalTimer"=dword:00000000
"CaptivePortalTimerBackOffIncrementsInSeconds"=dword:00000005
"CaptivePortalTimerMaxInSeconds"=dword:0000001e
"EnableActiveProbing"=dword:00000001
"PassivePollPeriod"=dword:0000000f
"StaleThreshold"=dword:0000001e
"WebTimeout"=dword:00000023

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet\ManualProxies]

3. 诊断网络

一直以为 window 的诊断功能是没有作用的。但据一些网友反馈,前面两种方法都没有作用,使用诊断网络修复后却正常了。

4. 修改 Host 文件

这是我遇到的情况,以上几种方法都尝试无果。

一番折腾后发现使用AdGuardHome的 dns 服务时,会提示未联网。但是使用自动 Dns 时,却能解决未联网的问题。因此猜测是与AdGuardHome冲突了。

C:\Windows\System32\drivers\etc\hosts中添加

1
2
131.107.255.255    dns.msftncsi.com
fd3e:4f5a:5b81::1 dns.msftncsi.com

自此问题解决

5. 替换检测地址

根据检测的原理,可以选择合适的域名和网站替换掉微软的检测地址。

参数含义默认值
DnsProbeHostdns 检测地址dns.msftncsi.com
DnsProbeContentdns 解析结果131.107.255.255, fd3e:4f5a:5b81::1
WebProbeHostweb 检测域名www.msftncsi.com
WebProbePathweb 检测路径ncsi.txt
完整的检测地址http://www.msftncsi.com/ncsi.txt
WebProbeContent检测地址返回的内容Microsoft NCSI

dns.alidns.com的 dns 解析结果为2400:3200::1, 2400:3200:baba::1, 223.5.5.5, 223.6.6.6

自行折腾去吧。

end

这个东西感觉和安卓系统上面的网络叹号是那么一回事。不过谷歌的那个检测地址是墙了。