Błędy proxy timeout: połączenie zawiesza się, a potem przerywa
Updated:
Błąd limitu czasu jest bardziej frustrujący niż inne błędy, ponieważ niczego nie wyjaśnia: brak odmowy, brak monitu o hasło, po prostu cisza, aż Twoje oprogramowanie się podda. Zazwyczaj pakiety trafiają w próżnię i znikają albo serwer proxy akceptuje połączenie, lecz nie odpowiada na czas. Zadaniem jest ustalenie, na którym etapie pojawia się ta cisza.
Trzy rezultaty błędu timeout, które zmierzyliśmy
Skonfigurowaliśmy testowy serwer proxy, który akceptuje połączenia TCP i nigdy nie odpowiada, a następnie wykonaliśmy to samo żądanie z dwoma rodzajami limitu czasu (adres zapisany jako 203.0.113.10:8080, user123:pass456):
curl --connect-timeout 10 -x http://user123:[email protected]:8080 https://example.comzwracacurl: (28) Proxy CONNECT aborted due to timeout. Ten limit obejmuje wyłącznie fazę nawiązywania połączenia.- Zastosowanie w zamian
-m 10(limitu na cały transfer) zwracacurl: (28) Connection timed out after 10002 milliseconds. - Chromium skierowane na ten sam serwer proxy zgłasza
ERR_TIMED_OUT; tester proxy zgłaszatimeout.
Przyczyny, od najbardziej prawdopodobnych
- Twoja sieć po cichu blokuje port proxy. Sieci Wi-Fi w biurach, hotelach i na uczelniach często po cichu porzucają pakiety na nietypowe porty, zamiast odmówić połączenia, przez co czekasz w nieskończoność.
- Limit czasu w Twoim kodzie jest zbyt krótki. Serwer proxy w odległym kraju potrzebuje nieco więcej czasu na handshake; limit 2–3 sekund może odciąć serwer proxy, który działa bez zarzutu.
- Serwer proxy lub strona docelowa są przeciążone. Serwer proxy akceptuje połączenie, ale czeka na witrynę, a Twoja cierpliwość kończy się wcześniej.
- Błędny adres IP. Literówka prowadząca do nieodpowiadającego adresu skutkuje ciszą, a nie jawnym odrzuceniem połączenia.
Rozwiązania według środowiska
- Windows/Chrome: wypróbuj ten sam serwer proxy przez komórkową transmisję danych w telefonie. Jeśli błąd timeout zniknie, blokuje go sieć wyjściowa; przeczytaj sprawdzanie serwera proxy i zapory sieciowej.
- Przeglądarki antidetect: przycisk sprawdzania proxy ma zazwyczaj stały czas oczekiwania. Ponów próbę kilka razy, a jeśli błąd występuje tylko w niektórych profilach, porównaj ich dane proxy z działającym profilem.
- Telegram: utknięcie na łączeniu po włączeniu proxy to często również timeout; przetestuj proxy w testerze przed wprowadzaniem zmian w Telegramie.
- Python requests: przekaż
timeout=(10, 30), co oznacza 10 sekund na połączenie i 30 sekund na odczyt. Przechwytujrequests.exceptions.ConnectTimeoutorazrequests.exceptions.ReadTimeoutosobno, aby zobaczyć, gdzie dochodzi do zawieszenia, i dodaj kilka ponowień w odstępach czasu zamiast nielimitowanego limitu czasu. - curl: użyj
--connect-timeout, aby zmierzyć sam etap nawiązywania połączenia, oraz-m, aby ograniczyć czas trwania całego polecenia.
Timeout czy po prostu wolne połączenie?
Wolny serwer proxy nadal odpowiada, tyle że z opóźnieniem. Test prędkości proxy pokazuje rzeczywisty czas odpowiedzi; jeśli jest on bliski limitu czasu Twojego oprogramowania, zwiększ limit lub wybierz serwer proxy w kraju położonym bliżej celu. Jeśli wielokrotne testy nigdy nie przynoszą odpowiedzi, jest to faktyczny timeout, a kolejnym krokiem jest zgłoszenie do pomocy technicznej z wynikiem z testera.
Krok po kroku
- 1
Potwierdź błąd timeout w testerze
Wklej dane proxy do testera proxy. Wynik
timeoutoznacza, że w określonym limicie czasu nie nadeszła żadna odpowiedź. - 2
Przełącz sieć, aby zawęzić przyczynę
Ponów próbę przez komórkową transmisję danych. Jeśli to pomoże, problemem jest pierwotna sieć lub jej zapora sieciowa.
- 3
Zmierz czas odpowiedzi
Uruchom test prędkości proxy, aby sprawdzić, czy serwer proxy działa wolno, czy w ogóle nie odpowiada.
- 4
Dostosuj limity czasu i ponowienia w oprogramowaniu
Zwiększ limit czasu połączenia do około 10 sekund, dodaj ponowienia próby i uruchom zadanie ponownie.
Często zadawane pytania
Czy błąd proxy timeout oznacza, że serwer proxy nie działa?
Niekoniecznie. Wiele błędów timeout wynika z blokowania portu przez sieć użytkownika. Przetestuj połączenie z innej sieci przed wyciągnięciem wniosków.
Jaki limit czasu dla proxy ustawić w kodzie?
Rozsądnym punktem wyjścia jest około 10 sekund na połączenie i 30 sekund na odczyt. Odległe serwery proxy lub wymagające strony mogą potrzebować więcej.
Dlaczego błąd timeout przez proxy występuje tylko na niektórych stronach?
W takim przypadku serwer proxy działa prawidłowo, a strona docelowa odpowiada wolno lub blokuje ruch. Jeśli witryna zwraca kod 502 zamiast ciszy, zobacz 502 Bad Gateway.
Czym różni się błąd timeout od odrzucenia połączenia?
Odrzucenie następuje natychmiast; timeout czeka do wyczerpania limitu czasu. Zobacz serwer proxy odrzuca połączenia.
Wybierz serwer proxy blisko swojego rynku
VinaProxy oferuje adresy IP w Wietnamie, USA, Japonii, Korei Południowej, Singapurze, Wielkiej Brytanii i Hongkongu, dzięki czemu możesz być blisko swojego celu.
Zobacz cennik