非常奇怪的网络问题 - 特定站点未加载

use*_*692 8 router modem internet

首先,如果我发布到错误的交易所,我深表歉意,我真的不确定这个问题适合哪里。

很长一段时间以来,我的家庭互联网连接一直遇到这个非常奇怪的问题,这绝对是我的路由器或我的 ISP 的问题,但我的 ISP 在调试它时非常无助。

在大多数情况下,我的连接效果很好——没有停机时间,而且我始终获得几乎 100% 的速度。

但是有一个特定的问题:一些网站有这种非常奇怪的行为,它们需要很长时间才能加载。此类网站的示例包括 en.wikipedia.org、www.canadapost.ca 和 www.theweathernetwork.com。在这些网站上,每当我尝试加载页面时,一开始根本不会加载任何内容,Chrome 中的状态栏会显示“正在建立安全连接..”很长一段时间,最终它会给我一个“无法访问此站点”错误。如果我重新加载并再次尝试,几次后,最终该网站会加载,一旦加载该网站,我可以在该网站上自由浏览大约 15 分钟左右,没有问题,然后问题将再次出现。

这不是我的防火墙或 PC 设置的问题。我已经尝试了很多方法来排除问题所在,并且我确定它必须是我的调制解调器路由器或我的互联网连接本身,因为它发生在连接到我的网络的所有设备上(台式机、笔记本电脑、智能手机等)和我的智能手机,当我切换到移动数据时,问题就消失了。

我已经向我的 ISP 提交了支持票,他们已经引导我完成了所有明显的步骤(调制解调器的工厂重置等),现在他们没有那么有帮助。

我为尝试测试所做的一件事是,我为存在此问题的网站运行了 curl 命令,并且我注意到了一些事情;对于所有有此问题的网站,“curl -v [url]”返回 HTTP 301 而不是 200。

任何人都知道到底是什么导致了这种情况,所以我可以为我的 ISP 技术人员指出正确的方向?

编辑:有人指出我没有在 curl 命令中包含 https,这导致 301 返回。但是现在我包含了 https,我注意到了一些有趣的事情:

当针对不属于问题的 https 站点(例如 facebook)运行 curl -v 时,我最终会得到正常输出.. 但对于一个网站,它看起来像这样:

$ curl -v https://www.canadapost.ca
* STATE: INIT => CONNECT handle 0x600057810; line 1413 (connection #-5000)
* Rebuilt URL to: https://www.canadapost.ca/
* Added connection 0. The cache now contains 1 members
*   Trying 2600:140a:0:18a::1dc5...
* TCP_NODELAY set
* STATE: CONNECT => WAITCONNECT handle 0x600057810; line 1466 (connection #0)
*   Trying 23.34.200.189...
* TCP_NODELAY set
* Connected to www.canadapost.ca (2600:140a:0:18a::1dc5) port 443 (#0)
* STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x600057810; line 1583 (connection #0)
* Marked for [keep alive]: HTTP default
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* STATE: SENDPROTOCONNECT => PROTOCONNECT handle 0x600057810; line 1597 (connection #0)
Run Code Online (Sandbox Code Playgroud)

然后它挂在那里,很长一段时间,然后最终它继续并以:

* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=CA; ST=Ontario; L=OTTAWA; O=Canada Post Corporation; OU=Akamai SAN SSL OV; CN=www.canadapost.ca
*  start date: Jan 13 00:00:00 2017 GMT
*  expire date: Jan 13 23:59:59 2018 GMT
*  subjectAltName: host "www.canadapost.ca" matched cert's "www.canadapost.ca"
*  issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3
*  SSL certificate verify ok.
* STATE: PROTOCONNECT => DO handle 0x600057810; line 1618 (connection #0)
> GET / HTTP/1.1
> Host: www.canadapost.ca
> User-Agent: curl/7.54.0
> Accept: */*
>
* STATE: DO => DO_DONE handle 0x600057810; line 1680 (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x600057810; line 1807 (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x600057810; line 1817 (connection #0)
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 301 Moved Permanently
* Server AkamaiGHost is not blacklisted
< Server: AkamaiGHost
< Content-Length: 0
< Location: https://www.canadapost.ca/web/en/home.page
< Date: Mon, 22 May 2017 22:01:55 GMT
< Connection: keep-alive
< Strict-Transport-Security: max-age=31536000
<
* STATE: PERFORM => DONE handle 0x600057810; line 1991 (connection #0)
* multi_done
* Connection #0 to host www.canadapost.ca left intact
* Expire cleared
Run Code Online (Sandbox Code Playgroud)

use*_*692 4

最终是由 IPv6 引起的。我在路由器上禁用了它并将其设置为仅 IPv4,问题现在消失了。