Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

«Ես ժառանգել եմ այս խառնաշփոթը,
սկսած անամոթ Զելլոյից; LinkedIn
և վերջանում է «բոլոր մյուսներով» Telegram հարթակում
իմ աշխարհում.

Եվ հետո զկռտոց,
Պաշտոնյան հապճեպ ու բարձրաձայն ավելացրեց.
բայց ես ամեն ինչ կարգի կբերեմ (այստեղ ՏՏ-ում)»
(...).

Դուրովը, իրավացիորեն կարծում է, որ իրենից պետք է վախենան ավտորիտար պետությունները՝ սիֆերփանկը, իսկ Ռոսկոմնադզորն ու ոսկե վահաններն իրենց DPI ֆիլտրերով իրեն իրականում չեն անհանգստացնում։
(Քաղաքական տեխնիկա)

Իմ տեխնիկական քաղաքականությունն ավելի պարզ է, ես կարող եմ այստեղ նկարագրել իմ մտքերը Runet-ում անփույթ արգելափակման մասին, բայց կարծում եմ, որ ժամանակակից ռուսերենի և Habr-ի օգտատերերի առաջադեմ քաղաքացիները զգացել են ներկայիս կառավարության ոչ պրոֆեսիոնալիզմը իրենց մաշկի վրա, ուստի ես կսահմանափակվեմ ինձ միայն. մեկ արտահայտություն. մեր տեխնիկական քաղաքականությունը «Թվային դիմադրություն» է: «հարազատներին ու ընկերներին կայուն կապի ուղիների ապահովում».

MTProto վստահված անձի Telegram-ի տեղակայում

  • Բարդության տեխնիկական մակարդակը «հեշտ է», եթե, օրինակ, հետևեք այս խաբեության թերթիկին:
  • Հուսալիության մակարդակը «միջինից բարձր է». դոկերի պատկերը կայուն է աշխատում, այն ամեն օր վերագործարկելու կարիք չունի, ինչպես մշակողները գրել են Telegram-ի իրենց պաշտոնական փաստաթղթերում, բայց բեռնարկղը, հավանաբար, պարունակում է որոշ խոցելիություններ:
  • Դիմադրության/անհանգստության մակարդակ. ԴԱԻՇ-ի 10 անդամներ հյուսում են իրենց դավադրությունները «հարազատներն օգտագործում են», արգելքը RKN-ից նույնիսկ մեկ անգամ չի եղել ամբողջ ժամանակ (գարնանից սկսած):
  • Վստահության մակարդակը «հասարակական մանկական անվստահությունն է», խնդիր է հաճախորդի կողմից (որոշ ընկերներ կասկածում են իմ MtprotoProxy-ին):
  • Տեստոստերոնի մակարդակը - «չի բարձրացել»:
  • Ֆինանսական ծախսեր - «0₽»:
  • Ֆինանսական պարգև՝ «կախված չէ քաղաքացի Դուրովից». Առաջխաղացում - գովազդ պարտադրելու ունակություն:

Մենք կբարձրացնենք մեր TelegramProxy-ը Amazon-ec2-ի «անվճար / անձնական» հնարավորությունների վրա՝ t2.micro: ես օգտագործել եմ սա է մեքենա.

Լավ, տեղադրեց ձեր անվճար սերվերը, գնացեք պաշտոնական կայք dockerhub և ներբեռնեք դոկերի կոնտեյները:

Կարիք չկա որոնել ինչ-որ պատկեր, ֆայլ կամ կախարդական կոճակ՝ «նրանք այնտեղ չեն», ամբողջ կախարդանքը կատարվում է CLI-ում.

$ docker pull telegrammessenger/proxy #образ скачан.

Բայց մինչ «դա», տեղադրել docker CLI-ի համար.

sudo apt-get install docker.io docker

Ավելին, MtprotoProxyTelegram-ի պաշտոնական փաստաթղթերում մեզ առաջարկվում է անել հետևյալի պես մի բան, մենք անում ենք.

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

Այս հրամանից հետո տերմինալի ելքում կհայտնվի HEX տող, բայց դա մեզ չի հետաքրքրում։

CLI-ում գրում ենք.

$ docker logs mtproto-proxy

Եվ մենք ստանում ենք անհրաժեշտ տվյալները.

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ
Այս գրանցամատյանի ելքում մեզ ցույց է տրված (քսված).

Ա) մեր սերվերի ip (արտաքին սերվերի ip);
Բ) և պատահական գաղտնիք՝ պատահական տող HEX-ում:

