Помилки таймауту проксі: з'єднання зависає, а потім переривається
Updated:
Таймаут дратує більше за інші помилки, адже він нічого не повідомляє: ані відмови, ані запиту пароля — лише тиша, доки ваша програма не здасться. Зазвичай пакети відправляються й безслідно зникають або ж проксі приймає з'єднання, але не відповідає вчасно. Завдання полягає в тому, щоб з'ясувати, на якому етапі виникає ця тиша.
Три варіанти виводу таймауту, які ми зафіксували
Ми налаштували тестовий проксі, який приймає TCP-з'єднання й ніколи не відповідає, після чого виконали однаковий запит із двома типами обмеження часу (адресу замінено на 203.0.113.10:8080, user123:pass456):
curl --connect-timeout 10 -x http://user123:[email protected]:8080 https://example.comвидаєcurl: (28) Proxy CONNECT aborted due to timeout. Цей ліміт поширюється лише на фазу з'єднання.- Заміна на
-m 10(ліміт на всю передачу даних) видаєcurl: (28) Connection timed out after 10002 milliseconds. - Chromium, налаштований на той самий проксі, видає
ERR_TIMED_OUT, а чекер проксі повідомляє проtimeout.
Причини: від найбільш імовірних
- Ваша мережа непомітно блокує порт проксі. Wi-Fi в офісах, готелях чи кампусах часто відкидає пакети на нестандартні порти замість відмови, тому ви чекаєте нескінченно.
- Занадто малий таймаут у коді. Проксі у віддаленій країні потребує трохи більше часу на рукостискання; ліміт у 2–3 секунди може обірвати цілком робочий проксі.
- Перевантаження проксі або цільового сервера. Проксі приймає з'єднання, але чекає на відповідь від сайту, і ваше терпіння вичерпується першим.
- Неправильна IP-адреса. Помилка в адресі, що скеровує на неактивний вузол, призводить до тиші замість явної відмови.
Виправлення за типами середовища
- Windows/Chrome: спробуйте той самий проксі через мобільний інтернет із телефона. Якщо таймаут зникне, винне блокування в початковій мережі; прочитайте про перевірку проксі та фаєрвола.
- Антидетект-браузери: кнопка перевірки проксі зазвичай має фіксований час очікування. Спробуйте кілька разів, і якщо збій виникає лише в окремих профілях, порівняйте їхні рядки налаштування проксі з робочими.
- Telegram: зависання на статусі підключення після ввімкнення проксі — це теж часто таймаут; перевірте проксі в чекері, перш ніж змінювати налаштування Telegram.
- Python requests: передавайте
timeout=(10, 30), тобто 10 секунд на з'єднання та 30 секунд на читання. Перехоплюйтеrequests.exceptions.ConnectTimeoutіrequests.exceptions.ReadTimeoutокремо, щоб бачити, де саме виникає зависання, та додайте кілька повторних спроб з інтервалом замість необмеженого таймауту. - curl: використовуйте
--connect-timeout, щоб виміряти окремо фазу з'єднання, та-m, щоб обмежити виконання всієї команди.
Таймаут чи просто повільна робота?
Повільний проксі все ж дає відповідь, хоч і з запізненням. Тест швидкості проксі показує реальний час відповіді; якщо він близький до таймауту вашого софту, збільште ліміт або виберіть проксі в країні, ближчій до цільового ресурсу. Якщо повторні перевірки так і не отримують відповіді, це справжній таймаут, і наступним кроком має стати звернення в підтримку з результатом перевірки.
Покроково
- 1
Підтвердьте таймаут за допомогою чекера
Вставте рядок проксі в чекер проксі. Результат
timeoutозначає, що відповідь не надійшла протягом ліміту очікування. - 2
Змініть мережу, щоб локалізувати проблему
Повторіть спробу через мобільний інтернет. Якщо все працює, причина в початковій мережі або її фаєрволі.
- 3
Виміряйте час відповіді
Запустіть тест швидкості проксі, щоб зрозуміти, повільно працює проксі чи взагалі не відповідає.
- 4
Налаштуйте таймаути та повтори у вашому софті
Збільште ліміт з'єднання приблизно до 10 секунд, додайте повторні спроби та запустіть завдання знову.
Часті запитання
Чи означає таймаут, що проксі не працює?
Не обов'язково. Багато таймаутів спричинено тим, що мережа користувача блокує порт. Перевірте роботу через іншу мережу, перш ніж робити висновки.
Який таймаут для проксі варто встановлювати в коді?
Приблизно 10 секунд на з'єднання та 30 секунд на читання — розумна відправна точка. Для віддалених проксі або «важких» сторінок може знадобитися більше.
Чому через проксі таймаут виникає лише на певних сайтах?
У такому разі проксі працює, а повільно відповідає або блокує сам цільовий сайт. Якщо сайт видає 502 замість тиші, дивіться 502 Bad Gateway.
Чим таймаут відрізняється від відхиленого з'єднання?
Відмова надходить миттєво, а під час таймауту очікування триває до вичерпання ліміту. Дивіться статтю проксі-сервер відхиляє з'єднання.
Виберіть проксі ближче до вашого ринку
VinaProxy пропонує IP у В'єтнамі, США, Японії, Південній Кореї, Сінгапурі, Великій Британії та Гонконзі, тож ви можете бути ближче до своєї цілі.
Переглянути ціни