MTProxy Telegramыңызды статистика менен жайылтуу

MTProxy Telegramыңызды статистика менен жайылтуу

"Мен бул баш аламандык тукум кууп өткөн,
уятсыз Зелло менен баштап; LinkedIn
жана Telegram платформасында "башкалардын баары" менен аяктайт
Менин дүйнөмдө.

Анан ыкылык,
Чиновник шашылыш жана катуу кошумчалады:
бирок мен баарын иретке келтирем (бул жерде IT)"
(...).

Дуров, авторитардык мамлекеттер андан коркуш керек деп туура эсептейт, киферпанк, Роскомнадзор жана DPI фильтрлери бар алтын калкандар аны чындап эле тынчсыздандырбайт.
(Саясий техника)

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

MTProto прокси Telegram жайгаштыруу

  • Татаалдуулуктун техникалык деңгээли "жеңил" болуп саналат, эгерде, мисалы, сиз бул алдамчылык баракчасын аткарсаңыз.
  • Ишенимдүүлүк деңгээли "ортодон жогору": докердин сүрөтү туруктуу иштейт, аны күн сайын кайра баштоонун кажети жок, анткени иштеп чыгуучулар Telegram расмий документтеринде жазышкан, бирок контейнерде кээ бир кемчиликтер бар болушу мүмкүн.
  • Каршылык / тынчсыздануу деңгээли - 10 ИШИМ мүчөсү "туугандары колдонушат" деген кутумдарды токуп жатышат, тыюу РКНден бир жолу да келген эмес (жаздан бери).
  • Ишеним деңгээли - бул "коомдук балага ишенбөөчүлүк", кардар тараптагы көйгөй (айрым достор менин 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ыңызды статистика менен жайылтуу
Бул журналдын чыгышында биз көрсөтүлөт (сырапталган):

А) биздин сервердин 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 иштеп чыгуучуларынын артындагы дагы бир тосмо деп ойлогом (мен дагы ошондой деп ойлойм), андан кийин мен убактылуу жакшы чечим таптым: Докер контейнерин файл менен жылтырат.

Кийинчерээк менин көзүмө бир инфа урунду:

Роскомнадзордун "статистиканын" айланасындагы мамлекеттик бийлери жөнүндө.

«Биз 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 портуна туташпай калды: Туташуу четке кагылды
Статистика дагы эле жеткиликтүү эмес.!..

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

$ docker ps

КОНТЕЙНЕР ID СҮРӨТТҮ БУЙРУКТА ТҮЗГӨН АБАЛЫ PORTS АТТАР
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-stats»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-кандай-жатасың -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) Докер-сүрөт статистикасы менен же ансыз ишке киргизилген, эки кардар ойношот же он - ресурстар бирдей эле колдонулат: бүт CPU t75.micro көрсөткүчүнүн 2%.

2) Биз VPC серверинин мониторингин карайбыз:

MTProxy Telegramыңызды статистика менен жайылтуу

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

Эмне үчүн 10% туруктуу CPU колдонуу бул сервер үчүн чек?

Анткени Amazon EC2ден чектөөлөр бар жана алар кредиттер менен эсептелет:

MTProxy Telegramыңызды статистика менен жайылтуу

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

табылгалары

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

Макалаңызды кайра басып чыгаруу.

UPD: Пайдалуу комментарийлер үчүн кээ бир хабраузерлерге рахмат, чындап эле бул мүмкүн (статистика колдоого алынганбы?), Telegram докеринин расмий Mtproto проксисинин жакшы аналогдору бар.

Source: www.habr.com

Комментарий кошуу