Նախքան մեր MtproProxy-ը գրանցելը, դուք պետք է կազմաձևեք հիմնական firewall-ը iptable-ների վրա (անկախ նրանից, թե ինչպես եք երթևեկությունը վերահղում դեպի այս VPC, դա չարաճճի կլինի, քանի որ Amazon-EC2-ի հիմնական firewall-ը գտնվում է վեբ ինտերֆեյսում և ունի ավելի բարձր առաջնահերթություն։ iptables):

Մենք գնում ենք "մխիթարել Amazon-EC2» Անվտանգության խմբում և բացեք մուտքային պորտը 443 (տրամաբանական դիմակ երթեւեկությունը առաջին անգամ).

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

Մենք վերցնում ենք մեր «ip and secret» տվյալները գրանցամատյանից և գնում ենք Telegram մեսենջեր, գտնում ենք պաշտոնական MTProxy Admin Bot-ը (@MTProxybot) և գրանցում մեր MtproProxy-ն. գործարկեք [/newproxy] հրամանը և մուտքագրեք [our_ip:443], և ապա մեր [գաղտնի / HEX]:

Եթե ​​տվյալները մուտքագրելիս խառնաշփոթ եք անում, բոտը կզայրանա և ձեզ կուղարկի ...

Եթե ​​առանց սխալների լրացնեք երկու տող, դուք կստանաք հաստատում և աշխատանքային հղում ձեր ընթացիկ MtprotoProxyTelegram-ին, որը կարող եք կիսվել բոլորի հետ:

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

Նաև այս բոտի միջոցով կարող եք ավելացնել ձեր հովանավորչական ալիքը (բայց ոչ chat), որտեղ ձեր տեսակետները կպարտադրեք ձեր սերվերին միացած օգտատերերին, կամ չեք կարող «սպամ» ուղարկել և չանհանգստացնել ձեր պոտենցիալ հաճախորդներին առանց ցույց տալով ալիքը ամրացված մեսենջերի ցանկում:

Եվս մի քանի խոսք բոտի մասին, որտեղ կարելի է վիճակագրություն պահանջել, բայց «նաև բլիթ»։ Ըստ երևույթին, «վիճակագրությունը» հասանելի է, երբ Մախաչկալայում հետևում ես «ազատ բեռնողների ամբոխ»:

Մոնիտորինգ

Քանի՞ օգտատեր կարող ենք միացնել մեր սերվերին: Եվ այնուամենայնիվ, ով / ինչ կա այնտեղ: Ինչ? Իսկ քանի՞սը։

Մենք նայում ենք, թե ինչ կա, ըստ պաշտոնական փաստաթղթերի ... Այո, այստեղ, արեք այսպես.

$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.

«Ձեր գրպանն ավելի լայն պահեք» Ըստ առաջարկվող հրամանների, մենք միշտ կստանանք նմանատիպ սխալ.

«curl. (7) Չհաջողվեց միանալ localhost պորտին 2398. Միացումը մերժվեց»

Մեր վստահված անձը կաշխատի։ Բայց! Bagel, ոչ թե վիճակագրություն, որը մենք ստանում ենք:

Կարմիր աչքերի համար կարող եք բաներ անել՝ ստուգեք

$ netstat -an | grep 2398 и...

Սկզբում մտածեցի, որ սա հերթական խցանումն է Telegram-ի ծրագրավորողների հետևում (և դեռ այդպես եմ կարծում), հետո գտա ժամանակավոր լավ լուծում՝ լաքեցնել Docker Container-ը ֆայլով։

Ավելի ուշ մի ինֆա գրավեց իմ աչքը.

Ռոսկոմնադզորի պետական ​​պարերի մասին «վիճակագրության» շուրջ.

«Մենք արգելափակել ենք մեր սերվերների որոշ հանրային վստահված անձինք՝ օգտագործելով firehol նախագծի տվյալների բազաները: Այս նախագիծը վերահսկում է հանրային վստահված անձանց ցուցակները և նրանց հետ ստեղծում տվյալների բազաներ:

Այդ պահից սկսած (այսինքն արդեն գրեթե երկու օր) մեր ռուսաստանյան պրոքսիի ոչ մի IP հասցե չի արգելափակվել։

3. Մենք ձեզ ասում ենք, թե ինչպես ստեղծել պրոքսի, որը գրեթե անխոցելի է Ռոսկոմնադզորի համար և կիսվել հանրային վստահված անձանց արգելափակման սցենարով:

