curl-ի SOCKS-ից HTTP պրոքսի շղթան
Կարգավորեք curl-ի աջակցած SOCKS–HTTP շղթան, որոշեք վերջնակետերի հերթականությունը և միացնելուց առաջ փորձարկեք յուրաքանչյուր օղակը։
curl-ի --preproxy տարբերակը միանում է SOCKS պրոքսիին՝ նախքան HTTP կամ HTTPS պրոքսիին հասնելը։ Այն աջակցում է այս կոնկրետ շղթային, ոչ թե պրոքսի սերվերների կամայական ցանկի։
Ուղին է՝ հաճախորդ → SOCKS վերջնակետ → HTTP պրոքսի → նպատակակետ։ Փոխարինեք հրամանի երկու փաստաթղթավորման վերջնակետերը․
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
SOCKS ծառայությունը պետք է հասնի HTTP պրոքսիի հասցեին և պորտին։ Հետո HTTP պրոքսին պետք է ընդունի նպատակակետի հարցումը։ Եթե երկրորդ պրոքսին հոսթի անունով է, առաջին SOCKS ռեժիմը որոշում է, որտեղ է այդ անունը լուծվում․ թվային վերջնակետը շրջանցում է այդ որոնումը։
Ձախողված օղակի որոնում
Նախ հաստատեք հարցում յուրաքանչյուր վերջնակետով առանձին․ HTTP օղակի համար օգտագործեք ժամանակային սահմաններով HTTP պրոքսիի փորձարկում։ Նույնիսկ եթե երկուսն էլ աշխատում են, համակցված ուղին կարող է ձախողվել, քանի որ առաջին պրոքսին չի հասնում երկրորդին։
Մանրամասն հետագիծը կարդացեք միացումների հերթականությամբ։ Երկրորդ պրոքսիին հասնելու ժամանակ SOCKS ձախողումը տեղի է ունենում նախքան HTTP պրոքսիի՝ կայքի CONNECT-ը ընդունելու կամ մերժելու որոշումը։ Գրանցեք՝ որ ձեռքսեղմումն է ձախողվել։
Երբ է օգտակար լրացուցիչ օղակը
Այս կառուցվածքը կարող է օգնել, երբ թույլատրված HTTP պրոքսին հասանելի է SOCKS ուղով։ Սակայն այն ավելացնում է ևս մեկ ծառայություն ու ցանցային ուղի, որոնք կարող են ձախողվել կամ ուշացում ավելացնել։ Հանրային պրոքսի ցանկի վերջնակետերը շղթայելը հուսալիության կամ անանունության երաշխիք չի տալիս և շարունակում է պահանջել վստահություն միացումը մշակող կողմերի նկատմամբ։
--preproxy-ը պահանջում է curl 7.52.0 կամ ավելի նոր․ այլ հավելվածներ կարող են նույն կառուցվածքը չաջակցել։