概括
我经常遇到一个问题,我的互联网在几乎所有网站上都无法正常工作,无论是通过 wifi 还是有线连接到路由器或直接连接到调制解调器。但是,Chrome 的 Google 搜索仍然允许我成功搜索任意内容。但我无法在 curl 或 Firefox 中访问 google.com。我想说我在失败状态下成功收到了 Discord 消息。拔下调制解调器并重新插入即可解决问题。
细节
抱歉,这篇文章太长了。我尽可能详细地记录下来,因为我真的不知道是什么原因造成的。以下是我收集到的信息:
我有一个简单的常见网络设置:一个 wifi 路由器和一个有线调制解调器。我的路由器的 DNS 设置为 Google 的服务器 8.8.8.8 和 8.8.4.4。我的 PC 的 DNS 设置为我的路由器。
我曾尝试使用 curl 来访问 Google 网站上 Chrome 中可用的资源网址之一,方法是使用 Chrome Dev Tools 将 Google 网站上的资源请求之一“导出为 curl”,但一直无法成功。在 curl 中正确获取标头/cookie 有时可能有点棘手(结合 bash->powershell 转换),因此我不能 100% 确定这是否是可靠的结果。
我可以tracert stackoverflow.com
在网络故障期间执行此操作,它将遍历所有 ISP 节点,报告所有完整主机名,一直到似乎是 SO 的 Varnish 反向代理。当我重置网络并且一切恢复正常时,输出tracert stackoverflow.com
与故障状态时相同,因此故障状态似乎不会影响 tracert。
但是curl -I stackoverflow.com
,curl -I <varnish-IP-address>
当网络处于故障状态时,它们会超时。然后当我重置网络时,它们会再次工作。我以为这可能是 DNS 问题,但我原以为在这种情况下直接 IP 请求会起作用。此外,似乎curl -vvvv <somehost>
在故障状态期间和故障状态期间解析为相同的 IP。
运行ipconfig /flushdns
并没有解决问题,也没有破坏 Chrome 的 Google 搜索。也没有ipconfig /renew
。将路由器 DNS 设置为自动/ISP做过破坏 Chrome 的 Google 搜索。
我读到过有关 ISP 有 MAC 地址限制的文章,但我的所有 4 个与 wifi 兼容的设备同时瘫痪,这似乎与那个问题不符。
似乎
- 调制解调器以某种方式阻止了 HTTP 级别的某些流量但没有阻止其他流量,我从来没想到 SSL 能做到这一点。
- 由于某种原因,调制解调器阻止了 DNS 查询,而 Chrome 积极缓存与 Google 相关的查询。但为什么我不能直接 curl SO IP 地址呢?
- 由于高流量或其他一些深层网络问题,该问题发生在 ISP 级别。
- 问题不在于调制解调器,但重置调制解调器会触发某些操作(DHCP 分配?),从而导致路由器上的问题得到解决。
- 我的家里到处都是侏儒。
我有一个理论,即当我下载大量内容时,这种情况会更频繁地发生,但我不能 100% 确定总是如此。我不确定我是否可以随意重现它,但它经常发生。
更新:此外,拔下/插入路由器并不能解决问题,尽管它似乎确实破坏了 Chrome 谷歌搜索。此外,将路由器重置为出厂设置只能暂时解决问题,我相信因为它需要对调制解调器进行电源循环。