我带着我的 Mac 搬到了海外。它运行的是 10.9.5
我可以打开一些网站,但不能打开其他网站,甚至连 superuser.com 都打不开——有足够多的网站无法打开,让我确定是我,而不是他们。有足够多的网站可以打开,让我知道我已连接到互联网。通过同一网络连接的其他计算机可以打开有问题的网站。所有浏览器和软件更新功能都存在问题,所以这不仅仅是 chrome 或 safari 的问题。
网页无法打开时的错误是“页面响应时间过长”
我怎样才能解决这个问题?
答案1
“某些站点可以打开但其他站点不打开”的一个罕见但并不太罕见的原因是 MTU 问题,例如“路径 MTU 发现”算法失败(又名“PMTU 发现黑洞”)。
作为测试,请尝试将 MTU 设置为 1300,看看是否所有网站都可以打开。如果可以,则将 MTU 调高,直到找到可行的最大值。
据我所知,Google 将其所有服务器配置为使用较小的 TCP MSS(最大段大小,TCP 层相当于 IP 层的 MTU 概念),以确保即使对于存在路径 MTU 发现黑洞的人来说,他们的网站也可以加载,因此有些人将 MTU 问题描述为“Google 网站可以加载,但许多其他大牌网站却无法加载”。
路径 MTU 发现依赖于:
- 客户端和服务器之间路径上的所有路由器都必须遵守 IP 标头中的“不分段”位,并发回 ICMP“需要分段,但已设置“不分段”位”错误消息。我见过一些不好的路由器不能正确执行此操作,并破坏了 PMTU 发现。
- 路径上的所有路由器/防火墙都必须允许这些 ICMP 消息通过。我见过无知的防火墙管理员因为想阻止 ping 而阻止所有 ICMP。他们没有意识到 ping 只使用一对 ICMP 消息类型(回显请求/响应),并且还有许多其他 ICMP 消息类型对于互联网的正常运行至关重要,不应被阻止。
- 路径上的任何 NAT 网关都必须正确地对 ICMP 消息进行 NAT 转换,以便它们返回到发送过大数据包的机器。我见过错误的 NAT 网关,它们错误处理 ICMP 消息并破坏 PMTU 发现。
答案2
我从阿根廷访问美国网站时,发现很多网站都没有响应。我认为这是因为网站管理员的想法是“这不适合你的市场,所以我不会在你身上浪费 CPU 周期。”
所以我所做的是通过代理服务器访问。