Памылкі тайм-аўту проксі: злучэнне завісае, а потым перарываецца
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 у В'етнаме, ЗША, Японіі, Паўднёвай Карэі, Сінгапуры, Вялікабрытаніі і Ганконгу, каб вы маглі знаходзіцца бліжэй да вашай мэты.
Паглядзець тарыфы