MTProxy Telegram-аа статистик мэдээллээр байрлуулж байна

MTProxy Telegram-аа статистик мэдээллээр байрлуулж байна

"Би энэ эмх замбараагүй байдлыг өвлөн авсан,
ичгүүргүй Зелло-оос эхлээд; LinkedIn
мөн Telegram платформ дээрх "бусад хүн бүр" гэж төгсдөг
миний ертөнцөд.

Тэгээд хикп,
Албаны хүн яаран, чангаар нэмж хэлэв:
гэхдээ би бүх зүйлийг цэгцлэх болно (энд IT-д)"
(...).

Дуров түүнээс айх ёстой авторитар улсууд, киферпанк, Роскомнадзор, DPI шүүлтүүр бүхий алтан бамбайнууд түүнд үнэхээр төвөг учруулдаггүй гэж зөв үзэж байна.
(Улс төрийн техник)

Миний техникийн бодлого илүү энгийн, би Рунет дээр хайхрамжгүй хаах тухай бодлоо энд дүрсэлж болно, гэхдээ орчин үеийн Орос, Хабр хэрэглэгчдийн дэвшилтэт иргэд одоогийн засгийн газрын мэргэжлийн бус байдлыг өөрсдийн арьсаар мэдэрсэн гэж би итгэж байна, тиймээс би өөрийгөө хязгаарлах болно. ганц хэллэг: манай техникийн бодлого бол "Дижитал эсэргүүцэл". "хамаатан садан, найз нөхдөө тогтвортой харилцааны сувгаар хангах."

MTProto прокси Telegram-г байрлуулж байна

  • Техникийн нарийн төвөгтэй байдлын түвшин нь "хялбар", жишээлбэл, хэрэв та энэ хууран мэхлэх хуудсыг дагаж мөрдвөл.
  • Найдвартай байдлын түвшин нь "дунджаас дээгүүр" байна: докерын зураг тогтвортой ажилладаг тул хөгжүүлэгчид өөрсдийн албан ёсны Telegram баримт бичигт бичсэнчлэн үүнийг өдөр бүр дахин эхлүүлэх шаардлагагүй, гэхдээ контейнер нь зарим нэг эмзэг байдлыг агуулсан байж магадгүй юм.
  • Эсэргүүцлийн түвшин / түгшүүрийн түвшин - ISIS-ийн 10 гишүүн "хамаатан садан нь үүнийг ашигладаг" гэсэн хуйвалдааныг нэхэж байна, хориг нь RKN-ээс нэг ч удаа ирээгүй (хавараас хойш).
  • Итгэлийн түвшин нь "олон нийтийн хүүхдийн үл итгэлцэл" бөгөөд энэ нь үйлчлүүлэгчийн талын асуудал юм (зарим найзууд миний MtprotoProxy-г сэжиглэж байгаа).
  • Тестостерон дааврын түвшин - "өндөр болоогүй".
  • Санхүүгийн зардал - "0₽".
  • Санхүүгийн шагнал - "иргэн Дуровоос хамаарахгүй". Сурталчилгаа - сурталчилгаа хийх чадвар.

Бид TelegramProxy-ээ Amazon-ec2: t2.micro-ийн "үнэгүй / хувийн" чадавхид нэмэгдүүлэх болно. би хэрэглэсэн энэ нь машин.

За, үнэгүй серверээ байршууллаа, албан ёсны вэбсайт руу очно уу dockerhub болон docker контейнерийг татаж авна уу.

Ямар нэг зураг, файл эсвэл шидэт товчлуур хайх шаардлагагүй - "тэд байхгүй", бүх ид шидийг CLI-д хийдэг:

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

Гэхдээ "түүнээс" өмнө CLI-д зориулсан docker суулгана уу:

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) 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-ээр прокситэй холбогдсон үйлчлүүлэгчдэд түгээнэ (mtproto прокси-ийн тохиргоонд нэмэлт dd үсгийг зааж өгөх шаардлагагүй). Энэ нь хогийн цэгээс илрүүлж чадахгүй байгаа бүдүүлэг хувилбарыг идэвхжүүлнэ.

Мөн 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 командыг үүсгэсэн статусын портуудын нэрс
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-you-doing-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-р сарын XNUMX-нд санаатайгаар/түр хугацаагаар зогсоосон (Тэмдэглэл - OpenVPN & pptp нь сервер дээр ажиллаж байна).

Яагаад энэ серверт CPU-ийн 10% тогтмол хэрэглээ хязгаарлагдмал байдаг вэ?

Учир нь Amazon EC2-ээс хязгаарлалтууд байдаг бөгөөд тэдгээрийг кредитээр тооцдог.

MTProxy Telegram-аа статистик мэдээллээр байрлуулж байна

1 CPU кредит = 1 CPU нэг минутын турш 100% ачаалалтай ажилладаг бөгөөд бидэнд 6 кредит байна (өөрөөр хэлбэл оргил үед 100 минутын дотор CPU-ийн 6% ашиглалт боломжтой, дараа нь CPU-ийн хүч буурах болно). Бусад хослолууд: жишээлбэл, 1 CPU кредит = 1 CPU хоёр минутын турш 50% ачаалалтай ажилладаг (жишээ нь бид CPU-г 50% ачаалалтай 12 минутын турш ашиглаж болно) эсвэл жишээлбэл, CPU-ийн тогтмол 10% ачаалалтай үед. бүх цаг гэх мэт.

үр дүн нь

  • Бид "Дижитал эсэргүүцэл"-ийн нэг хэсэг юм. "Аав, ээжүүдээ" найдвартай харилцааны сувгаар хангасан.
  • Хэрэв танд MtprotoProxyTelegram болон OpenVPN сервер дээр суулгасан боловч цаашид байхгүй бол саатал / ping / алдаа гарахгүй, гэхдээ та t2 / микротойгоо байнга туршилт хийж байгаа бол холбооны тоормосыг хүлээнэ үү.
  • Миний гадаад дахь пинг ~ 100-250 мс, дуут харилцаанд ямар ч саатал байхгүй.
  • Энэ бүхний санхүүгийн зардал (VPC нөөцийг оруулаад) = 0₽.

Нийтлэлээ дахин хэвлэх.

UPD: Хэрэгтэй тайлбар өгсөн зарим хабраузеруудад баярлалаа, энэ нь үнэхээр боломжтой (статистикийг дэмждэг үү?), албан ёсны Mtproto прокси Telegram docker дүрсний илүү сайн аналогууд байдаг.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх