重要
- 以前由 Azure Front Door 托管的公共 NCSI 探测服务器现在由 Akamai 托管。 此更改于 2023 年 6 月 20 日发生。 要更好地了解这对用户有何影响,请参阅 NCSI 常见问题解答页。
https://learn.microsoft.com/zh-cn/windows-server/networking/ncsi/ncsi-troubleshooting-guide
网络连接状态指示器 (NCSI) 是有助于直观显示当前网络连接状态的一项功能。 默认情况下,NCSI 图标位于任务栏的右下角。 它的外观取决于设备如何连接到网络以及运行哪个操作系统。
单击此图标可查看网络状态,单击“网络和 Internet 设置”链接可查看更多网络适配器详细信息。 根据运行的 Windows 版本,NCSI 图标的任务栏选项可能有所不同。
NCSI 功能
NCSI 使用网络探测,即,先向终结点发送网络请求,然后接收响应。 NCSI 的探测称为“主动探测”,是一种 HTTP 请求/响应。 它还使用被动轮询,称为“被动探测”,即被动地检查网络流量以确定连接性。
Windows 中 NCSI 的用途是什么?
NCSI 是负责确定是否存在网络连接以及该连接是 Internet 连接还是仅本地连接的组件。 之所以开发 NCSI,是为了使应用程序无需自行确定网络配置,因而免除由此带来的复杂性。 每次尝试通过网络执行任务,都需要持续关注网络是否仍可访问。 发生网络中断时,即使是间歇性中断,应用程序也会使操作超时,并不断地测试网络,直到连接稳定。
这种活动看起来微不足道,但需要考虑到,应用程序必须针对大量的环境因素执行检查,例如在代理、热点或强制验证门户的后面运行时。 NCSI 必须知道它检测到的网络是否可以满足请求。 它是需要完全的 Internet 访问权限还是专用公司网络访问权限? 用户必须等待 NCSI 完成或超时,同时应用程序需要确定如何处理受限连接或无网络连接的情况。
主动探测
主动探测是向使用特定 NCSI 地址的 Web 探测服务器发送的 HTTP 请求。 该服务器由 Microsoft 托管在 Internet 上,但也可以是企业自己的专用探测服务器,只是后面这种情况比较少见。 当 NCSI 发送探测并收到有效响应时,它会认为客户端设备已建立 Internet 连接。
如果 NCSI 未检测到 Internet 连接,则要么是探测未完成,要么是探测在完成过程中失败。 无法完成的部分原因可能是出现设备、网络配置或其他环境问题。 在完成过程中失败的一个例子是收到“HTTP 403 禁止”响应,这通常表示代理阻止了出站探测。
备注
从 Windows 10 内部版本 14393 (1607) 开始,Web 探测 (HTTP) 请求将发送到 www.msftconnecttest.com/connecttest.txt
。
http://www.msftconnecttest.com/connecttest.txt
1.现象:
Windows 10/11 连WiFi显示无internet,可以正常上网
影响: 网络不正常联网
2.原因:
Windows 10/11 域名在国内GFW或运营商DNS劫持问题存在,导致无法连接情况。
联网检测过程:
Windows 10/11 联网后会向http://www.msftncsi.com/ncsi.txt 或 http://ipv6.msftncsi.com/ncsi.txt发出请求,获取ncsi.txt中的值(Microsoft NCSI),如果和注册表中的值一致,则认为联网成功,
获取的内容值和对应的字段(第一个ipv4,第二个ipv6):
“ActiveWebProbeContent”=”Microsoft NCSI”
“ActiveWebProbeContentV6″=”Microsoft NCSI”
http://www.msftncsi.com/ncsi.txt
http://ipv6.msftncsi.com/ncsi.txt
根本原因:
首先一个DNS请求,请求此主机的/ncsi.txt文件。故障原因:DNS被劫持到错误IP,或通讯被GFW阻断。
这个NCSI到底是做什么的呢?
NCSI是网络连接状态指示器和产生的 Internet 通信。网络感知会收集网络连接信息,如计算机的域名系统 (DNS) 后缀、林名称和计算机连接到的网络的网关地址。当被网络感知调用时,NCSI 可以为既定网络添加有关以下功能的信息:
到 Internet 的连接
http://www.msftncsi.com/ncsi.txt http://ipv6.msftncsi.com/ncsi.txt 的请求
称为 ncsi.txt 的页面,其中包含以下文本行,这些文本行没有终止新行或其他非打印字符:
Microsoft NCSI
解决方法:
- 基本方法 重启家里路由器和电脑设备,自动清空DNS缓存, 得以解决
- 高级方法 修改路由器或者电脑的DNS为公共DNS 例如 114.114.114.114 / 8.8.8.8 等
修改本机可以用工具 DNS Jumper 如下链接 下载
点击下载 DnsJumperV2.2.zip https://airy.cn/share-file/DnsJumperV2.2.zip
解决办法
通过【产生原因】一节我们知道了原理之后,相应的解决办法就简单了
方法1 关闭NCSI(已测试有效)
这个也是微软官方推荐的解决方法,以下两种任选一个尝试就好
1.1 通过修改注册表来关闭NCSI
快捷键Win+R,输入regedit后回车
进入相应目录
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator
增加条目
按下图所示操作:
修改后重启电脑即可
1.2 通过修改组策略来关闭NCSI
输入Win+R进入运行,输入gpedit.msc启动组策略:
计算机配置 > 管理模板 > 系统 > Internet通信管理 > Internet通信设置 > 关闭Windows网络连接状态指示器的活动测试
注:
如果你没有组策略,那你的系统很可能是家庭版,家庭版是不提供组策略的,不过我也不建议你因为没有这个组件而单独耗费时间去升级到专业版,你可以按照我下面的方法解决这个问题。
同时如果你是专业版,但是依旧无法打开组策略,例如下图这种:
那么以上两种情况的解决方法就是:
将下面的内容作为.bat文件运行[5](先复制粘贴到一个.txt文件中,之后更改后缀为.bat,然后以管理员权限双击运行即可):
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause
运行后需要等待几分钟左右即可安装完成
之后再在运行窗口中输入gpedit.msc就可以启动组策略了
方法2 更改NCSI探测网址(理论上有效,暂未测试)
这也是网上流传的很多的一种解决方法,但实际上原理就是换了个探测地址罢了,如果连这个地址也无法访问的话,还是只有用我的第一种方法
这是现在的配置:
我们需要将其更改为下图这种:
之后重启电脑即可
方法3 修改EnableActiveProbing注册表项(已测试有效)
这个条目我觉得和微软推荐修改的那个NoActiveProbe值是类似的作用,都是关闭探测的
方法在stackoverFlow上也有提到过[6]
这位网友提供了解决办法:
我就概括一下:
双击打开这个条目
将原本的1修改为0之后点击【确定】保存
在微软的注册表数值数据中,1代表开启,0代表关闭
之后重启电脑即可
最后通过上述方法可以看到此时网络状态已经恢复了正常:
这篇文章我为了查阅资料和复现场景以及编排内容等耗时大约3个多小时。完成这篇文章也不容易的,如果它解决了你的问题,就麻烦点个赞或者喜欢吧~
当然如果你最后按照我的方法操作完依旧没有解决相关问题,那么要么就是你在某个步骤出了问题,要么就是不属于今天我们所探讨的NCSI探测失败的问题,请另行查阅相关文章,也希望你能早日解决这个问题!
汇总安全、快速稳定的公共DNS
- 114 DNS
纯净 无劫持 无需再忍受被强扭去看广告或粗俗网站之痛苦
114.114.114.114 和 114.114.115.115
拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全
114.114.114.119 和 114.114.115.119
学校或家长可选拦截 色情网站 保护少年儿童免受网络色情内容的毒害
114.114.114.110 和 114.114.115.110
- Public DNS+ 腾讯公共DNS
119.29.29.29
腾讯公共DNS,节点很多,DNSPod Public DNS 同时支持 DoH 与 DoT - 阿里云公共DNS
223.5.5.5
223.6.6.6
阿里云是国内最大的云服务商,资源和质量没得说 - neDNS
拦截版 117.50.11.11 52.80.66.66
纯净版 117.50.10.10 52.80.52.52 - 360公共DNS
中国电信/铁通/移动:101.226.4.6,218.30.118.6,
中国联通:123.125.81.6,140.207.198.6 - Google DNS
8.8.8.8
8.8.4.4
国内不建议用,国外推荐用 - OpenDNS 208.67.222.222 208.67.220.220
- 上海电信 DNS 202.96.209.133 116.228.111.118 202.96.209.5 180.168.255.118
- 上海联通 DNS 210.22.70.3 210.22.84.3