Win10提示无法连接到Internet时的Cache解决方案

admin 2023年6月26日02:17:38评论51 views字数 2025阅读6分45秒阅读模式
创建: 2023-06-23 19:41
https://scz.617.cn/windows/202306231941.txt

Win10右下角托盘区有时会出现一个小地球,提示"无法连接到Internet",即使你正欢快地上着公网,仍有一定几率看到这个提示。一般来说不用理会,也不影响啥。但是,出现该提示时,你的Microsoft Store就废了,无法下载安装应用、无法登录、提示0x800704cf错误码;还会影响很多微软自己的网络应用,比如Skype、Office 365、Outlook、OneDrive等等;总的来说,微软的智障设计。

两周前我意识到这个智障设计影响到我时,仔细看了一下背后的机理,当时写了一篇科普。但是,那篇科普给了一个错误结论,事实上,全面禁用NCSI探活,不但不能避免智障小地球出现,还使得状态改出不能。后来通过逆向工程整明白了错误结论的源头,故有此文。

首先,我已重写了那篇科普,以更加严谨的方式,参看:

《Network系列(4)--Windows网络探活》
https://scz.617.cn/network/202306101941.txt

其次,本文内容完整出现在前文中,此处单开一篇,只是为了聚焦。

NCSI探活自2008年起,为祸人间有15个年头了,你去放狗,能找到一大票同病相怜者。这15年来,智障问题引出的扯淡解决方案如过江之鲫层出不穷,但小白们无所谓,某次凑巧解决了,即算成功,TA们不打算也没能力真正、永久解决这个智障问题。

迄今为止,从专业角度评判,唯一一个广普有效解决方案:

https://github.com/dantmnf/NCSIOverride

该方案有一些局限性,非专业人员很可能实施不下去。另一方面,专业人员可不直接使用该项目,转用windbg达成目的,有很多殊途同归的方案,要点是人工设置Capability。说到这里,我也挺奇怪的,这么多年过去,对ncsi.dll进行过逆向工程并愿意分享一种解决方案的人,居然只有前述项目的作者,赞美之余颇为不解。

我和云海前段时间也对ncsi.dll进行了逆向工程,windbg的种种方案不提也罢。在此过程中,我们意识到,「公网可达状态」有持久化保存,至少在一定时间范围内持久化,使得重启OS后即便不探活也判定公网可达。云海唆使我找出Cache所在,或许可在不依赖windbg的情况下消掉黄三角或小地球,后来我真找到了。介绍一种Cache解决方案,regedit查看

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNlaSvcParametersCache

若Cache子键下有OpportunisticInternetGatewaysV4键值,修改该键值数据最后4字节为"ff ff ff 00",然后立即以管理员身份执行:

Win10提示无法连接到Internet时的Cache解决方案

若黄三角或小地球消失,可重启OS验证持久化效果。Win11可能不是NlaSvc服务,我没Win11,只测了Win10。

若OpportunisticInternetGatewaysV4键值不存在,可手工创建,解码如下:

Win10提示无法连接到Internet时的Cache解决方案

当需要手工创建OpportunisticInternetGatewaysV4键值时,对非专业人员太难了。

若想撤销Cache方案,最简办法是删掉OpportunisticInternetGatewaysV4键值:

reg.exe delete "HKLMSYSTEMCurrentControlSetServicesNlaSvcParametersCache" /v "OpportunisticInternetGatewaysV4" /f

Cache方案的优势是,即使全面禁用探活,即使根本没有任何探活动作,仍将判定公网可达,重启OS后仍然有效。对于误出现的黄三角或小地球,Cache方案无须重启OS即可立即生效,无须禁用、启用任何网络接口,无须切换WIFI,无须断网重连,不影响任何已存在的TCP长连接

Cache方案只是解决误报"无法连接到Internet"带来的尴尬局面,不解决真正的公网不可达局面。Cache方案基于这样的假设,实际公网可达,只是出现智障小地球。

我个人最爱的方案,「全面禁用主动被动探活 + 启用Cache方案」,真正的一劳永逸,哪怕实际公网不可达,也不再出现黄三角或小地球。当然,真遇上网络问题了,专业人员有专业排查手段,无所谓。

Cache方案特别适合专业人员实施,专业人员如在实施过程中遭遇困难,可联系我,我愿意协助你一劳永逸解决这个智障问题。小白不要联系我,有些实施环节要求基本技能,我完全没有信心远程指导小白成功。

Cache方案可以写程序一条龙式完成,那样自然小白化,我没这动力,愿意做雷锋的,不妨一试。

此法测试周期不够,日后若有变化,再来更新本文。

原文始发于微信公众号(青衣十三楼飞花堂):Win10提示无法连接到Internet时的Cache解决方案

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月26日02:17:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Win10提示无法连接到Internet时的Cache解决方案https://cn-sec.com/archives/1829954.html

发表评论

匿名网友 填写信息