- Թարմացրեք MTProto պրոքսի դոկերի կոնտեյները (կամ դեյմոնը) վերջին տարբերակին. RKN-ն հաշվում է հին տարբերակները վիճակագրության նավահանգստի միջոցով, որը կապված էր 0.0.0.0-ի հետ և եզակիորեն նույնականացված էր ամբողջ ինտերնետի համար: Ավելի լավ է, բացեք անհրաժեշտ պորտերը՝ օգտագործելով iptables, իսկ մնացածը փակեք (հիշեք, որ դոկեր կոնտեյների դեպքում դուք պետք է օգտագործեք FORWARD կանոնը):

— Ռոսկոմնադզորը վաղուց սովորել է, թե ինչպես պետք է թրաֆիկը թոթափել. նրանք զանգեր են տեսնում HTTP և SOCKS5 պրոքսիների ներսում, ինչպես նաև տեսնում են MTProto պրոքսիի մշուշման հին տարբերակը:

Երբ որոշ պրովայդերների հաճախորդներ, որոնք ունեն տեղադրված նման աղբավայրեր, մուտք են գործում Telegram-ը նման վստահված անձանց միջոցով, RKN-ն տեսնում է նման հարցումները և անմիջապես արգելափակում է այդ վստահված անձինք: Նույնը վերաբերում է MTProto պրոքսիին հին մշուշմամբ:

Լուծում․ սկզբում գաղտնիք տարածեք միայն dd-ով հաճախորդներին, որոնք միանում են պրոքսիին (հարկ չկա նշելու լրացուցիչ dd տառեր հենց mtproto պրոքսիի կարգավորումներում)։ Սա հնարավորություն կտա մշուշման մի տարբերակ, որը դամպպիլները չեն կարող հայտնաբերել:

Եվ ոչ մի HTTP կամ SOCKS5 վստահված անձ:

- Կարգավորում, որի օգնությամբ հեռագրային վստահված անձի յուրաքանչյուր սեփականատեր, որը պարբերաբար արգելվում է RKN-ի կողմից, կարող է ամբողջությամբ (կամ գրեթե ամբողջությամբ) դադարեցնել արգելափակումը (և միևնույն ժամանակ համոզվել, որ RKN-ն ստում է):

Հանրային վստահված անձանց արգելող սցենար և դրա համար փոքրիկ ձեռնարկ:

Աղբյուր

Մեր վստահված անձը արևմտամետ է, գարնանը և ամառային զով օրերին ես որևէ խնդրի/խցանումների չեմ հանդիպել, այն նույնպես ստեղծագործական առաջադրանք չի գրավել, ուստի ես չեմ կորցրել տեմպը և չեմ ավելացրել dd* նախածանցը։ բանալին.

MtprotoProxyTelegram-ի պաշտոնական ցուցումների համաձայն «վիճակագրություն/մոնիթորինգ ստանալու» ձեռնարկը չի աշխատում/հնացած, դուք ստիպված կլինեք վերանորոգել դոկերի պատկերը:

Մենք ուղղում ենք այն:

Բեռնարկղը դեռ աշխատում է.

$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=ваш_предыдущий_секрет_hex telegrammessenger/proxy:latest

Եկեք ստուգենք վիճակագրությունը.

$ curl http://localhost:2398/stats

curl: (7) Չհաջողվեց միանալ 0.0.0.0 պորտին 2398. Միացումը մերժվեց
Վիճակագրությունը դեռևս անհասանելի է...

Պարզեք դոկեր կոնտեյների ID-ն.

$ docker ps

CONTAINER ID IMAGE COMAND CREATED STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:last «/bin/sh -c '/bin/ba…» Մոտ մեկ ժամ առաջ Մոտ մեկ րոպե 0.0.0.0:443->443/tcp mtproto-proxy2

Մենք մեր կանոնադրությամբ գնում ենք դոկեր կոնտեյների ներսում.

$ sudo docker exec -it f423c209cfdc /bin/bash

$ apt-get update
$ apt-get install nano
$ nano -$ run.sh

Եվ «run.sh» սցենարի ամենավերջին տողում ավելացրեք բացակայող դրոշը.

«--http-վիճակագրություն»
«exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M «$WORKERS» -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u արմատ $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Ավելացրե՛ք «--http-stats», նման բան պետք է աշխատի.

«exec /usr/local/bin/mtproto-proxy -p 2398 --http-stats -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD»

Ctrl+o/Ctrl+x/Ctrl+d (պահպանել/ելք նանո/ելք կոնտեյներ):

Վերագործարկեք մեր դոկեր կոնտեյները.

$ docker restart mtproto-proxy2

