logo_2024
萌の领域

【技术】宽带症候群

技术教程 hibari - 7
萌の领域唯一指定太阳,我们的站长龙喵的内容,我代为水一下

Windows 用来检测网络连通性的 IP 似乎被劫持了

 

起因

前几天发现 Windows 的网络图标一直显示未联网状态,但实际上是联网了,后来搜索了下大概率是 Windows 的网络连通性探测的机制有问题了。

Active Probe

一般来说,如果联网了,并且实际能够通过浏览器访问互联网,但 Windows 却显示 无 Internet, 已连接,大概率是 Active Priobe 出了问题。

Active Probe 会从两个角度进行测试:

  • DNS 解析
  • HTTP 连接

两个测试任意一个不过都会导致 无 Internet, 已连接 这个结果。除了图标的显示有差别外,Windows 其实把 Active Probe 的结果用在了很多系统内置条件的判断上,网络不通会导致非常多的功能不可用。

? 注册表中 Active Probe 相关参数

经过一番测试后发现用来测试 Web 连通性的域名 www.msftconnecttest.com 对应的 IP 被 TCP 劫持了,ICMP 和 UDP 似乎没有问题。

排查

于是分别对两个测试的内容进行手动测试,由于没有 v6 环境,就跳过了 v6 测试。最终发现 DNS 解析测试是完全没有问题的,而 HTTP 连接测试则出现了劫持情况。

具体表现为:

  • www.msftconnecttest.com 解析出的 v4 在使用 ICMP 和 UDP 进行 ping 时能够正确到达目的地,但 TCP 被劫持,具体通过延迟来判断,我本地对这个 IP 的 UDP 和 ICMP ping 延迟都是相通的,而 TCP 则少了一个量级
  • 全国性的对这个 IP 的 80 端口不可访问

? TCP 路由跟踪

? 全球端口测试

解决方案

既然 Active Probe 因为自己不可控的原因不能成功,那就禁用 Active Probe 。

将 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNlaSvcParametersInternet 的 EnableActiveProbing 从 1 改为 0 来禁用,完成后重启即可。

更新解决方案

微软如何判断用户是否联网的:

判断用户是否已经联网并不是个技术活儿,微软使用的方法是让设备自动访问微软专用的域名测试网络连通状态。

如果能访问该域名说明网络是正常的,如果无法访问则代表网络异常,但有时候微软这些域名可能出现访问异常。

这就会导致网络状态指示器显示用户已经离线,所以现在还有个变通解决方法就是直接修改用于测试的微软域名。

这个方法在微软官方论坛里已经公布,如果你确实遇到网络指示器的问题再修改,正常的话请不要修改默认域名。

手动修改注册表键值:

如果你懒得动手的话直接点这里下载蓝点网做好的注册表,下载后打开选择合并到注册表即可无需说动修改键值。

  • 萌の领域是一个和谐有爱的ACG文化交流圈,这里是众多二次元文化爱好者的集结地。
  • 本文章是由 萌の领域 会员 hibari 的创作作品。
  • 转载文章时请保留原出处,资源请重新打包!并且附上完整的地址:https://www.moezone.dev/294520.html
  • 资源分享不易,有时间的萌友可以重新打包上传一份,发链接到评论区接力分享,薪火相传呢~
  • 如资源链接失效,请先查看是否是两个星期之前的资源,超过时间默认不补档,请考虑是否要点击下载。其他情况请点击上方举报,等待管理员处理。
  • 下载之前请查看评论区,如果有人提示资源已失效请不要点击下载浪费萌币,也不要说作者骗币,下载消耗的萌币是被服务器回收了。

© 2019 - 2024 💝 Www.MoeZone.Dev