原因
- 直接原因
- windows系统的网络连接状态NCSI,检测失败
- 分析
- Windows 会定期访问一个特定网址(通常是 msftconnecttest.com)来测试联网情况。
- 尝试解析 dns.msftncsi.com
- 访问 http://www.msftconnecttest.com/connecttest.txt
- 如果返回的内容不是 "Microsoft Connect Test",显示“无 Internet”。
- 问题定位
- 域名解析: 国内运营商(电信、移动等)有时会劫持
msftncsi.com - 防火墙拦截
- 代理干扰:代理软件是否开启了“系统代理”模式
- HTTPS/HTTP 混淆: 默认探测使用 HTTP,有些地区的网关会拦截非加密的 txt 获取请求。
- IPv6 干扰: 如果你的 Wi-Fi 支持 IPv6 但由于运营商配置不佳,Windows 会优先通过 IPv6 探测,失败后就会报“无 Internet”。
- 网络波动
- WIFI信号问题:在酒店/机场的认证页面,返回内容Captive Portal,会导致判断失败
- 域名解析: 国内运营商(电信、移动等)有时会劫持
问题解决
- 方案:重启电脑
- 方案:重置网络
- 有时候网络堆栈中的缓存会导致检测失效,可以通过命令行刷新。
- 右键点击“开始”按钮,选择 终端(管理员) 或 命令提示符(管理员)。
- 依次输入并回车执行以下命令:
netsh winsock reset(重置目录)netsh int ip reset(重置 IP 栈)ipconfig /release(释放 IP)ipconfig /renew(重新获取 IP)ipconfig /flushdns(刷新 DNS 缓存)
- 方案:修改DNS
- 如果你的 DNS 无法快速解析微软的测试域名,系统就会认为没网。
- 尝试将 DNS 手动设置为公共 DNS,例如:
- 阿里 DNS: 223.5.5.5 / 223.6.6.6
- 腾讯 DNS: 119.29.29.29
- Google DNS: 8.8.8.8 / 8.8.4.4
- 方案:禁用wifi节能
- 有时网卡为了省电会进入低功耗模式,导致心跳包发送失败。
- 右键“此电脑” -> “管理” -> “设备管理器”。
- 展开“网络适配器”,找到你的 Wi-Fi 网卡,右键点击“属性”。
- 切换到 电源管理 选项卡,取消勾选 “允许计算机关闭此设备以节约电源”。
- 方案:禁用IPv6
- 设置 -> 网络和 Internet -> 状态 -> 更改适配器选项 -> 右键 Wi-Fi -> 属性 -> 取消勾选 Internet 协议版本 6
- 方案:修改检测网址 - 使用微软中国专用地址(最稳定)
- 微软针对中国网络优化的探测地址,解析速度和连通性最好。通过更改系统检测联网状态的逻辑,可以解决大部分“假断网”问题。
- 修改后,必须重启电脑或重启
Network List Service服务,才能生效 reg脚本如下
Windows Registry Editor Version 5.00 ; 微软中国优化节点 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet] ; 启用主动探测功能 "EnableActiveProbing"=dword:00000001 ; 探测服务器地址(微软官方) "ActiveWebProbeHost"="www.msftconnecttest.com" ; 探测文件路径 "ActiveWebProbePath"="connecttest.txt" ; 探测返回的内容校验值 "ActiveWebProbeContent"="Microsoft Connect Test" ; DNS 探测域名 "ActiveDnsProbeHost"="dns.msftncsi.com" ; DNS 探测预期的返回 IP "ActiveDnsProbeContent"="131.107.255.255"
- 方案:修改检测网址 - 模仿火狐/公共服务(国内极速)
reg脚本
Windows Registry Editor Version 5.00 ; Firefox 探测节点 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet] "EnableActiveProbing"=dword:00000001 ; 使用火狐的探测域名 "ActiveWebProbeHost"="detectportal.firefox.com" ; 火狐的探测路径 "ActiveWebProbePath"="success.txt" ; 火狐探测返回的成功标识 "ActiveWebProbeContent"="success" ; 保持微软默认 DNS 探测或留空 "ActiveDnsProbeHost"="dns.msftncsi.com" "ActiveDnsProbeContent"="131.107.255.255"
- 方案:修改检测网址 - 完全本土化百度
reg脚本
Windows Registry Editor Version 5.00 ; 国内常用节点 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet] "EnableActiveProbing"=dword:00000001 ; 使用国内访问稳定的域名 "ActiveWebProbeHost"="cp.cloudflare.com" "ActiveWebProbePath"="generate_204" ; 注意:部分系统对此方案的 Content 校验较严,若无效请优先用方案一 "ActiveWebProbeContent"="" "ActiveDnsProbeHost"="dns.msftncsi.com" "ActiveDnsProbeContent"="131.107.255.255"