Trước hết, tôi xin lỗi nếu tôi đăng lên trao đổi sai, tôi thực sự không chắc câu hỏi này phù hợp ở đâu.
Trong một thời gian dài, tôi đã gặp phải vấn đề rất kỳ lạ với kết nối internet tại nhà, đó chắc chắn là lỗi của bộ định tuyến hoặc ISP của tôi, nhưng ISP của tôi khá bất lực trong việc gỡ lỗi.
Đối với hầu hết các phần, kết nối của tôi hoạt động rất tốt - không có thời gian chết và tôi luôn nhận được khá nhiều 100% tốc độ tôi đang trả.
Tuy nhiên, có một vấn đề cụ thể: một số trang web có hành vi rất kỳ lạ này, nơi chúng sẽ mất một thời gian rất dài để tải. Ví dụ về các trang web như vậy là en.wikipedia.org, www.canadapost.ca và www.theweathernetwork.com. Với các trang web này, bất cứ khi nào tôi cố tải một trang, lúc đầu, sẽ không có gì tải cả và thanh trạng thái trong Chrome sẽ ghi "Thiết lập kết nối an toàn .." trong một thời gian rất dài và cuối cùng nó sẽ cho tôi một " Trang web này không thể đạt được "lỗi. Nếu tôi tải lại và thử lại, sau một vài lần, cuối cùng trang web sẽ tải và một khi trang web đó được tải, tôi có thể duyệt qua trang web đó một cách tự do mà không gặp sự cố trong khoảng 15 phút hoặc lâu hơn, sau đó sự cố sẽ trở lại.
Đó không phải là vấn đề với cài đặt tường lửa hoặc PC của tôi. Tôi đã thử rất nhiều thứ để tìm ra vấn đề là gì và tôi đã xác định nó phải là bộ định tuyến modem hoặc kết nối internet của mình, vì nó xảy ra với tất cả các thiết bị được kết nối với mạng của tôi (máy tính để bàn, máy tính xách tay, điện thoại thông minh, v.v.) và với điện thoại thông minh của tôi, khi tôi chuyển sang dữ liệu di động, vấn đề sẽ biến mất.
Tôi đã nộp một vé hỗ trợ với ISP của tôi và họ đã hướng dẫn tôi tất cả các bước rõ ràng (khôi phục cài đặt gốc của modem, v.v.) và bây giờ chúng không hữu ích.
Một điều tôi đã làm để thử kiểm tra là tôi đã chạy các lệnh curl cho các trang web có vấn đề này và tôi đã nhận thấy điều gì đó; với tất cả các trang web có vấn đề này, "curl -v [url]" trả về HTTP 301 thay vì 200.
Bất cứ ai cũng có ý tưởng gì về cái quái gì đang gây ra điều này để tôi có thể chỉ cho các kỹ thuật viên của ISP của tôi đi đúng hướng?
EDIT: Nó đã chỉ ra rằng tôi đã không bao gồm https trong các lệnh curl, điều này khiến 301 trở lại. Nhưng bây giờ tôi đang bao gồm https Tôi đã nhận thấy một điều thú vị:
Khi chạy curl -v với một trang web https không phải là một phần của vấn đề (chẳng hạn như facebook), tôi kết thúc với đầu ra bình thường .. nhưng đối với một trang web, nó trông như thế này:
$ 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)
Sau đó nó bị treo ở đó, trong một thời gian rất dài, và rồi cuối cùng nó tiếp tục và kết thúc bằng:
* 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