Proxy timeout սխալներ. կապը կախվում է, ապա ընդհատվում
Updated:
Timeout-ն ավելի հիասթափեցնող է, քան մյուս սխալները, որովհետև ոչինչ չի հայտնում. ոչ մերժում, ոչ գաղտնաբառի հարցում, պարզապես լռություն, մինչև ձեր ծրագիրը դադարում է փորձել: Սովորաբար ձեր փաթեթները գնում են ինչ-որ տեղ և անհետանում, կամ պրոքսին ընդունում է կապը, բայց ժամանակին չի պատասխանում: Խնդիրն այն է, թե որ փուլում է առաջանում այդ լռությունը:
Timeout-ի երեք արդյունք, որոնք մենք չափել ենք
Մենք կարգավորեցինք թեստային պրոքսի, որն ընդունում է 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-ները հաճախ մերժելու փոխարեն պարզապես կորցնում են անսովոր պորտերին ուղղված փաթեթները, ուստի դուք սպասում եք անվերջ:
- Ձեր կոդում timeout-ը չափազանց կարճ է: Հեռավոր երկրում գտնվող պրոքսիին handshake-ի համար մի փոքր ավելի շատ ժամանակ է պետք. 2–3 վայրկյանի սահմանաչափը կարող է ընդհատել լիովին աշխատող պրոքսին:
- Պրոքսին կամ թիրախային կայքը ծանրաբեռնված են: Պրոքսին ընդունում է կապը, բայց սպասում է կայքին, և ձեր սպասելու ժամանակը սպառվում է ավելի շուտ:
- Սխալ IP: Վրիպակը, որի պատճառով հարցումն ուղղվում է չպատասխանող հասցեին, մերժման փոխարեն հանգեցնում է լռության:
Լուծումներ ըստ միջավայրի
- Windows/Chrome. փորձեք նույն պրոքսին ձեր հեռախոսի բջջային ինտերնետով: Եթե timeout-ն անհետանում է, նշանակում է՝ սկզբնական ցանցն է արգելափակում. կարդացեք պրոքսիի և firewall-ի ստուգումը:
- Antidetect բրաուզերներ. պրոքսիի ստուգման կոճակը սովորաբար ունի սպասման ֆիքսված ժամանակ: Փորձեք մի քանի անգամ, և եթե միայն որոշ պրոֆիլներ են ձախողվում, համեմատեք դրանց պրոքսիի տողը աշխատող տողի հետ:
- Telegram. պրոքսին միացնելուց հետո «connecting» վիճակում մնալը նույնպես հաճախ timeout է. նախքան Telegram-ի կարգավորումները փոխելը, ստուգեք պրոքսին ստուգիչով:
- Python requests. փոխանցեք
timeout=(10, 30), ինչը նշանակում է 10 վայրկյան միանալու և 30 վայրկյան կարդալու համար: Առանձին որսացեքrequests.exceptions.ConnectTimeout-ը ևrequests.exceptions.ReadTimeout-ը՝ տեսնելու, թե որտեղ է այն կախվում, և ավելացրեք որոշակի ընդմիջումներով կրկնակի փորձեր՝ անսահմանափակ timeout-ի փոխարեն: - curl. օգտագործեք
--connect-timeout՝ միայն միացման փուլը չափելու համար, և-m՝ ամբողջ հրամանը սահմանափակելու համար:
Timeout, թե՞ ուղղակի դանդաղ
Դանդաղ պրոքսին միևնույն է պատասխանում է, պարզապես ուշացումով: Պրոքսիի արագության թեստը ցույց է տալիս իրական արձագանքման ժամանակը. եթե այն մոտ է ձեր ծրագրի timeout-ին, մեծացրեք սահմանաչափը կամ ընտրեք թիրախին ավելի մոտ գտնվող երկրի պրոքսի: Եթե կրկնվող թեստերը երբեք պատասխան չեն ստանում, դա իսկական timeout է, և հաջորդ քայլը ստուգիչի արդյունքներով հարցում (ticket) բացելն է:
Քայլ առ քայլ
- 1
Հաստատեք timeout-ը ստուգիչով
Տեղադրեք պրոքսիի տողը պրոքսիի ստուգիչում:
timeoutարդյունքը նշանակում է, որ սպասման սահմանաչափի ընթացքում որևէ պատասխան չի ստացվել: - 2
Փոխեք ցանցը՝ պատճառը պարզելու համար
Կրկին փորձեք բջջային ինտերնետով: Եթե այն աշխատում է, ապա խնդիրը հիմնական ցանցն է կամ դրա firewall-ը:
- 3
Չափեք արձագանքման ժամանակը
Գործարկեք պրոքսիի արագության թեստը՝ տեսնելու, թե արդյոք պրոքսին դանդաղ է, թե ընդհանրապես չի պատասխանում:
- 4
Կարգավորեք timeout-ները և կրկնափորձերը ձեր ծրագրում
Բարձրացրեք միացման սահմանաչափը մոտ 10 վայրկյանի, ավելացրեք կրկնափորձեր և առաջադրանքը կրկին գործարկեք:
Հաճախ տրվող հարցեր
Արդյո՞ք պրոքսիի timeout-ը նշանակում է, որ պրոքսին չի աշխատում:
Պարտադիր չէ: Շատ timeout-ներ առաջանում են այն պատճառով, որ օգտատիրոջ ցանցն արգելափակում է պորտը: Եզրակացություն անելուց առաջ փորձարկեք այլ ցանցից:
Կոդում ի՞նչ timeout պետք է սահմանել պրոքսիների համար:
Մոտ 10 վայրկյան միանալու և 30 վայրկյան կարդալու համար՝ խելամիտ մեկնարկային կետ է: Հեռավոր պրոքսիները կամ ծանր էջերը կարող են ավելին պահանջել:
Ինչո՞ւ են պրոքսիով միայն որոշակի կայքեր timeout տալիս:
Այդ դեպքում պրոքսին աշխատում է, իսկ նպատակակետ կայքն է դանդաղ կամ արգելափակում է: Եթե կայքը լռության փոխարեն 502 է վերադարձնում, տեսեք 502 Bad Gateway:
Ինչո՞վ է timeout-ը տարբերվում մերժված միացումից:
Մերժումը վերադառնում է ակնթարթորեն, իսկ timeout-ը սպասում է մինչև սահմանաչափի ավարտը: Տեսեք միացումները մերժող պրոքսի սերվեր:
Ընտրեք ձեր շուկային մոտ գտնվող պրոքսի
VinaProxy-ն առաջարկում է IP-ներ Վիետնամում, ԱՄՆ-ում, Ճապոնիայում, Հարավային Կորեայում, Սինգապուրում, Մեծ Բրիտանիայում և Հոնկոնգում, որպեսզի կարողանաք մոտ լինել ձեր թիրախին:
Տեսնել գները