Ամեն ինչ, հիմա հրամանով.

$ curl http://localhost:2398/stats #получаем объемную статистику

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ
Վիճակագրության մեջ շատ «աղբ» կա (դրա 1/3-ը էկրանին է), ստեղծեք կեղծանուն.

$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash

Մենք ստանում ենք, թե ինչի համար է հղկվել դոկերի կոնտեյները՝ միացումների քանակը և բեռը.

$ telega

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ
Docker կոնտեյները աշխատում է, վիճակագրությունը պտտվում է:

Ծախսված ռեսուրսները

Ինչքան էլ որ դուք Սթյուարտ Ռեդմեյն եք, նույնիսկ դուք հետք եք թողնում վարտիքի վրա։ Գործող Docker պատկերը մեծ հետք է թողնում:

Անիմաստ է նկարագրել docker պատկերների առավելություններն ու թերությունները, docker կոնտեյները մինի վիրտուալ մեքենա է, որը ավելի քիչ ռեսուրսներ է սպառում, քան «իրական» վիրտուալ մեքենան, ինչպիսին է VirtualBox-ը, բայց դա անում է:

1) Գործարկվելով docker-image վիճակագրությամբ կամ առանց դրա, երկու հաճախորդներ ուրախանում են կամ տասը ռեսուրսները օգտագործվում են ~ նույն կերպ՝ ամբողջ պրոցեսորի t75.micro կատարողականի 2%-ը:

2) Մենք նայում ենք VPC սերվերի մոնիտորինգին.

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

VPC-ի ռեսուրսների օգտագործման գրաֆիկից մենք տեսնում ենք, որ դոկեր կոնտեյները մշտապես սպառում է ընդհանուր առավելագույնի ~ 7,5%-ը: CPU-ի աշխատանքը և մայիսի 28-ին իմ կողմից կանխամտածված/ժամանակավոր դադարեցվել է (Ծանոթագրություն – OpenVPN-ը և pppt-ը նույնպես աշխատում են սերվերի վրա):

Ինչո՞ւ է 10% մշտական ​​պրոցեսորի օգտագործումը սահմանաչափ այս սերվերի համար:

Քանի որ Amazon EC2-ից սահմանափակումներ կան, և դրանք հաշվարկվում են վարկերով.

Ձեր MTProxy Telegram-ի տեղակայումը վիճակագրությամբ

1 պրոցեսորի վարկ = 1 պրոցեսոր, որն աշխատում է 100% բեռնվածությամբ մեկ րոպեի ընթացքում, և մենք ունենք 6 վարկ (այսինքն՝ գագաթնակետին, պրոցեսորի 100% օգտագործումը հնարավոր է 6 րոպեի ընթացքում, և այդ ժամանակ պրոցեսորի հզորությունը կնվազի): Այլ համակցություններ. օրինակ՝ 1 պրոցեսորի վարկ = 1 պրոցեսոր, որն աշխատում է 50% բեռնվածությամբ երկու րոպեի ընթացքում (այսինքն, մենք կարող ենք օգտագործել պրոցեսորը 50% բեռնվածությամբ 12 րոպե), կամ, օրինակ, պրոցեսորի մշտական ​​10%--րդ բեռնվածությունը ընթացքում։ ամբողջ ժամանակ և այլն:

Արդյունքները

  • Մենք մաս ենք կազմում «Թվային դիմադրության»։ Ապահովել են իրենց «հայրերին ու մայրերին» հուսալի կապի ալիք:
  • Եթե ​​դուք ունեք MtprotoProxyTelegram և OpenVPN սերվերում տեղակայված, բայց ոչ ավելին, ուշացումներ / ping / ձախողումներ չեն լինի, բայց եթե դուք անընդհատ փորձարկում եք ձեր t2 / micro-ի հետ, ապա սպասեք կապի արգելակների:
  • Իմ արտասահմանյան պինգը ~100-250 մս է, ձայնային հաղորդակցության մեջ ուշացումներ չկան:
  • Ֆինանսական ծախսերը այս ամենի համար (ներառյալ VPC ռեսուրսները) = 0₽:

Վերատպեք ձեր հոդվածը:

UPD. Շնորհակալություն որոշ հաբրաուզերների օգտակար մեկնաբանությունների համար, իսկապես, դա հնարավոր է (վիճակագրությունը աջակցվու՞մ է): Կան պաշտոնական Mtproto վստահված անձի Telegram-ի դոկերի պատկերի ավելի լավ անալոգներ:

Source: www.habr.com

Добавить комментарий