为什么我的本地网络无法解析 HTTP URL?

为什么我的本地网络无法解析 HTTP URL?

例如,如果我访问http://tutor.com在我的电脑上的任何浏览器中,我都会遇到网络超时。但如果我访问https://tutor.com它会加载。此问题出现在网络上的所有设备(Windows、Android、iOS、MacOS)上,无论是有线连接还是无线连接,并且并非特定于该站点。

我看不出协议前缀对 DNS 解析有什么影响,nslookup 工作得很好。但为什么 HTTP 请求会超时?正常行为是:

  1. tutor.com 解析为 IP 地址
  2. http 请求返回 301 重定向到 https
  3. https 请求成功

使用 PowerShell 会发生以下情况:

Invoke-WebRequest http://tutor.com/
Invoke-WebRequest: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond..

Invoke-WebRequest https://tutor.com/

StatusCode        : 200
StatusDescription : OK
Content           : <!DOCTYPE html>
...

我知道这在其他网络上有效(我女儿把她的电脑带到亲戚家,在那里运行良好——重定向和加载https://tutor.com)。

在浏览器中,我可以通过改为使用 https 前缀来解决这个问题,但问题是 tutor.com 应用程序请求的是 http URL,而这在我的网络上不起作用。什么原因导致了此行为?我该如何排除故障?

我的操作系统是 Windows 10 20H2 19042.985。我有一个 ASUS RT-AC66U 主路由器和一个配置为接入点的 tp-link AX6000。我正在使用这些 OpenDNS IPhttps://www.opendns.com/setupguide/#familyshield用于 DNS 服务器(我也尝试配置路由器以自动连接到 DNS 服务器,但没有什么区别)。

答案1

  1. 这个问题是什么时候开始的?你知道问题开始时发生了什么变化吗?

  2. 排除法可以帮助解决许多问题。您正在尝试通过进行更改、测试、确认更改没有解决问题,然后重复这一过程来尝试这一过程的变体。我希望您尝试一个更基本的版本:断开所有可以断开的连接,只留下基本必需品,然后逐一添加设备/更改。这是 PC 制造商提供的查找罪魁祸首硬件的文字指导。在您的处境下,我会断开所有可以断开的路由器,然后直接插入您的互联网提供商设备,看看您是否可以访问许多 HTTP 页面。如果可以,您就知道问题不在那里,因此逐一添加路由器或配置,测试,然后重复这一过程。

  3. 根据您使用 OpenDNS 并链接到 Family Shield,我不得不假设您正在尝试进行网站拦截/内容过滤。在尝试拦截互联网上的不良内容时,我怀疑您进行了另一项更改,间接导致了此问题。由于您和我们似乎都无法弄清楚确切的设置,因此最好从头开始,慢慢地、有条不紊地进行

  4. 您提到您更换了一个路由器,但没有具体说明是哪一个(正如您所说,您使用了两个)?@harrymc 在评论中问了这个问题

  5. 问题评论中有 1NN要求您将路由器恢复出厂设置,我认为这是个好主意,但您似乎从未对此做出回应。

  6. 你可以深入研究这个兔子洞,但在我看来,这只会延长你的问题,因为它只会变得更加复杂。不过你正在学习 :)

    a) 安装 nmap 流行的端口扫描程序。尝试扫描网站上的 80 (HTTP) 端口,老实说,我不确定这是否有助于您了解您的网络,因为它的目标只是查看远程服务器上的端口是否打开,如果它托管网站,它应该是打开的

    b) 安装 Wireshark 并捕获网络流量。它非常冗长,因为您实际上可以看到网络数据包/帧的发生,因此有很多白噪声,您需要非常深入地了解网络的工作原理

答案2

虽然 dns 可能会导致超时,但这种超时与 DNS 无关。

问题是 http 和 https 位于不同的端口,而且 http 端口显然有防火墙保护。如果远程端口上没有任何东西在监听,那么您将收到拒绝连接的消息。

这里的可能性包括但不限于:

  • 您的本地主机由于某种原因正在对 http 进行防火墙保护
  • 您的上游路由器正在对 http 进行防火墙保护
  • 你的路由器(你的 ISP?)上游的某些东西正在防火墙 http
  • 远程主机已对 http 进行防火墙保护,并且可能正在或可能未正在侦听该端口。(但如果您可以从其他位置连接到它,则情况并非如此。)
  • 上游主机正在运行 DoS 预防软件(如 fail2ban),并且您已成功触发它
  • 主机当前正在遭受 DoS 攻击,无法及时响应
  • 远程主机已关闭(但 https 也无法工作)
  • 远程主机实际上是一个主机池(在云中),随机分配用于服务您的 http 请求的主机暂时关闭;后续尝试可能会成功(或者只是进一步触发上面列出的 DoS 预防)

答案3

我会考虑三种可能性。您的路由器或 DSL 调制解调器...

  1. 正在阻止入站 HTTP 流量
  2. 正在阻止不安全的 301 重定向 (http)
  3. 有出站规则阻止或错误路由您的 HTTP 请求

您可以通过尝试访问纯 http 站点(无重定向)来排除选项 1 和 3,例如http://captive.apple.com/ <-- 您应该会看到一个纯白色页面,上面写着“成功”。如果此页面加载失败,您需要在调制解调器或路由器上找到有问题的规则/设置。

您可以通过访问以下网址来测试 #2,http://neverssl.com。这是另一个仅限 http 的页面,但它包含 301 重定向到“[random_server_name].neverssl.com/online/”。如果失败,请使用与上述相同的解决方案。

最后,为了缩小路由器或 DSL 调制解调器(或 ISP)是否是原因,您应该能够将 DSL 调制解调器直接连接到计算机并尝试相同的测试。

如果您能够将故障原因缩小到 DSL 调制解调器,但找不到有问题的设置/规则,请致电您的 ISP 并确认他们没有在您的连接上启用任何类型的过滤或专有“安全增强功能”,并请求技术支持或更换调制解调器。

相关内容