Պրոքսի պտտումը և VPN-ը փոխում են ձեր հանրային հասցեն տարբեր շերտերում, և այդ տարբերությունն է որոշում, թե ինչ է արտահոսում։ VPN-ը յուրաքանչյուր փաթեթ տեղափոխում է թունել, ուստի աղբյուրի հասցեն, որը տեսնում է թիրախը, թունելի վերջնակետն է։ Պրոքսին նստում է ցանցային շերտից վեր. միայն այն հարցումներն են երևում ելքից, որոնք ուղարկում եք դրա միջով, իսկ մեքենայի մնացած ամեն ինչ պահում է իրական հասցեն։ Այս բաժանումը ճիշտ անելը պտտումը վանդակից վերածում է դիզայնի որոշման։

Որտեղից է իրականում գալիս հանրային հասցեն

Այն հասցեն, որը տեսնում է թիրախը, այն է, որտեղից ձեր երթևեկությունը վերջին անգամ դուրս է եկել, և տնային կապում դա մատակարարի հասցեն է ձեր երթուղիչում, ոչ թե ինչ-որ բան, որ պատկանում է մեքենային։ Երթուղիչի վերագործարկումը կարող է վերադարձնել նույն վարձույթը, և դրա MAC հասցեն փոխելը երբեմն ստեղծում է նորը, բայց ոչ մեկը ձեզ երկրի ընտրություն չի տալիս։ VPN-ը փոխարինում է աղբյուրի հասցեն IP շերտում, ուստի մեքենայից եկող յուրաքանչյուր փաթեթ, ներառյալ DNS-ը և ֆոնային թարմացումները, դուրս է գալիս թունելի վերջնակետից։ Պրոքսին աշխատում է մեկ շերտ վերևում. այն ընդունում է հարցում, բացում է իր սեփական կապը դեպի թիրախը, և միայն այդ հարցումն է երևում ելքից։ Մեքենայի մնացած ամեն ինչ դեռ օգտագործում է իրական հասցեն։

Այս բաժանումը բացատրում է անակնկալների մեծ մասը։ Դեպի պրոքսի ուղղված բրաուզերի ընդլայնումը փոխում է միայն այն, ինչ ուղարկում է բրաուզերը, և ոչ այլ բան, ուստի նույն հոսթի վրա երկրորդ հավելվածը դեռ արտահոսում է սկզբնական հասցեն։ Համակարգային VPN-ն ունի հակառակ խափանման ռեժիմ. այն ծածկում է երթևեկությունը, որը ցանկանում էիք տեղում պահել, և փակվում է միայն այն դեպքում, երբ հաճախորդը այդպես է կարգավորված։ Երկուսի միջև ընտրելը իրականում ընտրելն է, թե որ երթևեկությունը պետք է շարժվի։

Այնուհետև պտտումը կիրառվում է այն շերտի վրա, որը դուք ընտրել եք։ Պրոքսիի դեպքում պտտումը նշանակում է, որ հաջորդ հարցումը օգտագործում է այլ ելք։ VPN-ի դեպքում դա նշանակում է քանդել և վերակառուցել թունելը, ինչը դանդաղ է և երևում է որպես տեսանելի վերակապակցում։

Ինչ կարող է կարդալ HTTP պրոքսին, և ինչ չի կարող

Պարզ HTTP-ի դեպքում պրոքսին հարցման տողում տեսնում է բացարձակ URI, յուրաքանչյուր վերնագիր և մարմինը։ Այն կարող է գրանցել այդ ամենը և վերաշարադրել ցանկացած մասը, ինչի պատճառով պատասխանների մեջ սկրիպտ ներարկող անվճար պրոքսին անում է հենց այն, ինչ թույլատրում է արձանագրությունը։ Նույնականացումն օգտագործում է Proxy-Authorization, և բացակայող կամ սխալ հավատարմագրումը ստեղծում է 407 Proxy Authentication Required կապի սխալի փոխարեն։

HTTPS-ում հաճախորդն ուղարկում է CONNECT host:port և պրոքսին բացում է հում թունել, որից հետո տեսնում է գաղտնագրված բայթեր։ Այն դեռ սովորում է հոսթի անունը CONNECT տողից և սովորաբար TLS ձեռքսեղմման SNI դաշտից, ուստի հոսթի անվան մակարդակի գրանցումը գոյատևում է, նույնիսկ եթե բեռը չի գոյատևում։ Բեռը կարդալու համար պետք է ավարտել TLS-ը այն վկայականով, որին վստահում է հաճախորդը, ինչը այլ արտադրանք է՝ այլ ռիսկով։ Եվ HTTP իմաստաբանության ճշգրտումը CONNECT-ը սահմանում է որպես թունելի հարցում, ինչը ճիշտ մտավոր մոդել է այն բանի համար, ինչ ելքը կարող է և չի կարող տեսնել։

curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'

Մանրամասն ելքը ցույց է տալիս CONNECT տողը ցանկացած TLS երթևեկությունից առաջ, և հենց այդ պահին պրոքսին իմանում է ձեր նպատակակետը։ 407-ով պատասխանող պրոքսին երբեք չի բացել թունելը, ուստի այլ TLS կարգավորումներով կրկին փորձելը չի օգնի։

