首先,如果我发帖到错误的交流平台,我深感抱歉,我真的不确定这个问题适合哪里。
很长一段时间以来,我的家庭互联网连接一直存在一个非常奇怪的问题,这肯定是我的路由器或 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)
然后它就挂在那里很长一段时间,最后继续并结束于:
* 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
答案1
最终发现是 IPv6 导致的。我在路由器上禁用了 IPv6,并将其设置为仅 IPv4,问题现在已解决。
答案2
这三个网站似乎都只支持 HTTPS,如果您要查看这些http://
地址,这些网站会通过 301 消息通知您的浏览器它们已永久移至https
该地址。这将成为 301 消息的一部分。您可能会收到额外的重定向,这些重定向会为默认页面添加路径。301 重定向很可能是转移注意力的手段。
如果您的 DNS 连接出现问题,这种长时间延迟很常见。不过,我预计第一次尝试就会出现这种情况。
所有这些网站都支持 IPv6。如果您似乎支持 IPv6,chrome 可能会尝试使用 IPv6 而不是 iPv4 进行连接。协商 HTTPS 可能涉及与不同服务器的多个连接。如果其中任何一个被阻止或关闭,都可能导致延迟。
使用 Chome 开发人员工具 ( ) 可能会有所帮助CtrlShifti。选择“网络”选项卡,它将显示页面组件的加载时间。将鼠标悬停在第一个慢速连接上以获取有关时间的详细信息。