Po pierwsze przepraszam, jeśli wysłałem na niewłaściwą wymianę, naprawdę nie byłem pewien, do czego pasuje to pytanie.
Od dłuższego czasu mam bardzo dziwny problem z moim domowym połączeniem internetowym, który jest zdecydowanie winą mojego routera lub mojego dostawcy usług internetowych, ale mój dostawca usług internetowych jest dość bezradny przy debugowaniu go.
W większości przypadków moje połączenie działa świetnie - bez przestojów i konsekwentnie uzyskuję prawie 100% prędkości, za którą płacę.
Jest jednak jeden konkretny problem: niektóre strony internetowe mają to bardzo dziwne zachowanie, którego ładowanie zajmuje bardzo dużo czasu. Przykładami takich witryn są: en.wikipedia.org, www.canadapost.ca i www.theweathernetwork.com. W przypadku tych witryn za każdym razem, gdy próbuję załadować stronę, na początku nic się nie ładuje, a pasek stanu w przeglądarce Chrome przez bardzo długi czas wyświetla komunikat „Ustanawianie bezpiecznego połączenia.” Błąd dotarcia do tej witryny ”. Jeśli ponownie załaduję i spróbuję ponownie, po kilku latach ostatecznie strona się załaduje, a gdy strona zostanie załadowana, mogę swobodnie przeglądać tę stronę bez żadnych problemów przez około 15 minut, problem wróci.
To nie jest problem z moimi zaporami lub ustawieniami komputera. Próbowałem już wielu rzeczy, aby wyeliminować problem i ustaliłem, że musi to być mój modem-router lub samo połączenie internetowe, ponieważ zdarza się to na wszystkich urządzeniach podłączonych do mojej sieci (komputer stacjonarny, laptop, smartfon itp.) i ze smartfonem po przejściu na dane mobilne problem zniknie.
Złożyłem bilet pomocy technicznej u mojego dostawcy usług internetowych i przeprowadzili mnie przez wszystkie oczywiste kroki (przywrócenie ustawień fabrycznych modemu itp.), A teraz nie są już tak pomocne.
Jedną rzeczą, którą próbowałem przetestować, jest to, że uruchomiłem polecenia curl dla stron internetowych, które mają ten problem i zauważyłem coś; wszystkie strony internetowe mają ten problem, „curl -v [url]” zwraca HTTP 301 zamiast 200.
Czy ktoś ma pojęcie, co do cholery to powoduje, że mogę skierować techników mojego dostawcy usług internetowych we właściwym kierunku?
EDYCJA: Wskazano, że nie uwzględniam https w poleceniach curl, co spowodowało powrót 301. Ale teraz, gdy włączam https, zauważyłem coś interesującego:
Podczas uruchamiania curl -v na stronie https, która nie jest częścią problemu (np. Facebook), kończę na normalnym wyjściu .. ale dla strony internetowej wygląda to tak:
$ 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)
Następnie zawiesza się tam przez bardzo długi czas, a następnie w końcu kontynuuje i kończy się na:
* 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
Odpowiedzi:
Skończyło się to na IPv6. Wyłączyłem go na routerze i ustawiłem tylko na IPv4, a problem zniknął.
źródło
Wszystkie trzy te witryny wydają się być tylko HTTPS. Jeśli zaczynasz, które
http://
adresy, witryny te informują Twoją przeglądarkę, że na stałe przenieśli się do nichhttps
za pomocą 301 wiadomości. To będzie część komunikatu 301. Możesz otrzymać dodatkowe przekierowania, które dodają ścieżkę do domyślnej strony. Przekierowania 301 są prawdopodobnie czerwonym śledziem.Takie długie opóźnienia są powszechne, jeśli masz problemy z połączeniem DNS. Spodziewałbym się jednak tego przy pierwszej próbie.
Wszystkie te strony obsługują IPv6. Jeśli wydaje się, że masz możliwość IPv6, Chrome prawdopodobnie spróbuje użyć IPv6 zamiast iPv4 do połączenia. Negocjowanie protokołu HTTPS może obejmować kilka połączeń z różnymi serwerami. Jeśli którekolwiek z nich są zablokowane lub wyłączone, może to powodować opóźnienia.
Pomocne może być skorzystanie z narzędzi programistycznych Chome ( CtrlShifti. Wybierz kartę Sieć, która pokaże Ci czasy ładowania komponentów strony. Najedź myszką na pierwsze wolne połączenie, aby uzyskać szczegółowe informacje o taktowaniu.
źródło