Պտտման հատիկավորությունը որոշում է, թե ինչ է կոտրվում

Յուրաքանչյուր հարցման վրա պտտելը այն կարգավորումն է, որն ամենաապահովն է թվում և ամենաշատն է կոտրում։ Cookie-ները, CSRF նշանները և սերվերի կողմի սեսիաները կապված են ինքնության հետ, և այն ինքնությունը, որը փոխվում է մուտքից մինչև հաջորդ կանչը, թիրախի համար թվում է սեսիայի առևանգում։ Շատ մատակարարներ առաջարկում են կպչուն սեսիա՝ կոդավորելով այն պրոքսիի օգտանվան մեջ, ուստի ելքը մնում է ամրագրված ընտրված պատուհանի ընթացքում։

Հատիկավորությունն ընտրեք առաջադրանքից, ոչ թե մատակարարի լռելյայնից։ Անկախ էջեր բերող սողացողը կարող է պտտվել յուրաքանչյուր հարցման վրա, մինչդեռ վճարման հոսքը կամ նույնականացված API-ն պետք է մեկ ելք պահի ամբողջ հոսքի համար։ Ներքևի երկու կանչերը ցույց են տալիս կպչուն օգտանուն և սովորական պտտվող վերջնակետ, և socks5h սխեման անունները լուծում է պրոքսիում, ոչ թե տեղում։

curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me

Տեղական DNS-ը լուռ արտահոսք է։ Եթե հաճախորդը անունը լուծում է միանալուց առաջ, լուծիչը դեռ իմանում է յուրաքանչյուր հոսթ, որը դուք այցելում եք, նույնիսկ եթե HTTP հարցումը դուրս է գալիս այլ տեղից։ Եվ socks5h ձևը և պրոքսիի կողմի լուծումը խուսափում են դրանից, և դրանք օգտագործելը ոչինչ չի արժենա։

Ինչ է դասակարգում թիրախը հասցեից բացի

Հասցեի համբավը մի քանի մուտքերից մեկն է։ Թիրախները միավորում են ASN-ը և դրա տվյալների կենտրոն կամ բնակելի պիտակը, հաճախորդի TLS մատնահետքը, HTTP/2 կարգավորումները, վերնագրերի հերթականությունը, հարցումների հաճախականությունը և նավիգացիայի ձևը։ Առանց գլխի բրաուզերի կողմից ղեկավարվող բնակելի ելքը կարող է ձախողվել այնտեղ, որտեղ իրական սեսիայով ղեկավարվող տվյալների կենտրոնի ելքն անցնում է։

Ելքի տեսակը որոշում է, թե ինչ կարող եք ազնվորեն պնդել երթևեկության մասին, և յուրաքանչյուրն ունի տարբեր արժեք։

Exit typeWhat the target seesMain cost
Datacenter proxyHosting ASN, cheap, often pre-blockedLow reputation, easy to detect
Residential networkA consumer ISP address belonging to someone elseConsent and terms-of-service exposure
Mobile carrierA carrier NAT address shared by many subscribersPrice, plus shared blame for abuse
Your own cloud egressAn address you are accountable forRecognisable, but defensible

Համօգտագործվող ելքը չեզոք չէ։ Այդ հասցեից աշխատող մնացած ամեն ինչ ընկնում է համբավի նույն զամբյուղը, և այլ վարձակալների կողմից արդեն այրված հասցեն ձախողվում է նախքան ձեր առաջին հարցումը կարդալը։

Ընտրեք ելք, որը կարող եք նկարագրել քաղաքականության մեջ

Օգտակար հարցը ոչ թե ինչպես թաքցնել հասցեն է, այլ ով է պատասխանատու դրանից դուրս եկող երթևեկության համար։ Ձեր սեփական ամպային ելքը յուրաքանչյուր առաջադրանքի համար, պայմանագրային մատակարար՝ տվյալների մշակման համաձայնագրով և հրապարակված պահպանմամբ, և ինքնահոսթավորված VPN՝ յուրաքանչյուր առաջադրանքի համար մեկ ինքնությամբ, բոլորը նկարագրելի են մեկ նախադասությամբ։ Անվճար ցանկը՝ ոչ, որովհետև դրա օպերատորը ձեր հանդեպ ոչ մի պարտավորություն չունի և ունի գրանցելու բոլոր խթանները։

Ձեր սեփական արագության սահմանները պահեք այն ամենից ցածր, ինչ թիրախը հանդուրժում է, և հավաքեք միայն այն դաշտերը, որոնք անհրաժեշտ են առաջադրանքին, որպեսզի սխալը փոքր մնա։ Բլոկից խուսափելու համար ավելի արագ պտտելը սովորաբար բարձրացնում է հարցումների հաճախականությունը, որն առաջացրել է այն։

Գրեք ընտրված ելքը, դրա պտտման պատուհանը և դրա սեփականատիրոջը աշխատանքի կարգավորումներում առաջին գործարկումից առաջ։ Երբ բլոկը գա, հենց այդ գրառումն է ասում ձեզ՝ փոխել ելքը, թե փոխել վարքը։

Առնչվող հոդվածներ