![“/d/msdownload/update/software/defu/2020/06/am_delta_patch_1.317.1140.0_b3f0b7db16f7b0cfd8020b9ab4ae61349300d9d1.exe”到底是什么?](https://linux22.com/image/1625991/%E2%80%9C%2Fd%2Fmsdownload%2Fupdate%2Fsoftware%2Fdefu%2F2020%2F06%2Fam_delta_patch_1.317.1140.0_b3f0b7db16f7b0cfd8020b9ab4ae61349300d9d1.exe%E2%80%9D%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
突然登录了我的 PHP localhost 开发服务器:
[2020 年 6 月 12 日星期五 17:19:09] 127.0.0.1:58391 [404]: (null) /d/msdownload/update/software/defu/2020/06/am_delta_patch_1.317.1140.0_b3f0b7db16f7b0cfd8020b9ab4ae61349300d9d1.exe - 没有该文件或目录
为什么 Windows 10 会向 127.0.0.1 发出 HTTP 请求以获取 .exe 文件?根据请求的路径判断,这似乎与 Windows 更新有关,但为什么它会从本地主机,并且使用 HTTP?这难道不是使用完全不同的加密协议从 Microsoft 服务器获取的吗?
此外,我已经关闭了所有“以 P2P 方式获取更新”的功能,所以不可能是这种情况。(但即使是这样,也没有任何意义,而且同样令人困惑。)
底线:为什么 Windows 10 显然试图从我的本地主机开发网络服务器获取更新?
几个月前我至少注意到过一次这种情况,但当然这种情况可能经常发生,只是我没有注意到。但为什么会这样呢?怎么解释呢?
我搜索了该路径及其部分内容,但令人惊讶的是,在网上没有找到任何结果。
答案1
为什么 Windows 10 显然试图从我的本地主机开发网络服务器获取更新?
我猜你在 /etc/hosts 中添加了几个 Microsoft CDN 域,也许是为了阻止 MS webservice 或者禁用遥测或其他“疯狂行为”。
通常这样的黑名单实际上堵塞域名,它们会将其重定向到 127.0.0.1 – 即 localhost。这只对大多数人有效,因为他们不运行网络服务器。
这难道不是通过某种完全不同的加密协议从微软服务器中获取的东西吗?
不,Windows 更新一直使用 HTTP(S)。它是当前用于交付任何类型的静态文件的首选协议,允许将同一个 CDN 用于所有内容。
对于数据需要进行身份验证和/或加密,并且 Windows 更新使用 Authenticode(来自专用 CA 的数字证书链)进行数字签名,因此缺少 TLS 并不是什么大问题。您会在 Debian 或 Arch Linux 上看到同样的情况。