UDP-ն Tor-ի SOCKS պորտով. ինչ չի անցնում
Tor-ի SOCKS ինտերֆեյսը ընդունում է հոսքային միացումներ, ոչ կամայական դատագրամներ։ Կատարեք ստուգումը հերթականությամբ, ապա ընտրեք տրանսպորտ, որն ծրագիրն իսկապես աջակցում է։
Ծրագիրը SOCKS պորտին ուղղելը աշխատում է զննարկիչի համար և ձախողվում է խաղի համար, և պատճառը կոնֆիգուրացիան չէ։ SOCKS5-ը սահմանում է մի քանի հրահանգ, և իրականացումը ազատ է աջակցել դրանցից միայն մի քանիսին՝ Tor-ի ինտերֆեյսը ընդունում է հոսքային միացումներ և անունների լուծում, ոչ կամայական դատագրամների փոխանցում։ Այն հաճախորդը, որը ուղարկում է UDP և ակնկալում, որ վստահվածը կփոխանցի այն, պահանջում է հրահանգ, որը սերվերը չի իրականացնում։ Ներքևի ուղեցույցը դա ստուգում է մի քանի րոպեում և ապա ընտրում է տրանսպորտ, որը իսկապես կարող է աշխատել։
Ստուգեք, թե ինչ է իրականում ուղարկում ծրագիրը
Սկսեք տրանսպորտի նույնականացումից, ոչ թե պրոտոկոլի անունից։ Ձայնային հաճախորդը կարող է մուտք գործել HTTPS-ով և ապա մեդիան փոխանցել UDP-ով, խաղը կարող է նույնականացվել TCP-ով և խաղալ UDP-ով, ֆայլի փոխանցումը կարող է օգտագործել TCP՝ կառավարման համար և UDP՝ հայտնաբերման։ Առաջին երկու վարքագիծը նույնն են երևում, մինչև մուտքը հաջողվի, և զանգը դեռ ձախողվի՝ այդ պատճառով «միացավ»-ը ապացույց չէ, որ ամբողջ ծրագիրը աշխատում է։ Որոշ հաճախորդներ ինքնուրույն հետ են ընկնում UDP-ից TCP, ինչը մասամբ աշխատող սեսիան նմանեցնում է անկայուն ցանցի, այլ ոչ արգելափակված տրանսպորտի։
Գրի առեք նպատակակետ պորտը և տրանսպորտը այն մասի համար, որը ձախողվում է։ Այդ մեկ տողը որոշում է՝ արդյոք վստահվածը ընդհանրապես կարող է օգնել։
Ինչ կընդունի Tor-ի SOCKS ինտերֆեյսը
Tor-ը իրականացնում է SOCKS5 CONNECT հրահանգը հոսքային միացումների համար և ընդլայնման հրահանգներ անունների լուծման համար, այդ պատճառով զննարկիչը աշխատում է դրա միջով առանց փոփոխության։ UDP ASSOCIATE-ը՝ այն հրահանգը, որը թույլ կտար հաճախորդին դատագրամները հանձնել վստահվածին փոխանցելու համար, Tor-ի առաջարկի մասը չէ։ Ընդլայնումների փաստաթղթերը գտնվում են նախագծի SOCKS ընդլայնումների սպեցիֆիկացիայում, և դրանք կարճ են։ Դատագրամի հրահանգի բացակայությունը դիտավորյալ է, քանի որ կամայական UDP փոխանցելը ցանցին կտար փոխանցողի դեր, որի համար այն երբեք չի նախագծվել։
Սա նաև պատասխանն է WireGuard-ի համար, որը նախագծմամբ UDP է և չունի TCP պահուստային ուղի։ Չկա աջակցվող ուղի, որը WireGuard-ը ուղղում է SOCKS պորտ, և հակառակը պնդող ամեն ինչ ծածկույթ է՝ իր սեփական վստահության և սպասարկման պատմությամբ, ոչ թե երկու գործիքներից որևէ մեկի հատկություն։
OpenVPN-ը մասնակի բացառություն է, քանի որ այն կարելի է կարգավորել TCP-ով թունելավորելու համար, և այն հասկանում է SOCKS վստահվածի ընտրանքը։ Դա դեռ պահանջում է TCP-ի համար կարգավորված սերվեր և գիտակից որոշում՝ կատարողականության և մատնահետքի հետևանքների մասին, այնպես որ սա նախագծային ընտրություն է, ոչ թե համատեղելիության ուղղում։
Կատարեք ստուգումը հերթականությամբ
Նախ հաստատեք, որ վստահվածն աշխատում է հոսքերի համար, որպեսզի հետագա ձախողումը չվերագրվի անհասանելի պորտին։ Ապա հաստատեք ծրագրի սեփական երթևեկությունը և նկատեք, թե որ սոքեթներն է այն իրականում բացում։
curl --socks5-hostname 127.0.0.1:9050 -sS https://check.torproject.org/api/ip
ss -tupn | grep 9050
ss -aun | grep -E ':(3478|5060|27015)\b'
Հաջող առաջին հրահանգը և երկրորդ տողում հաստատված հոսքը ցույց են տալիս, որ վստահվածի ուղին աշխատում է ինչպես նախագծված։ Երրորդ հրահանգը փնտրում է ծրագրին պատկանող տեղական դատագրամային սոքեթներ՝ եթե հաճախորդը բացում է մեկը և ուղարկում ուղիղ հեռավոր հասցեին, նա երբեք չի խորհրդակցել վստահվածի հետ, և ոչ մի վստահվածի կարգավորում դա չի փոխի։ Եթե այն ձախողվում է առաջին քայլում, կանգ առեք և ուղղեք վստահվածի ուղին նախքան ծրագրի ուսումնասիրությունը, որովհետև երկու խափանում միաժամանակ տալիս են հաշվետվություն, որի հիման վրա ոչ ոք չի կարող գործել։
Հետ շրջեք և ընտրեք ճիշտ գործիքը
Հեռացրեք ցանկացած վստահվածի միջավայրի փոփոխական կամ ծրագրի համար նախատեսված վստահվածի կարգավորում, որոնք UDP հաճախորդին ուղղում էին SOCKS պորտ, քանի որ դրանք թողնելը հետագա փորձարկումները դարձնում է երկիմաստ։ Վերականգնեք նախկին կոնֆիգուրացիան պատճենից, վերագործարկեք ծրագիրը և հաստատեք, որ նախնական վարքագիծը վերադառնում է, որպեսզի համեմատությունը մաքուր լինի։ Չստուգված հետշրջումը միայն հույս է, որ վիճակը փոխվել է։
Այն տրանսպորտի համար, որը պետք է մնա UDP, VPN-ը սովորաբար ավելի հարմար է՝ այն կրում է ծրագրի փաթեթները՝ չպահանջելով, որ ծրագիրը խոսի վստահվածի պրոտոկոլով, ի հաշիվ բոլորովին այլ անանիմության հատկությունների։ Օգտագործեք յուրաքանչյուր գործիք այն բանի համար, ինչը նա փաստաթղթավորում է, և նրանց միջև ցանկացած կամուրջ դիտեք որպես առանձին համակարգ, որն ունի իր սեփական վերանայումը։ Գրի առեք վերջնական հաշվետվության մեջ, թե որ շերտն է կրում որ տրանսպորտը, որպեսզի հաջորդ մարդը նույն սահմանը նորից չբացահայտի այլ ծրագրի հետ։