欢迎光临散文网 会员登陆 & 注册

【转载翻译】Windows 如何检测网络是否连通

2023-01-13 11:27 作者:BHznJNs  | 我要投稿

原文链接:https://devblogs.microsoft.com/oldnewthing/20221115-00/?p=107399

你可以通过 Windows 知道你的计算机的网络连接是否正常,这是怎么做到的?

Windows 会尝试从这两个链接中下载文件:

  • http://www.msftncsi.com/ncsi.txt

  • http://www.msftconnecttest.com/connecttest.txt

如果对服务器的下载请求成功且获取到的内容正确,Windows 会认为你的网络状况正常。

如果其中的某个环节出现问题,则 Windows 会认为网络连接受到限制或无网络连接,这取决于具体出现问题的地方。

你可以从这个链接获取更多技术细节:https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/internet-explorer-edge-open-connect-corporate-public-network

以下为原文的评论:

Yuri Khan:这样的检测机制不是很容易被欺骗吗?

        原作者:所以为什么会有人去欺骗这个机制?你欺骗 Windows 你的网络连接正常,然后当你准备网上冲浪时,你才发现了不对。你做的不过是在增加更多技术支持成本以解决消费者对于网络的抱怨。


Simon Geard:Linux 发行版的解决方案也很类似。例如,在 Fedora 中,有http://fedoraproject.org/static/hotspot.txt 。

需要注意的是,Windows 中使用的协议是 HTTP 而不是 HTTPS,因为强制主页(captive portals,译注:此处应该指的是路由器使用的登录界面)会阻止 TLS 连接,而纯文本的 HTTP 则会直接被重定向到该网站,允许网络服务唤起浏览器界面以使用户验证登录。

        Simon Farnsworth:类似的,安卓和 ChromeOS 设备请求 http://connectivitycheck.gstatic.com/generate_204 (因为上述原因使用 HTTP) 并期望返回 HTTP 204。这几乎是我唯一能在实际应用中看到的 HTTP 204。

                Chris Warrick:我有时能在实际应用中看到 HTTP 204,比如 REST API 有时会将其作为 DELETE 请求的响应值。

                Justin Goldberg:我使用 neverssl.com 来测试我的网络。因为短时间内找一个非 HTTPS 的网站真的很难。

        Danstur:有一个小 PSA(译者注:可能为技巧之意):当你的设备因为一些原因无法检测到强制主页时,你需要一个 HTTP 网站,http://neverssl.com 这个网站很合适并且域名也很好记。

Douglas Dlutz:现在我更好奇了,为啥不同的 Windows 版本要使用两个不同的 URL,为什么不使用同一个域名?

并且,这些文件必然面临着非常大的访问量,我认为 connecttest.txt 的 URL 正在使用 Azure Front Door(译注:微软的云 CDN 服务) 缓存服务,这使得其具有 x-msedge-ref headers 请求头,但我没有在 ncsi.txt 的 URL 中看到这个请求头,是因为这个文件用了不同的 CDN 吗?

        Chris Warrick:他们将域名从 “msftncsi” 换成了 “msftconnecttest”。其中一个意义明确,而另一个是模糊的缩写词。他们这样做可能是为了让人们通过流量来理解这个东西。

并且,你真的需要一个 CDN 来提供一个 14 字节的文本文件,即使是面向数百万人?

                Trevor Little:CDN 有很多好处,其中一个是给用户以最小的延迟。CDN 在全世界有数百甚至数千个存储着这个文件的服务器。如果只在美国中心有一个源服务器,并且没有 CDN,一个来自印度的连接会穿越半个地球。而有了 CDN ,印度的用户也能连接到位于印度的 CDN 服务器。

                Justin Goldberg:我猜想这些 URL 会不会在 Windows 的源代码中,我想要找到他们。


【转载翻译】Windows 如何检测网络是否连通的评论 (共 条)

分享到微博请遵守国家法律