ERR_QUIC_PROTOCOL_ERROR: Co oznacza i jak to naprawić

Czym jest ERR_QUIC_PROTOCOL_ERROR?
ERR_QUIC_PROTOCOL_ERROR to błąd przeglądarki Chromium, który pojawia się, gdy protokół QUIC (Quick UDP Internet Connections) zawiedzie podczas komunikacji między przeglądarką a serwerem internetowym. Chrome wyświetla komunikat 'Nie można uzyskać dostępu do tej witryny' wraz z kodem błędu ERR_QUIC_PROTOCOL_ERROR lub net::ERR_QUIC_PROTOCOL_ERROR.
Ten błąd dotyczy wyłącznie przeglądarek opartych na Chromium — Google Chrome, Microsoft Edge, Opera, Brave i Vivaldi. Firefox i Safari nie używają QUIC w ten sam sposób i nie wyświetlają tego błędu. Błąd w większości przypadków nie jest spowodowany przez samą stronę internetową — jest to problem warstwy transportowej między przeglądarką a serwerem.
Błąd występuje, ponieważ Chrome najpierw próbuje połączyć się za pomocą QUIC (przez UDP na porcie 443), zanim przełączy się na tradycyjne TCP. Gdy coś zakłóca połączenie UDP — zapora sieciowa, VPN lub serwer proxy — Chrome może nie przełączyć się poprawnie na TCP i zamiast tego wyświetla ten błąd.
Czym jest QUIC i dlaczego Chrome go używa?
QUIC to protokół transportowy opracowany pierwotnie przez Google w 2012 roku i ustandaryzowany przez IETF jako RFC 9000 w 2021 roku. Zastępuje tradycyjny stos TCP+TLS pojedynczym protokołem zbudowanym na bazie UDP. QUIC jest warstwą transportową stojącą za HTTP/3, najnowszą wersją protokołu HTTP.
Tradycyjne połączenia HTTPS wymagają wielu rundek: uzgadniania TCP (1 RTT), następnie uzgadniania TLS (1-2 RTT), a potem żądania HTTP. QUIC łączy to wszystko w jedną rundę — lub nawet zero rund (0-RTT) dla powtarzających się połączeń. Może to skrócić czas ładowania stron średnio o 100-300 ms.
Chrome obsługuje QUIC od wersji 29 (2013) i domyślnie go włączył od wersji 93 (2021). Obecnie QUIC obsługuje połączenia z większością usług Google (YouTube, Gmail, Wyszukiwarka Google), a ponad 8% całego ruchu internetowego korzysta z tego protokołu. Duże sieci CDN, takie jak Cloudflare, Akamai i Fastly, również obsługują QUIC.
| Cecha | TCP + TLS 1.3 | QUIC |
|---|---|---|
| Warstwa transportowa | TCP (jądro systemu) | UDP (przestrzeń użytkownika) |
| Nawiązywanie połączenia | 2-3 rundy | 1 runda (wznawianie 0-RTT) |
| Blokowanie head-of-line | Tak — jeden utracony pakiet blokuje wszystkie strumienie | Nie — strumienie są niezależne |
| Migracja połączenia | Nie — nowy IP = nowe połączenie | Tak — przetrwa przełączenie Wi-Fi ↔ sieć komórkowa |
| Szyfrowanie | TLS 1.3 na wierzchu | TLS 1.3 wbudowany (zawsze szyfrowane) |
| Port | TCP 443 | UDP 443 |
Co powoduje ERR_QUIC_PROTOCOL_ERROR?
Błąd jest wyzwalany, gdy połączenie QUIC w Chrome zawiedzie i przeglądarka nie przełączy się pomyślnie na TCP. Oto najczęstsze przyczyny, uporządkowane według częstotliwości.
Zapora sieciowa lub router blokuje UDP na porcie 443 — Wiele zapór korporacyjnych i domowych pozwala tylko na ruch TCP na porcie 443. Ponieważ QUIC używa UDP na tym samym porcie, pakiety są po cichu odrzucane. To przyczyna nr 1, szczególnie w sieciach zarządzanych.
Zakłócenia VPN — Sieci VPN tunelują ruch przez własny stos protokołów i często nie obsługują przepuszczania UDP dla QUIC. VPN szyfruje i przekierowuje pakiety UDP, powodując niepowodzenia uzgadniania QUIC.
Rozszerzenia przeglądarki — Blokery reklam, rozszerzenia prywatności i dodatki zabezpieczające mogą przechwytywać żądania sieciowe oraz blokować lub modyfikować połączenia QUIC. Rozszerzenia przekierowujące ruch przez własne serwery są szczególnie problematyczne.
Błędna konfiguracja serwera proxy — Korporacyjne serwery proxy zazwyczaj obsługują tylko połączenia TCP. Gdy Chrome próbuje QUIC (UDP), proxy nie może przekazać ruchu i połączenie kończy się niepowodzeniem.
Oprogramowanie antywirusowe z inspekcją HTTPS — Oprogramowanie zabezpieczające wykonujące głęboką inspekcję pakietów ruchu HTTPS często nie jest w stanie zbadać zaszyfrowanych pakietów UDP protokołu QUIC i zamiast tego je blokuje.
Uszkodzona pamięć podręczna lub stan przeglądarki — Przestarzałe dane sesji QUIC w pamięci podręcznej Chrome mogą powodować błędy połączenia, gdy konfiguracja QUIC na serwerze uległa zmianie.
Problemy z QUIC po stronie serwera — Serwer strony internetowej może mieć nieprawidłową implementację QUIC, wygasły certyfikat TLS lub mógł niedawno wyłączyć obsługę QUIC, podczas gdy Chrome nadal próbuje go użyć.
Rozwiązanie 1: Wyłącz protokół QUIC w Chrome
Najszybszą i najbardziej niezawodną poprawką jest całkowite wyłączenie QUIC. Zmusza to Chrome do używania tradycyjnych połączeń TCP+TLS, co całkowicie omija problem. Nie jest to tymczasowe obejście — to prawidłowa konfiguracja stosowana przez wiele działów IT.
Wyłączenie QUIC w Google Chrome
Wykonaj poniższe kroki, aby wyłączyć QUIC w Chrome na Windows, Mac lub Linux.
1. Open Chrome and type in the address bar:
chrome://flags/#enable-quic
2. Find "Experimental QUIC protocol"
3. Change the dropdown from "Default" to "Disabled"
4. Click "Relaunch" at the bottom to restart Chrome
5. Verify: visit the website that showed the errorWyłączenie QUIC w Microsoft Edge
Ponieważ Edge jest oparty na Chromium, procedura jest prawie identyczna.
1. Open Edge and type in the address bar:
edge://flags/#enable-quic
2. Find "Experimental QUIC protocol"
3. Change to "Disabled"
4. Click "Restart" to applyWyłączenie QUIC w Operze i Brave
Opera i Brave używają tego samego systemu flag Chromium.
Opera: opera://flags/#enable-quic → Disabled → Restart
Brave: brave://flags/#enable-quic → Disabled → RestartRozwiązanie 2: Wyczyść pamięć podręczną przeglądarki i dane QUIC
Uszkodzone tokeny sesji QUIC lub przestarzałe dane w pamięci podręcznej mogą powodować uporczywe błędy połączenia. Wyczyszczenie danych przeglądarki wymusza nawiązanie nowych połączeń przez Chrome.
Czyszczenie pamięci podręcznej w Chrome
Wykonaj poniższe kroki, aby wyczyścić pamięć podręczną i dane przeglądania w Chrome.
1. Press Ctrl+Shift+Delete (Windows/Linux) or Cmd+Shift+Delete (Mac)
2. Set time range to "All time"
3. Check these boxes:
✓ Cached images and files
✓ Cookies and other site data
4. Click "Delete data"
5. Restart Chrome and try the website againWyczyszczenie pamięci podręcznej DNS
Wyczyszczenie systemowej pamięci podręcznej DNS może również pomóc w rozwiązaniu problemów z połączeniem. Otwórz terminal lub wiersz poleceń i uruchom odpowiednie polecenie dla swojego systemu operacyjnego.
# Windows (Command Prompt as Administrator)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo systemd-resolve --flush-caches
# Chrome internal DNS cache
# Visit: chrome://net-internals/#dns → Click "Clear host cache"Rozwiązanie 3: Wyłącz rozszerzenia przeglądarki
Rozszerzenia przeglądarki — szczególnie blokery reklam, rozszerzenia VPN i narzędzia prywatności — mogą zakłócać połączenia QUIC. Rozszerzenia modyfikujące żądania sieciowe lub przekierowujące ruch przez serwery proxy są najczęstszymi winowajcami.
Aby sprawdzić, czy rozszerzenie powoduje problem, otwórz Chrome w trybie incognito (Ctrl+Shift+N). Tryb incognito domyślnie wyłącza wszystkie rozszerzenia. Jeśli strona ładuje się poprawnie w trybie incognito, przyczyną jest jedno z rozszerzeń.
1. Go to chrome://extensions/
2. Disable ALL extensions (toggle each one off)
3. Restart Chrome and try the website
4. If the error is gone, re-enable extensions one by one
to find the culprit
5. Common culprits:
- uBlock Origin (rare, but check custom filter lists)
- Privacy Badger
- VPN browser extensions (NordVPN, ExpressVPN, etc.)
- Hola VPN
- HTTPS Everywhere (now built into Chrome)Rozwiązanie 4: Sprawdź ustawienia zapory sieciowej i antywirusa
Zapory sieciowe są najczęstszą przyczyną ERR_QUIC_PROTOCOL_ERROR w sieciach korporacyjnych i zarządzanych. QUIC używa portu UDP 443, który wiele zapór blokuje, ponieważ zezwalają tylko na ruch TCP na tym porcie. Twoja zapora może po cichu odrzucać pakiety QUIC bez widocznego komunikatu o błędzie.
Jeśli kontrolujesz swoją zaporę, musisz zezwolić na wychodzący ruch UDP na porcie 443. Poniżej znajdziesz sposób sprawdzenia i konfiguracji najczęściej spotykanych ustawień.
Zapora systemu Windows
Sprawdź, czy Zapora Windows Defender blokuje port UDP 443.
# Check if UDP 443 outbound is blocked
Get-NetFirewallRule | Where-Object {
$_.Direction -eq 'Outbound' -and $_.Action -eq 'Block'
} | Get-NetFirewallPortFilter | Where-Object {
$_.LocalPort -eq 443 -and $_.Protocol -eq 'UDP'
}
# Allow UDP 443 outbound (run as Administrator)
New-NetFirewallRule -DisplayName "Allow QUIC (UDP 443)" `
-Direction Outbound -Protocol UDP -LocalPort 443 `
-Action Allow -Profile AnyZapora macOS
Wbudowana zapora macOS jest oparta na aplikacjach, a nie na portach. Jeśli używasz zapory innej firmy, takiej jak Little Snitch lub LuLu, sprawdź, czy ruch UDP Chrome jest blokowany.
# Check macOS firewall status
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# List blocked applications
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
# Allow Chrome through the firewall
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add \
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ ChromeZapory na poziomie routera
Niektóre routery mają wbudowane zapory, które blokują ruch UDP na porcie 443. Jest to częste w routerach dostarczanych przez dostawcę internetu. Aby sprawdzić, czy router jest przyczyną, spróbuj połączyć się przez hotspot telefonu — jeśli błąd zniknie, zapora routera jest prawdopodobną przyczyną.
Zaloguj się do panelu administracyjnego routera (zwykle 192.168.1.1 lub 192.168.0.1) i poszukaj ustawień zapory lub zabezpieczeń. Upewnij się, że wychodzący port UDP 443 nie jest zablokowany.
Rozwiązanie 5: Wyłącz VPN lub skonfiguruj przepuszczanie QUIC
Sieci VPN są drugą najczęstszą przyczyną ERR_QUIC_PROTOCOL_ERROR. Większość protokołów VPN tuneluje ruch przez TCP, a pakiety UDP protokołu QUIC są albo odrzucane, albo nieprawidłowo przekształcane, albo całkowicie blokowane przez stos sieciowy VPN.
Aby sprawdzić, czy VPN powoduje problem, rozłącz się z VPN i spróbuj ponownie załadować stronę. Jeśli błąd zniknie, Twój VPN jest przyczyną.
VPN oparte na WireGuard — Zazwyczaj dobrze obsługują UDP, ponieważ sam WireGuard jest oparty na UDP. QUIC zwykle działa przez tunele WireGuard.
OpenVPN (tryb UDP) — Może działać z QUIC, ale wydajność może ucierpieć z powodu narzutu enkapsulacji UDP-w-UDP.
OpenVPN (tryb TCP) — Prawie zawsze przerywa QUIC. Pakiety UDP nie mogą niezawodnie przechodzić przez tunel TCP.
VPN IKEv2/IPSec — Zazwyczaj prawidłowo obsługują ruch QUIC, ponieważ działają na warstwie sieciowej.
Korporacyjne VPN (Cisco AnyConnect, Palo Alto GlobalProtect) — Większość korporacyjnych VPN jawnie blokuje QUIC, aby wymusić przepływ ruchu przez swoje bramy inspekcji HTTPS.
Rozwiązanie 6: Sprawdź ustawienia proxy
Serwery proxy obsługują ruch TCP, ale prawie nigdy nie obsługują połączeń UDP protokołu QUIC. Jeśli jesteś za proxy (skonfigurowanym ręcznie lub ustawionym przez organizację), żądania QUIC z Chrome będą kończyć się niepowodzeniem, ponieważ proxy nie może przekazywać pakietów UDP.
Sprawdź ustawienia proxy i wyłącz proxy lub wyłącz QUIC, aby rozwiązać konflikt.
Sprawdzenie proxy w systemie Windows
1. Press Win+I → Network & Internet → Proxy
2. Under "Manual proxy setup":
- If "Use a proxy server" is ON and you didn't set it,
turn it OFF
3. Under "Automatic proxy setup":
- If "Use setup script" has an unexpected URL,
turn it OFF
4. Alternative: Open Command Prompt and run:
netsh winhttp show proxy
To reset:
netsh winhttp reset proxySprawdzenie proxy w macOS
# Check current proxy settings
networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
# Disable proxy if set
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off
# Or via GUI:
# System Settings → Network → Wi-Fi → Details → Proxies
# Uncheck all proxy typesRozwiązanie 7: Zaktualizuj Chrome do najnowszej wersji
Google regularnie naprawia błędy związane z QUIC w aktualizacjach Chrome. Chrome 93 (2021) domyślnie włączył QUIC, a kolejne wersje poprawiły logikę przełączania na TCP. Jeśli używasz starszej wersji, aktualizacja może rozwiązać problem.
Chrome również okresowo aktualizuje swoją implementację QUIC zgodnie z najnowszymi standardami IETF — starsze wersje mogą używać przestarzałych mechanizmów uzgadniania QUIC, których serwery już nie akceptują.
1. Open Chrome → click ⋮ (three dots) → Help → About Google Chrome
2. Chrome will automatically check for updates
3. If an update is available, click "Relaunch" to apply
4. After updating, verify your Chrome version:
chrome://version
Look for the version number (e.g., Chrome 133.x.x.x)Problemy z QUIC po stronie serwera (dla właścicieli stron)
Jeśli jesteś właścicielem strony i Twoi odwiedzający zgłaszają ERR_QUIC_PROTOCOL_ERROR, problem może leżeć po stronie serwera. Oto najczęstsze przyczyny serwerowe.
Błędna konfiguracja HTTP/3 w Cloudflare — Jeśli korzystasz z Cloudflare, sprawdź, czy HTTP/3 jest prawidłowo włączony w Speed → Optimization → Protocol Optimization. Częściowa lub błędna konfiguracja może powodować sporadyczne błędy QUIC u odwiedzających.
Wygasły lub niezgodny certyfikat TLS — QUIC wymaga ważnego certyfikatu TLS. Jeśli Twój certyfikat wygasł, jest samopodpisany lub nie pasuje do domeny, połączenia QUIC będą kończyć się niepowodzeniem. Użyj narzędzia SSL Checker DNS Robot, aby zweryfikować swój certyfikat.
Problemy z modułem QUIC w Nginx/LiteSpeed — Jeśli prowadzisz własny serwer z obsługą QUIC (przez nginx-quic lub LiteSpeed), upewnij się, że moduł QUIC jest poprawnie skompilowany, a nasłuchiwacz UDP jest przypisany do portu 443.
Load balancer odrzuca UDP — AWS ALB, Azure Application Gateway i niektóre load balancery przekazują tylko TCP. Potrzebujesz network load balancera (L4) lub proxy obsługującego QUIC do przekazywania ruchu UDP.
# Test if your server responds to QUIC (requires curl with HTTP/3)
curl --http3 -I https://your-domain.com
# Check if UDP 443 is open on your server
ss -ulnp | grep 443
# Verify Alt-Svc header (tells browsers QUIC is available)
curl -sI https://your-domain.com | grep -i alt-svc
# Expected: alt-svc: h3=":443"; ma=86400Czy QUIC zostawić włączony, czy wyłączyć?
Wyłączenie QUIC to szybka poprawka, ale tracisz realne korzyści wydajnościowe. Oto praktyczny schemat podejmowania decyzji.
Zostaw QUIC włączony, jeśli jesteś w nieograniczonej sieci (domowa, hotspot mobilny), nie używasz VPN i nie jesteś za korporacyjną zaporą. QUIC skraca czas nawiązywania połączenia o 100-300 ms i eliminuje blokowanie head-of-line, dzięki czemu strony ładują się zauważalnie szybciej — szczególnie w sieciach mobilnych.
Wyłącz QUIC, jeśli jesteś w sieci korporacyjnej, używasz VPN innego niż WireGuard lub jesteś za restrykcyjną zaporą. W tych środowiskach pakiety QUIC są po cichu odrzucane, a przełączanie Chrome na TCP nie zawsze działa niezawodnie. Wyłączenie QUIC całkowicie eliminuje błąd przy minimalnym wpływie na wydajność — różnica na łączach szerokopasmowych wynosi zazwyczaj poniżej 200 ms na załadowanie strony.
| Scenariusz | Zalecenie | Powód |
|---|---|---|
| Sieć domowa, bez VPN | Zostaw QUIC włączony | Pełne korzyści wydajnościowe, brak zakłóceń |
| Sieć mobilna (4G/5G) | Zostaw QUIC włączony | Migracja połączeń QUIC obsługuje przełączanie sieci |
| Sieć korporacyjna | Wyłącz QUIC | Zapory zazwyczaj blokują UDP 443 |
| VPN (nie WireGuard) | Wyłącz QUIC | Większość VPN przerywa tunel UDP QUIC |
| VPN (WireGuard) | Zostaw QUIC włączony | WireGuard natywnie obsługuje UDP |
| Za serwerem proxy | Wyłącz QUIC | Serwery proxy nie mogą przekazywać ruchu UDP |
Sprawdź swoje połączenie i ustawienia DNS
Użyj darmowego narzędzia HTTP Headers Checker od DNS Robot, aby zweryfikować konfigurację QUIC (HTTP/3) i nagłówki Alt-Svc swojego serwera.
Try HTTP Headers CheckerFrequently Asked Questions
ERR_QUIC_PROTOCOL_ERROR oznacza, że Chrome próbował połączyć się ze stroną internetową za pomocą protokołu QUIC (przez UDP na porcie 443) i połączenie nie powiodło się. Jest to błąd transportowy po stronie przeglądarki — nie problem z zawartością strony ani z Twoim połączeniem internetowym.