MTProxy Telegram қолданбасын статистикамен қолдану

MTProxy Telegram қолданбасын статистикамен қолдану

«Мен бұл тәртіпсіздікті мұра еттім,
ұятсыз Зеллодан бастап; LinkedIn
және Telegram платформасында «басқалардың барлығымен» аяқталады
менің әлемімде.

Сосын ықыласы,
Шенеунік асығыс және қатты дауыстап қосты:
бірақ мен заттарды ретке келтіремін (мұнда IT-да)»
(...).

Дуров, авторитарлық мемлекеттер одан қорқу керек деп дұрыс санайды, киферпанк және Роскомнадзор және DPI сүзгілері бар алтын қалқандар оны шынымен алаңдатпайды.
(Саяси техника)

Менің техникалық саясатым қарапайым, мен Рунетте абайсызда блоктау туралы өз ойымды сипаттай аламын, бірақ мен қазіргі заманғы ресейлік және хабр қолданушыларының прогрессивті азаматтары қазіргі үкіметтің кәсіби еместігін өз беттерінше сезінді деп ойлаймын, сондықтан мен өзімді осымен ғана шектеймін. бір фраза: біздің техникалық саясатымыз «Цифрлық қарсылық» . «туыстары мен достарын тұрақты байланыс арнасымен қамтамасыз ету».

MTProto прокси Telegram қолдану

  • Күрделіліктің техникалық деңгейі «оңай», егер, мысалы, сіз осы алдау парағын орындасаңыз.
  • Сенімділік деңгейі «орташа деңгейден жоғары»: докер кескіні тұрақты жұмыс істейді, оны күн сайын қайта қосу қажет емес, әзірлеушілер Telegram ресми құжаттамасында жазған, бірақ контейнерде кейбір осалдықтар болуы мүмкін.
  • Қарсыласу / алаңдаушылық деңгейі - 10 ISIS мүшесі «туыстары пайдаланады» деген қастандықтарды тоқып жатыр, тыйым РКН-дан бір рет болса да (көктемнен бері) келген жоқ.
  • Сенім деңгейі – «қоғамдық нәресте сенімсіздігі», клиент жағындағы мәселе (кейбір достар менің MtprotoProxy-ге күдіктенеді).
  • Тестостерон деңгейі – «жоғары көтерілмеді».
  • Қаржылық шығындар – «0₽».
  • Қаржылай сыйақы – «азамат Дуровқа тәуелді емес». Жылжыту – жарнаманы таңу мүмкіндігі.

Біз TelegramProxy-ті Amazon-ec2: t2.micro жүйесінің «тегін / жеке» мүмкіндіктеріне көтереміз. Мен пайдаландым бұл көлік

Жарайды, тегін серверіңізді орналастырдыңыз, ресми веб-сайтқа өтіңіз dockerhub және докер контейнерін жүктеп алыңыз.

Кейбір кескінді, файлды немесе сиқырлы түймені іздеудің қажеті жоқ - «олар жоқ», барлық сиқыр CLI-де орындалады:

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

Бірақ «одан» бұрын 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 қолданбасын статистикамен қолдану
Бұл журналдың шығысында біз көрсетілген (жағынды):

A) біздің IP серверіміз (сыртқы сервер ip);
B) және кездейсоқ құпия – HEX-тегі кездейсоқ жол.

MtproProxy-ді тіркемес бұрын, сіз iptables арқылы негізгі желіаралық қалқанды конфигурациялауыңыз керек (трафикті осы VPC-ге қалай қайта бағыттасаңыз да, ол тентек болады, өйткені Amazon-EC2 негізгі брандмауэр веб-интерфейсте орналасқан және одан жоғары басымдыққа ие болады. iptables).

Біз барамыз «консоль Қауіпсіздік тобында Amazon-EC2» және 443 кіріс портын ашыңыз (логикалық маска трафик бірінші рет).

MTProxy Telegram қолданбасын статистикамен қолдану

Біз журналдан «IP және құпия» деректерімізді алып, Telegram мессенджеріне барамыз, ресми MTProxy Admin Bot (@MTProxybot) табамыз және MtproProxy-ді тіркейміз: [/newproxy] пәрменін орындап, [our_ip:443] енгіземіз, және онда біздің [құпия /HEX].

