Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach: BTC, USDT, USDC, ETH, SOL, LTC
Język: Polski
Rozpocznij

Referencja błędu proxy · Błędy w przeglądarce i kliencie

net::ERR_TUNNEL_CONNECTION_FAILED z proxy: przyczyny i rozwiązania

Błąd sieci Chromium: dokładny komunikat w każdym narzędziu, możliwe przyczyny w kolejności oraz działające rozwiązanie.

Ostatnia aktualizacja: · 4 min czytania

Szybka odpowiedź

Co oznacza ERR_TUNNEL_CONNECTION_FAILED w kontekście proxy?

net::ERR_TUNNEL_CONNECTION_FAILED oznacza, że Chrome poprosił proxy o otwarcie tunelu do strony HTTPS, ale proxy nie odpowiedziało 200 Connection established. Przeglądarka ukrywa prawdziwy status. Przy CrawlRelay residential proxies zwykle brak danych uwierzytelniających w Playwright lub Puppeteer, potem cel niedostępny dla bramki. Odtwórz z curl -v, by zobaczyć prawdziwy kod.

ERR_TUNNEL_CONNECTION_FAILED w skrócie

BłądERR_TUNNEL_CONNECTION_FAILED
TypBłąd sieci Chromium
Wysłane przezTwoja przeglądarka, po odmowie lub niepowodzeniu żądania CONNECT przez proxy
Zdefiniowano wCONNECT method: RFC 9110, section 9.3.6
Spróbować ponownie?Dopiero po odkryciu faktycznego statusu za tym błędem
Najpierw sprawdźOdtwórz z curl -v, by zobaczyć rzeczywisty status CONNECT

Co oznacza ERR_TUNNEL_CONNECTION_FAILED?

Aby załadować stronę HTTPS przez HTTP proxy, przeglądarka najpierw wysyła CONNECT host:443. Jeśli proxy odpowie 200, przeglądarka zaczyna TLS w tunelu. Każda inna odpowiedź, np. 407, 403 lub 502, kończy próbę, a Chromium zgłasza ogólny błąd.

Dlatego ten błąd wskazuje miejsce awarii - tunel, ale nie powód. Powodem jest status proxy, który zobaczysz curl.

Jak wygląda ERR_TUNNEL_CONNECTION_FAILED w Python, curl, Node.js i przeglądarkach?

Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:

  • Playwright: page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://...
  • Puppeteer: Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://...
  • Pasek adresu Chrome: 'Nie można uzyskać dostępu do tej witryny' z kodem ERR_TUNNEL_CONNECTION_FAILED
  • Selenium z Chrome: ten sam kod wewnątrz WebDriverException

Co powoduje ERR_TUNNEL_CONNECTION_FAILED?

Najczęściej na początku:

  • Brak przesłanych danych logowania (ukryty 407). Chrome ignoruje nazwę użytkownika i hasło w --proxy-server.
  • Odmowa dostępu (ukryty 403), np. kategoria zablokowana przez politykę użycia proxy.
  • Nieosiągalny cel (ukryty 502 lub 504): martwy host, literówka lub błąd DNS na wyjściu.
  • Zły port: skierowanie przeglądarki na port SOCKS5 jak na HTTP lub odwrotnie.

Jak krok po kroku zdiagnozować ERR_TUNNEL_CONNECTION_FAILED?

  1. Uruchom ten sam URL przez curl z -v (polecenie poniżej) i odczytaj linię po CONNECT.
  2. 407 oznacza dane uwierzytelniające; 403 odmowę dostępu; 502 lub 504 cel lub wyjście.
  3. Potwierdź, że przeglądarka korzysta z portu HTTP dla serwera proxy http://.
  4. Przetestuj prostą stronę, np. https://api.ipify.org, zanim przejdziesz do rzeczywistego celu.
Przetestuj nie działający URL za pomocą curl (port HTTP, tryb verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Jak naprawić ERR_TUNNEL_CONNECTION_FAILED?

Playwright (Python): poświadczenia jako oddzielne pola
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gw.crawlrelay.com:7777",
        "username": "USERNAME-country-us",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    response = page.goto("https://api.ipify.org")
    print(response.status, page.inner_text("body"))
    browser.close()

Czy warto ponawiać próbę po ERR_TUNNEL_CONNECTION_FAILED?

Ponów próbę tylko jeśli znasz ukryty status. Ukryty 407 lub 403 będzie powtarzany w nieskończoność; popraw konfigurację. Ukryty 502 lub 504 można ponowić na nowym wyjściu, jak każdy błąd bramki.

Jak ERR_TUNNEL_CONNECTION_FAILED odnosi się do CrawlRelay?

Port HTTP CrawlRelay obsługuje HTTPS przez tunele CONNECT, które wspiera każde narzędzie oparte na Chromium. Używaj portu HTTP dla przeglądarek: Chromium nie obsługuje SOCKS5 z nazwą użytkownika i hasłem.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Powiązane: 407 Proxy Authentication Required · ERR_PROXY_CONNECTION_FAILED · Instrukcja Playwright.

ERR_TUNNEL_CONNECTION_FAILED: pytania, które zadają deweloperzy

Dlaczego curl działa, a Playwright pokazuje ERR_TUNNEL_CONNECTION_FAILED?

Ponieważ curl przesyła dane logowania z URL proxy, a Chromium ignoruje dane logowania wpisane w adres serwera proxy. W Playwright podaj username i password jako oddzielne pola w opcji proxy. W Puppeteer wywołaj page.authenticate() przed nawigacją.

Czy mogę używać proxy SOCKS5 z uwierzytelnianiem w Chrome?

Nie bezpośrednio. Chromium obsługuje proxy SOCKS5, ale nie SOCKS5 z uwierzytelnianiem przez nazwę użytkownika i hasło. Zamiast tego użyj portu HTTP bramki, który obsługuje HTTPS przez tunele CONNECT, lub uruchom lokalny forwarder uwierzytelniający przeglądarkę.

Czy ERR_TUNNEL_CONNECTION_FAILED jest spowodowany przez stronę internetową?

Rzadko bezpośrednio. Tunel jest między przeglądarką a proxy, więc błąd pojawia się zanim strona internetowa zobaczy handshake TLS. Strona może być pośrednią przyczyną, gdy jest niedostępna, a proxy odpowiada 502 lub 504 na żądanie CONNECT.

Inne błędy proxy w tym odniesieniu

Kody statusu HTTP

Błędy w przeglądarce i kliencie

Błędy połączenia i TLS

Proxy rezydencjalne z dokumentacją opisującą przypadki błędów

CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa.

Od 0,50 USD/GB · bez KYC

Rozpocznij