VVinaProxy

Jak naprawić ERR_TUNNEL_CONNECTION_FAILED z proxy

Updated:

Aby załadować stronę https:// przez proxy, przeglądarka wysyła żądanie CONNECT i czeka, aż serwer proxy otworzy tunel do witryny. ERR_TUNNEL_CONNECTION_FAILED pojawia się, gdy proxy odpowiada na to żądanie błędem zamiast je zaakceptować. Problem w tym, że Chrome nie informuje, o jaki błąd chodzi, dlatego pierwszym krokiem jest ustalenie rzeczywistego kodu.

Proxy kompatybilne z Puppeteerem i Playwrightem

Dwa przypadki, które odtworzyliśmy

Oba testy wykonano przy użyciu testowego serwera proxy, zapisanego tutaj za pomocą przykładowego adresu z dokumentacji: 203.0.113.10:8080 oraz user123:pass456. W zwykłym oknie Chrome błąd 407 nie wywołuje błędu tunelu – zamiast tego Chrome otwiera okno logowania z pytaniem o nazwę użytkownika i hasło do proxy. Błędy tunelowania wywołane kodem 407 pojawiają się więc głównie w narzędziach do automatyzacji oraz w aplikacjach, które nie potrafią wyświetlić monitu o hasło.

Proxy odpowiada na CONNECT kodemChrome wyświetlacurl wyświetla
407 bez możliwości podania hasła (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502, ponieważ proxy nie może połączyć się ze stronąERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Przyczyny – od najbardziej prawdopodobnych

  • Skrypt automatyzacji nie przekazuje danych uwierzytelniających. Flaga --proxy-server w Chrome akceptuje wyłącznie host i port, a nie user:pass. Działający w trybie headless Puppeteer lub Selenium otrzymuje kod 407 i zgłasza błąd tunelu.
  • Aplikacja w telefonie działająca za proxy Wi-Fi chronionym hasłem. Aplikacja nie wyświetla okna logowania, przez co połączenia HTTPS zawodzą, mimo że przeglądarka nadal działa.
  • Proxy nie może nawiązać połączenia z serwerem docelowym. Zwraca kod 502 na żądanie CONNECT; szczegółowo opisuje to strona błędu 502 Bad Gateway.
  • Problem występuje tylko na niektórych stronach. Serwer docelowy blokuje ruch lub nie działa, podczas gdy inne witryny otwierają się poprawnie przez to samo proxy.

Sprawdź prawdziwy kod za pomocą jednego polecenia curl

Uruchom curl -v -x http://user123:[email protected]:8080 https://example.com, wstawiając własne parametry. Sprawdź wiersz znajdujący się tuż po > CONNECT example.com:443 HTTP/1.1: kod 407 oznacza konieczność przejścia do poradnika dotyczącego 407, a 502 wskazuje na problem z serwerem docelowym lub trasą za proxy. Jeśli wolisz uniknąć terminala, wklej te dane do testera proxy, który w identycznych sytuacjach wyświetla auth failed (407) lub HTTP 502.

Rozwiązania w zależności od środowiska

  • Puppeteer: podczas uruchamiania zachowaj parametr --proxy-server=http://host:port i wywołaj page.authenticate({ username, password }) przed nawigacją. Pełny przykład znajdziesz w poradniku proxy dla Puppeteer.
  • Playwright: przekaż parametr proxy: { server, username, password } podczas uruchamiania przeglądarki, a Playwright automatycznie obsłuży kod 407; zobacz Playwright.
  • Selenium: Chrome nie przyjmuje danych user:pass w wierszu poleceń; sprawdzone rozwiązania znajdziesz w poradniku Selenium.
  • Chrome w Windows: jeśli okno logowania w ogóle się nie pojawia, sprawdź, czy nie blokuje go rozszerzenie proxy, a następnie ponów próbę w oknie bez rozszerzeń.
  • Smartfony: w przypadku aplikacji wymagających uwierzytelnionego proxy skorzystaj z aplikacji proxy obsługującej user:pass, zgodnie z poradnikiem konfiguracji dla systemu Android.

Krok po kroku

  1. 1

    Zidentyfikuj odpowiedź na CONNECT

    Uruchom polecenie curl -v -x z parametrami swojego proxy lub wklej je do testera, aby dowiedzieć się, czy proxy zwraca kod 407 czy 502.

  2. 2

    Dla 407: przekaż dane logowania we właściwy sposób

    W skryptach korzystaj z wbudowanego mechanizmu uwierzytelniania w danej bibliotece zamiast umieszczać user:pass w parametrze --proxy-server.

  3. 3

    Dla 502: sprawdź inną stronę

    Załaduj popularną witrynę, taką jak example.com, przez to samo proxy. Jeśli działa, problem tkwi w pierwotnym adresie docelowym.

  4. 4

    Uruchom ponownie i potwierdź wyjściowy adres IP

    Gdy tunel zostanie otwarty, odwiedź stronę moje IP w tej samej przeglądarce, aby potwierdzić, że ruch przechodzi przez proxy.

Często zadawane pytania

Dlaczego strony http się ładują, a https nie działają?

Zwykły protokół http nie wymaga żądania CONNECT; proxy przekazuje zapytanie bezpośrednio. Tylko https otwiera tunel, dlatego błędy tunelowania występują wyłącznie w tym przypadku.

Co powoduje błąd ERR_TUNNEL_CONNECTION_FAILED na Androidzie?

Najczęściej aplikacja, która nie potrafi przekazać nazwy użytkownika i hasła do serwera proxy w sieci Wi-Fi. Spróbuj otworzyć tę samą stronę w Chrome na Androidzie – jeśli Chrome wyświetli monit i załaduje stronę, problem leży po stronie aplikacji.

Czy mogę podać user:pass wewnątrz --proxy-server?

Nie. Chrome ignoruje dane logowania w tej fladze, co prowadzi do kodu 407 i błędu tunelu. Zamiast tego uwierzytelnij się za pomocą Puppeteera, Playwrighta lub rozszerzenia.

Czy zmiana na SOCKS5 usunie błąd tunelu?

Tylko wtedy, gdy Twoje zamówienie obejmuje SOCKS5. VinaProxy oferuje zarówno HTTP(S), jak i SOCKS5; wybierz protokół przypisany do zamówienia w panelu klienta, ponieważ niezgodność wywoła inne błędy.

Proxy kompatybilne z Puppeteerem i Playwrightem

Serwery proxy VinaProxy korzystają ze standardowego logowania user:pass, które popularne biblioteki do automatyzacji obsługują natywnie.

Zobacz cennik

Related articles

Błędy proxy
Jak naprawić błąd 407 Proxy Authentication Required
Błąd 407 Proxy Authentication Required oznacza, że serwer proxy odrzucił logowanie. Zobacz przyczyny błędu, logi curl oraz instrukcje naprawy dla aplikacji.
Błędy proxy
Błędy proxy 502 Bad Gateway: dowiedz się, kto je zwrócił
Błąd 502 Bad Gateway przez proxy oznacza brak poprawnej odpowiedzi od serwera. Sprawdź, czy zawiniło proxy, czy strona WWW, na podstawie logów z curl.
Konfiguracja proxy
Jak skonfigurować uwierzytelniane proxy w Puppeteer (Node.js)
Skonfiguruj uwierzytelniane proxy HTTP(S) w Node.js Puppeteer za pomocą flagi --proxy-server i await page.authenticate(). Skopiuj gotowe przykłady.
Konfiguracja proxy
Jak skonfigurować proxy w Playwright (autoryzacja Browser i Per-Context)
Skonfiguruj proxy HTTP(S) z autoryzacją w Playwright dla Node.js i Python oraz uruchamiaj wiele statycznych IP w osobnych BrowserContexts. Skopiuj przykłady.
Konfiguracja proxy
Jak skonfigurować proxy z autoryzacją w Selenium WebDriver
Skonfiguruj proxy HTTP(S) z autoryzacją login:hasło w Selenium WebDriver za pomocą selenium-wire lub rozszerzenia Chrome onAuthRequired. Zobacz kod.
Darmowe narzędzia
Proxy Checker: sprawdź swoje proxy online
Darmowy proxy checker: wklej do 100 proxy jako ip:port:user:pass i sprawdź status, IP wyjściowe oraz opóźnienie online. Zobacz, co oznacza każdy błąd.
Konfiguracja proxy
Jak skonfigurować proxy w Google Chrome
Skonfiguruj proxy HTTP(S) VinaProxy w Google Chrome bez zmiany IP całego systemu, używając rozszerzeń, flag --proxy-server lub osobnych profili użytkownika.
Konfiguracja proxy
Jak skonfigurować serwer proxy w Windows 10 i Windows 11
Skonfiguruj serwery proxy HTTP(S) VinaProxy w Windows 10 i Windows 11 za pomocą Ustawień WinINET, zmiennych środowiskowych PowerShell lub netsh winhttp.