Հիմունքներ

Ի՞նչ է MTProto պրոքսին և ինչպես է այն աշխատում Telegram-ում

Ինչպես է կառուցված Telegram-ի արձանագրությունը, ինչ է անում MTProto պրոքսին ձեր տրաֆիկի հետ, ինչ է տեսնում և ինչ՝ ոչ, և ինչպես կարդալ պրոքսիի հղումը։

Բովանդակություն 12 բաժին

MTProto-ն Telegram-ի սեփական արձանագրությունն է, որով հավելվածները շփվում են մեսենջերի սերվերների հետ։ MTProto պրոքսին, որն հաճախ անվանում են MTProxy, սերվեր է, որը կարող է ընդունել այս կապը և փոխանցել այն ավելի հեռու։ Ստորև՝ ինչպես է կառուցված արձանագրությունը, ինչ է անում պրոքսին, ինչ է տեսնում և ինչ՝ ոչ, և ինչից է կազմված ձեզ ուղարկված հղումը։

Ի՞նչ է MTProto-ն

Telegram-ի փաստաթղթերի սահմանմամբ՝ MTProto-ն արձանագրություն է, որով շարժական սարքերի հավելվածները հասանելիություն են ստանում սերվերի API-ին։ Ժամանակակից հավելվածներն օգտագործում են 2.0 տարբերակը, առաջին տարբերակը համարվում է հնացած։ Արձանագրությունը երեք մակարդակ ունի, և պրոքսին դիպչում է միայն վերջինին։

  • API հարցումներ։ Վերին մակարդակը կանչերն ու պատասխանները վերածում է երկուական հաղորդագրությունների։
  • Գաղտնագրում։ Յուրաքանչյուր հաղորդագրություն գաղտնագրվում է AES-256 ալգորիթմով՝ թույլտվության բանալիով։ Բանալին ստեղծվում է Diffie–Hellman փոխանակմամբ և ցանցով երբեք չի փոխանցվում։
  • Տրանսպորտ։ Ստորին մակարդակը գաղտնագրված տվյալները տեղափոխում է սովորական ցանցային արձանագրությամբ՝ TCP, WebSocket կամ HTTP։

Ի՞նչ է անում MTProto պրոքսին

Պրոքսին միջանկյալ օղակ է։ Հավելվածը միանում է ոչ թե Telegram-ի տվյալների կենտրոններին ուղղակիորեն, այլ պրոքսիին, իսկ պրոքսին կապ է բացում անհրաժեշտ տվյալների կենտրոնի հետ և տվյալները փոխանցում է երկու ուղղությամբ։ Հավելվածի համար թվում է, թե այն խոսում է Telegram-ի հետ, իսկ ցանցի համար սա պրոքսիի հետ կապ է։

նման է HTTPS-իMTProtoTelegramհավելվածֆիլտրմատակարար / DPIպրոքսիպորտ 443Telegramսերվերներհաղորդագրությունները պրոքսիի համար մնում են գաղտնագրված
Նկ. 1. Տրաֆիկի ճանապարհը պրոքսիով. մատակարարի ֆիլտրը Telegram-ի փոխարեն տեսնում է սովորական HTTPS, իսկ պրոքսին ինքը չի կարդում ձեր նամակագրությունը։

MTProxy-ն պաշտոնական իրականացման անունն է, որը Telegram-ը հրապարակում է GitHub-ում։ Մյուս հայտնի իրականացումներն են՝ mtg-ն (գրված է Go-ով) և telemt-ը (գրված է Rust-ով)։ Telegram-ի հավելվածները աջակցում են երկու տեսակի պրոքսի՝ SOCKS5 և MTProto։

Ինչպես է անցնում տրաֆիկը

  1. Հավելվածը հղումից վերցնում է սերվերի հասցեն, պորտը և secret-ը։
  2. Այն պրոքսիի հետ բացում է օբֆուսկացված կապ. հոսքի բանալիները ստացվում են պատահական սկզբնական փաթեթից և secret-ից։
  3. Սկզբնական փաթեթում նշվում է, թե որ տվյալների կենտրոնին պետք է միանալ։
  4. Պրոքսին միանում է Telegram-ին և գաղտնագրված տվյալները փոխանցում է երկու ուղղությամբ։