Деректерді енгізу кезінде шатассаңыз, бот ашуланып, сізді ...

Екі жолды қатесіз толтырсаңыз, сіз кез келген адаммен бөлісе алатын ағымдағы MtprotoProxyTelegram-ға мақұлдау мен жұмыс сілтемесін аласыз.

MTProxy Telegram қолданбасын статистикамен қолдану

Сондай-ақ, осы бот арқылы сіз өзіңіздің демеушілік арнаңызды қоса аласыз (бірақ чат емес), онда сіз өзіңіздің серверіңізге қосылған пайдаланушыларға өз көзқарастарыңызды жүктей аласыз немесе сіз «спам» жасай алмайсыз және әлеуетті тұтынушыларыңызды мазаламайсыз. бекітілген мессенджер тізімінде арнаны көрсетеді.

Бот туралы тағы бірнеше сөз, онда сіз статистиканы сұрай аласыз, бірақ «сонымен бірге пончик». Шамасы, «статистика» сіздің артыңызда Махачкаланың «толығымен жүк тиеушілер» болғанда қол жетімді.

Бақылау

Біздің серверге қанша пайдаланушы қосыла аламыз? Қалай болғанда да, кім/не бар? Не? Және қанша?

Біз ресми құжаттамаға сәйкес не бар екенін қарастырамыз ... Иә, міне, осылай жасаңыз:

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

«Қалтаңызды кеңірек ұстаңыз» Ұсынылған пәрмендерге сәйкес біз әрқашан осындай қатені аламыз:

«curl: (7) 2398 жергілікті хост портына қосылу сәтсіз аяқталды: қосылудан бас тартылды»

Біздің прокси жұмыс істейді. Бірақ! Багель, біз алатын статистика емес.

Сіз қызыл көзге арналған нәрселерді жасай аласыз: тексеріңіз

$ netstat -an | grep 2398 и...

Алдымен мен бұл Telegram әзірлеушілерінің артындағы тағы бір кептеліс деп ойладым (және мен әлі де солай ойлаймын), содан кейін мен уақытша жақсы шешім таптым: Docker контейнерін файлмен жылтырату.

Кейін көзіме бір инфа түсті:

«статистиканың» айналасындағы Роскомнадзордың мемлекеттік билері туралы.

«Біз firehol жобасының дерекқорларын пайдалана отырып, серверлеріміздегі кейбір қоғамдық прокси-серверлерді бұғаттадық. Бұл жоба жалпы прокси-серверлермен тізімдерді бақылайды және олармен дерекқорлар жасайды.

Осы сәттен бастап (яғни екі күнге жуық уақыт) біздің ресейлік прокси-сервердің бірде-бір IP мекенжайы бұғатталған жоқ.

3. Біз сізге Роскомнадзор үшін дерлік қолайсыз проксиді қалай жасау керектігін және жалпыға ортақ проксилерді блоктауға арналған сценарийді бөлісуді айтамыз.

- MTProto прокси-докер контейнерін (немесе демоны) соңғы нұсқаға жаңартыңыз: RKN ескі нұсқаларды статистика порты бойынша есептейді, ол 0.0.0.0-ге байланған және бүкіл Интернет үшін өзін бірегей түрде сәйкестендіреді. Жақсырақ, iptables көмегімен қажетті порттарды ашыңыз, ал қалғандарын жабыңыз (докер контейнері жағдайында FORWARD ережесін пайдалану керек екенін есте сақтаңыз).

— Роскомнадзор трафикті тастауды баяғыда үйренді: олар HTTP және SOCKS5 прокси-серверлерінің ішіндегі сұрауларды көреді, сонымен қатар MTProto прокси-проксиінің бұрмалануының ескі нұсқасын көреді.

Мұндай дамптер орнатылған кейбір провайдердің клиенттері осындай прокси-серверлер арқылы Telegram-ға қол жеткізген кезде, РКН мұндай сұрауларды көреді және бұл прокси-серверлерді дереу блоктайды. Дәл солай ескі түсініксіздігі бар MTProto проксиіне де қатысты.

Шешім: құпияны тек басында dd арқылы проксиге қосылатын клиенттерге таратыңыз (mtproto проксиінің параметрлерінде қосымша dd әріптерін көрсетудің қажеті жоқ). Бұл қоқыстарды анықтай алмайтын күңгірттеу нұсқасын қосады.