Secret-ը երկու դեր ունի. այն գաղտնաբառի նման է՝ պրոքսին ընդունում է միայն նրանց, ովքեր այն գիտեն, իսկ FakeTLS ռեժիմում դրա մեջ գրված է նաև այն տիրույթը, որի այցելությունն է կեղծվում։

Ինչ է տեսնում պրոքսին և ինչ՝ ոչ

Ձեր հաղորդագրությունները գաղտնագրված են թույլտվության բանալիով, որը պրոքսիի մոտ չկա, ուստի նա փոխանցում է տվյալներ, որոնք չի կարող կարդալ։ Telegram-ի փաստաթղթերն ուղիղ ասում են՝ պրոքսիի օպերատորը չի տեսնում ձեր Telegram-ի օգտանունը կամ հաշվի ID-ն, ձեր զրույցների ցանկը և ակտիվությունը։

Օպերատորը կարող է գրանցել ձեր IP հասցեն, միացման ժամանակները և այն, որ դուք օգտվում եք Telegram-ից։ Telegram Desktop-ը նույնիսկ զգուշացնում է, որ անծանոթ պրոքսիի կարգավիճակը ստուգելիս ձեր IP հասցեն հայտնի է դառնում նրա ադմինիստրատորին։ Ուստի պրոքսի ընտրեք ըստ այն բանի, թե ով է այն պահում, ոչ միայն ըստ արագության։

Պրոքսի թե՞ VPN

MTProto պրոքսիVPN
Ինչ է անցկացնումմիայն Telegram-ըսարքի ամբողջ տրաֆիկը
Ինչպես են միացնումհղում կամ երեք դաշտ Telegram-ի կարգավորումներումառանձին հավելված և բաժանորդագրություն
Մյուս հավելվածներըաշխատում են ինչպես միշտանցնում են VPN-ով
Telegram-ի զանգերըչեն աշխատումաշխատում են
Ինչ է տեսնում ցանցըկապ պրոքսիի հետ՝ օբֆուսկացված կամ TLS-ի տեսքովկապ VPN սերվերի հետ

Պարզ կանոն. եթե պետք է միայն Telegram-ը, պրոքսին ավելի պարզ է։ Եթե պետք են զանգեր, այլ հավելվածներ, կամ դուք գտնվում եք ցանցում, որն անցկացնում է հասցեների միայն թույլատրված ցանկը, պետք է VPN։

tg://proxy?server=proxy.example.com&port=443&secret=ee… https://t.me/proxy?server=proxy.example.com&port=443&secret=ee…

Երեք պարամետրն էլ պարտադիր են։ server-ը IP հասցեն կամ սերվերի անունն է, port-ը՝ պորտը, սովորաբար 443, ինչպես սովորական HTTPS կայքերինը, իսկ secret-ը՝ բանալին. 16 պատահական բայթ տասնվեցական գրառմամբ, երբեմն նախածանցով և տիրույթով։

Երեք ռեժիմ

  • սովորական՝ հոսքը գաղտնագրված (օբֆուսկացված) է, բայց կապի սկիզբը և փաթեթների ռիթմը մնում են ճանաչելի։
  • dd՝ փաթեթներին ավելացվում է պատահական լրացում, որպեսզի չափերը չմատնեն պրոքսիին։
  • ee՝ FakeTLS. կապը սկսվում է ինչպես իրական կայք սովորական HTTPS այցելությունը, որի անունը գրված է secret-ում։

MTProto պրոքսիի տերը կարող է սերվերի ծախսերը ծածկելու համար իր պրոքսիով միացած բոլոր մարդկանց զրույցների ցանկում ցույց տալ մեկ հանրային ալիք։ Telegram Desktop-ը այն նշում է որպես պրոքսիի հովանավոր և բացատրում, որ պրոքսին անջատելով ալիքը կվերանա։ Ալիքը տիրոջը հասանելիություն չի տալիս ո՛չ ձեր զրույցներին, ո՛չ ակտիվությանը։

Որտեղ են պրոքսիի կարգավորումները

Telegram-ի տվյալներով՝ Android-ում՝ Settings → Data and Storage → Proxy Settings, iPhone-ում՝ Settings → Data and Storage → Proxy, Telegram Desktop-ում՝ Settings → Advanced → Connection Type, macOS-ի հավելվածում՝ Settings → Data and Storage → Use Proxy (կետերի անունները նշված են այնպես, ինչպես դրանք երևում են Telegram-ի անգլերեն ինտերֆեյսում)։ Ցանկում կարելի է պահել մի քանի պրոքսի, իսկ Auto-Switch Proxies գործառույթն անցնում է հաջորդին, եթե ընթացիկն անջատվել է։

Սահմանափակումներ

  • Telegram-ի զանգերը MTProto պրոքսիով չեն աշխատում. telemt-ի FAQ-ը դա անվանում է Telegram-ի ճարտարապետության սահմանափակում։
  • Պրոքսին չի պաշտպանում սարքի մյուս հավելվածները։
  • Պրոքսին սահմանափակ կյանք ունի. նրա հասցեն, պորտը կամ տրաֆիկի ձևը կարող են արգելափակվել։
  • Պրոքսին չի օգնի ցանցերում, որոնք անցկացնում են հասցեների միայն թույլատրված ցանկը. telemt-ի FAQ-ը նման դեպքերն թվարկում է՝ շարժական ցանցերի թույլատրված ցանկերից մինչև Չինաստանի Great Firewall-ը և Իրանը անկարգությունների ժամանակ։

Հաճախ տրվող հարցեր

Ի՞նչ է MTProxy-ն պարզ բառերով։

Telegram-ի համար միջանկյալ սերվեր։ Հավելվածը միանում է ոչ թե մեսենջերի սերվերներին ուղղակիորեն, այլ պրոքսիին, և պրոքսին գաղտնագրված տրաֆիկը փոխանցում է ավելի հեռու։ MTProxy անունը կրում է Telegram-ի պաշտոնական իրականացումը, իսկ խոսակցության մեջ այդպես են կոչում MTProto արձանագրությամբ աշխատող ցանկացած պրոքսի։

Արդյո՞ք պրոքսիի տերը կարդում է իմ նամակագրությունը։

Ոչ։ Հաղորդագրությունները գաղտնագրվում են մի բանալիով, որը կա միայն ձեր հավելվածի և Telegram-ի սերվերի մոտ։ Telegram-ի փաստաթղթերի համաձայն՝ պրոքսիի օպերատորը չի տեսնում ո՛չ ձեր օգտանունը, ո՛չ հաշվի ID-ն, ո՛չ զրույցների ցանկը, ո՛չ ակտիվությունը։ Նա կարող է տեսնել ձեր IP հասցեն, միացման ժամանակը և այն, որ դուք օգտվում եք Telegram-ից։

Ինչո՞վ է MTProto պրոքսին տարբերվում VPN-ից։

MTProto պրոքսին աշխատում է միայն Telegram-ի ներսում և ավելացվում է հղումով. մյուս հավելվածները շարունակում են աշխատել ինչպես միշտ։ VPN-ն անցկացնում է սարքի ամբողջ տրաֆիկը և պահանջում է առանձին հավելված։ Telegram-ի զանգերը MTProto պրոքսիով չեն աշխատում, VPN-ով՝ աշխատում են։

Ինչի՞ց է կազմված պրոքսիի հղումը։

Երեք պարտադիր պարամետրից՝ server (սերվերի հասցե կամ անուն), port (պորտ) և secret (գաղտնի բանալի)։ Ձևաչափը՝ tg://proxy?server=…&port=…&secret=…, կամ նույն հղումը t.me/proxy սկզբով, որը բացվում է նաև դիտարկչից։

Աղբյուրներ

  1. Telegram: MTProto Mobile Protocol
  2. Telegram: MTProto, detailed description
  3. Telegram: MTProto transports
  4. Telegram: proxy servers
  5. Telegram: proxy links
  6. MTProxy, the official implementation (GitHub)
  7. mtg (GitHub): README
  8. telemt (GitHub)
  9. telemt: FAQ