Және HTTP немесе SOCKS5 проксилері жоқ.

- Түзету, оның көмегімен РКН тұрақты түрде тыйым салатын телеграмма проксиінің әрбір иесі блоктауды толығымен (немесе толықтай дерлік) тоқтата алады (және сонымен бірге РКН өтірік айтып тұрғанына көз жеткізіңіз).

Қоғамдық проксиге тыйым салатын сценарий және оған арналған шағын нұсқаулық.

Көзі

Біздің прокси-прокси батысшыл, көктем мен жаздың салқын күндерінде мен ешқандай проблемаларға/бұғаттарға тап болған жоқпын, ол шығармашылық тапсырманы да тартпады, сондықтан мен қарқынды жоғалтпадым және 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 портына қосылу сәтсіз аяқталды: қосылудан бас тартылды
Статистика әлі қолжетімсіз.!..

Доккер контейнерінің идентификаторын табыңыз:

$ docker ps

КОНТЕЙНЕР Идентификаторы кескін пәрмені ЖАСАЛҒАН МӘРТЕБЕСІ ПОРТ АТТАРЫН
f423c209cfdc telegrammessenger/proxy:соңғы "/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-hare-hare-you-you-u -u root $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 кескіні үлкен із қалдырады.

Докер кескіндерінің артықшылықтары мен кемшіліктерін сипаттаудың мағынасы жоқ, доккер контейнері VirtualBox сияқты «нақты» виртуалды машинаға қарағанда ресурстарды аз тұтынатын шағын виртуалды машина, бірақ солай етеді.

1) Docker-image статистикасы бар немесе онсыз іске қосылды, екі клиент ойнайды немесе он - ресурстар ~ дәл осылай пайдаланылады: бүкіл CPU t75.micro өнімділігінің 2%.

2) VPC серверінің мониторингін қарастырамыз:

MTProxy Telegram қолданбасын статистикамен қолдану

VPC-дегі ресурстарды пайдалану графигінен біз докер контейнері жалпы максимумның ~ 7,5%-ын үнемі тұтынатынын көреміз. CPU өнімділігі мен 28 мамырда мен әдейі/уақытша тоқтатылды (Ескертпе – OpenVPN және pptp серверде де жұмыс істейді).

Неліктен бұл сервер үшін процессордың 10% тұрақты пайдалануы шектелген?

Өйткені Amazon EC2 шектеулері бар және олар несиелерде есептеледі:

MTProxy Telegram қолданбасын статистикамен қолдану

1 CPU кредиті = 1 процессор бір минут ішінде 100% жүктемеде жұмыс істейді, және бізде 6 кредит бар (яғни, 100 минут ішінде 6% процессорды пайдалану мүмкін болады, содан кейін процессордың қуаты төмендейді). Басқа комбинациялар: мысалы, 1 CPU кредиті = екі минут бойы 1% жүктемеде жұмыс істейтін 50 процессор (яғни, біз процессорды 50 минут бойы 12% жүктемеде пайдалана аламыз) немесе, мысалы, процесс кезінде тұрақты 10% жүктеме кезінде CPU жүктемесі бүкіл уақыт және т.

қорытындылар

  • Біз «Цифрлық қарсылықтың» бір бөлігіміз. Олардың «әкелері мен шешелерін» сенімді байланыс арнасымен қамтамасыз етті.
  • Егер сізде серверде MtprotoProxyTelegram және OpenVPN орнатылған болса, бірақ бұдан артық болмаса, кешігулер/пингтер/сәтсіздіктер болмайды, бірақ сіз t2/micro-пен үнемі тәжірибе жасап жатсаңыз, байланыс тежегіштерін күтіңіз.
  • Менің шетелдегі пингім ~ 100-250 мс, дауыстық байланыста кідіріс жоқ.
  • Барлық «осы» үшін қаржылық шығындар (VPC ресурстарын қоса алғанда) = 0₽.

Мақалаңызды қайта басып шығару.

UPD: Пайдалы пікірлері үшін кейбір хабраузерлерге рахмет, бұл шынымен де мүмкін (статистикаға қолдау көрсетіледі ме?), Telegram докерінің ресми Mtproto проксиінің аналогтары бар.

Ақпарат көзі: www.habr.com

пікір қалдыру