Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

"Napanunod ko kini nga kagubot,
sugod sa walay kaulaw nga Zello; LinkedIn
ug nagtapos sa "tanan pa" sa plataporma sa Telegram
sa akong kalibutan.

Ug unya hiccup,
Ang opisyal midugang nga dali ug kusog:
apan akong ibutang ang mga butang sa kahusay (dinhi sa IT)"
(...).

Si Durov, husto nga nagtuo nga kini ang mga awtoritaryan nga estado nga kinahanglan mahadlok kaniya, usa ka cypherpunk, ug Roskomnadzor ug ang mga bulawan nga taming sa ilang mga filter sa DPI dili gyud makahasol kaniya.
(Politika nga teknik)

Ang akong teknikal nga palisiya mas simple, mahimo nakong ihulagway dinhi ang akong mga hunahuna sa walay pagtagad nga pag-block sa Runet, apan ako nagtuo nga ang mga progresibong lungsuranon sa Modernong Ruso ug Habr nga mga tiggamit mibati sa dili propesyonalismo sa kasamtangan nga gobyerno sa ilang kaugalingong panit, mao nga akong limitahan ang akong kaugalingon sa usa ka hugpong sa mga pulong: ang among teknikal nga palisiya mao ang "Digital nga Pagsukol" . "paghatag sa mga paryente ug mga higala sa usa ka lig-on nga channel sa komunikasyon."

Pag-deploy sa MTProto proxy Telegram

  • Ang teknikal nga lebel sa pagkakomplikado "sayon", kung, pananglitan, imong sundon kini nga cheat sheet.
  • Ang lebel sa kasaligan "labaw sa kasagaran": ang imahe sa docker nagtrabaho nga lig-on, dili kinahanglan nga i-restart matag adlaw, ingon sa gisulat sa mga developer sa ilang opisyal nga dokumentasyon sa Telegram, apan ang sulud lagmit adunay pipila nga mga kahuyangan.
  • Ang lebel sa pagsukol/kabalaka - 10 ka miyembro sa ISIS ang naghabol sa ilang mga konspirasyon nga "gigamit sa mga paryente", ang pagdili wala gikan sa RKN bisan kausa sa tanang panahon (sukad sa tingpamulak).
  • Ang lebel sa pagsalig mao ang "public baby distrust", usa ka problema sa bahin sa kliyente (ang ubang mga higala nagduda sa akong MtprotoProxy).
  • Testosterone nga lebel - "wala motaas."
  • Gasto sa panalapi - "0₽".
  • Pinansyal nga ganti - "wala magdepende sa lungsoranon Durov." Promosyon - ang abilidad sa pagpahamtang sa advertising.

Ipataas namo ang among TelegramProxy sa "libre / personal" nga mga kapasidad sa Amazon-ec2: t2.micro. akong gigamit kini awto.

Okay, gipadala ang imong libre nga server, adto sa opisyal nga website dockerhub ug i-download ang docker container.

Dili kinahanglan nga mangita alang sa pipila ka mga imahe, file, o buton sa salamangka - "wala sila didto", ang tanan nga salamangka gihimo sa CLI:

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

Apan sa wala pa "kana", i-install ang docker alang sa CLI:

sudo apt-get install docker.io docker

Dugang pa, sa opisyal nga dokumentasyon sa MtprotoProxyTelegram, gitanyag kami sa pagbuhat sa usa ka butang sama sa mosunod, among gibuhat:

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

Human niini nga sugo, usa ka HEX string ang makita sa terminal output, apan dili kami interesado niini.

Gisulat namon sa CLI:

$ docker logs mtproto-proxy

Ug makuha namon ang gikinahanglan nga datos:

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika
Sa output niini nga log, gipakita kami (gipahid):

A) among server ip (external server ip);
B) ug usa ka random nga sekreto - usa ka random string sa HEX.

Sa wala pa magparehistro sa among MtproProxy, kinahanglan nimo nga i-configure ang nag-unang firewall sa mga iptables (bisan unsaon nimo pag-redirect ang trapiko sa kini nga VPC, kini mahimong daotan, tungod kay ang panguna nga firewall sa Amazon-EC2 nahimutang sa web interface ug adunay mas taas nga prayoridad kaysa iptables).

Moadto kami sa "console Amazon-EC2" sa Security Group ug ablihi ang umaabot nga port 443 (logical masking trapiko sa unang higayon).

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

Gikuha namo ang among "ip ug sekreto" nga datos gikan sa log ug moadto sa Telegram messenger, pangitaa ang opisyal nga MTProxy Admin Bot (@MTProxybot) ug irehistro ang among MtproProxy: padagana ang [/newproxy] nga sugo ug isulod ang [among_ip:443], ug unya ang among [sekreto /HEX].

Kung magsamok ka sa pagsulod sa datos, masuko ang bot ug ipadala ka sa ...

Kung pun-on nimo ang duha ka linya nga wala’y mga sayup, makadawat ka og pagtugot ug usa ka nagtrabaho nga link sa imong karon nga MtprotoProxyTelegram, nga mahimo nimong ipaambit sa bisan kinsa.

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

Usab, pinaagi niini nga bot, mahimo nimong idugang ang imong channel sa sponsorship (apan dili usa ka chat), diin imong ipahamtang ang imong mga panan-aw sa mga tiggamit nga konektado sa imong server, o dili ka "spam" ug dili makasamok sa imong mga potensyal nga kustomer nga wala. nga nagpakita sa channel sa gi-pin nga messenger list.

Pipila pa nga mga pulong mahitungod sa bot, diin makahangyo ka og mga estadistika, apan "usa usab ka donut". Dayag, ang "estadistika" magamit kung ikaw adunay "usa ka panon sa mga freeloader" sa luyo nimo Makhachkala.

Pagbantay

Pila ka mga tiggamit ang makonektar namo sa among server? Ug bisan pa, kinsa / unsa ang naa? Unsa? Ug pila?

Gitan-aw namon kung unsa ang naa sumala sa opisyal nga dokumentasyon ... Oo, dinhi, buhata kini sama niini:

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

"Ipadayon ang imong bulsa nga mas lapad" Sumala sa gisugyot nga mga sugo, kanunay kaming makadawat og susamang sayop:

«curl: (7) Napakyas sa pagkonektar sa localhost port 2398: Ang koneksyon mibalibad»

Ang among proxy molihok. Apan! Bagel, dili statistics ang atong makuha.

Mahimo nimo ang mga butang alang sa pula nga mata: susiha

$ netstat -an | grep 2398 и...

Sa sinugdan naghunahuna ko nga kini usa pa ka jamb sa luyo sa mga nag-develop sa Telegram (ug gihunahuna ko gihapon nga ingon), unya nakit-an nako ang usa ka temporaryo nga maayong solusyon: polish ang Docker Container gamit ang usa ka file.

Sa ulahi, usa ka impormasyon ang nakakuha sa akong mata:

mahitungod sa mga sayaw sa estado sa Roskomnadzor sa palibot sa "statistics".

“Among gi-block ang pipila ka mga public proxy sa among mga server gamit ang mga database sa firehol project. Kini nga proyekto nagmonitor sa mga lista sa mga pampublikong proxy ug naghimo og mga database uban kanila.

Sukad nianang higayuna (nga mao, hapit na duha ka adlaw), walay bisan usa ka IP address sa among Russian nga proxy nga gibabagan.

3. Gisultihan ka namo kung unsaon paghimo sa usa ka proxy nga halos dili maapektuhan sa Roskomnadzor ug ipaambit ang usa ka script alang sa pagbabag sa mga pampublikong proxy.

- I-update ang MTProto proxy docker container (o daemon) ngadto sa pinakabag-o nga bersyon: Ang RKN nagkalkula sa mga daan nga bersyon pinaagi sa statistics port, nga gigapos sa 0.0.0.0 ug talagsaon nga nagpaila sa iyang kaugalingon alang sa tibuok Internet. Mas maayo pa, ablihi ang gikinahanglan nga mga pantalan gamit ang iptables, ug isira ang uban (hinumdomi nga sa kaso sa usa ka docker container, kinahanglan nimo gamiton ang FORWARD nga lagda).

— Nakat-on ang Roskomnadzor kung giunsa ang paglabay sa trapiko dugay na ang milabay: nakakita sila og mga tawag sa sulod sa HTTP ug SOCKS5 nga mga proxy, ug nakita usab nila ang daan nga bersyon sa MTProto proxy obfuscation.

Kung ang mga kliyente sa pipila nga mga provider nga adunay ingon nga mga dump nga naka-install maka-access sa Telegram pinaagi sa ingon nga mga proxy, ang RKN nakakita sa ingon nga mga hangyo ug gibabagan dayon kini nga mga proxy. Ang parehas nga magamit alang sa proxy sa MTProto nga adunay daan nga obfuscation.

Solusyon: iapud-apod lamang ang sekreto gamit ang dd sa sinugdanan ngadto sa mga kliyente nga nagkonektar sa proxy (dili kinahanglan nga ipiho ang dugang nga mga letra dd sa mga setting sa mtproto proxy mismo). Makapahimo kini sa usa ka bersyon sa obfuscation nga dili makit-an sa mga dumppile.

Ug walay HTTP o SOCKS5 proxy.

- Pag-adjust, sa tabang diin ang matag tag-iya sa usa ka proxy sa telegrama, nga kanunay nga gidili sa RKN, mahimo nga hingpit (o hapit hingpit) nga mohunong sa pag-block (ug sa samang higayon siguroha nga ang RKN namakak).

Usa ka script nga nagdili sa mga pampublikong proxy ug usa ka gamay nga manwal alang niini.

Tinubdan

Ang among proxy kay pro-Western, wala ko makasugat og mga problema / pagbabag sa panahon sa tingpamulak ug bugnaw nga mga adlaw sa ting-init, wala usab kini makadani sa usa ka mamugnaon nga buluhaton, mao nga wala ko mawad-an og dagan ug wala ko gidugang ang dd* prefix sa ang yawe.

Ang manwal nga "pagkuha sa mga estadistika / pag-monitor" sumala sa opisyal nga mga panudlo sa MtprotoProxyTelegram dili molihok / karaan na, kinahanglan nimo nga ayohon ang imahe sa docker.

Among giayo.

Ang sudlanan nagpadayon pa:

$ 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

Atong susihon ang estadistika:

$ curl http://localhost:2398/stats

curl: (7) Napakyas sa pagkonektar sa 0.0.0.0 port 2398: Ang koneksyon mibalibad
Ang mga istatistika wala gihapon magamit.!..

Hibal-i ang ID sa docker container:

$ docker ps

CONTAINER ID IMAGE COMMAND GIHIMO STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:labing bag-o "/bin/sh -c '/bin/ba…" Mga usa ka oras ang milabay Up Mga usa ka minuto 0.0.0.0:443->443/tcp mtproto-proxy2

Nag-uban kami sa among charter sa sulod sa docker container:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Ug sa katapusang linya sa "run.sh" nga script, idugang ang nawala nga bandila:

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

Idugang ang "--http-stats", usa ka butang nga sama niini kinahanglan molihok:

«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 (save/exit nano/exit container).

I-restart ang among docker container:

$ docker restart mtproto-proxy2

Ang tanan, karon sa mando:

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

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika
Adunay daghang "basura" sa mga estadistika (1/3 niini naa sa screen), paghimo usa ka alyas:

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

Atong makuha kung unsa ang gipasinaw sa docker container: ang gidaghanon sa mga koneksyon ug ang load:

$ telega

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika
Ang sudlanan sa Docker nagdagan, ang mga estadistika nagtuyok.

Mga kapanguhaan nga gigasto

Ingon ka cool Stuart Redman, bisan nagbilin ka og marka sa imong panty. Ang usa ka nagdagan nga imahe sa Docker nagbilin usa ka dako nga tunob.

Dili makatarunganon nga ihulagway ang mga bentaha ug disbentaha sa mga imahe sa docker, usa ka sudlanan sa docker usa ka mini-virtual nga makina nga nagkonsumo og gamay nga mga kapanguhaan kaysa usa ka "tinuod" nga virtual machine, sama sa VirtualBox, apan kini.

1) Gilusad nga adunay o walay docker-image statistics, duha ka kliyente nga naglingaw-lingaw o napulo - mga kahinguhaan ang gigamit ~ sa samang paagi: 75% sa tibuok CPU t2.micro performance.

2) Gitan-aw namon ang pag-monitor sa VPC server:

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

Gikan sa resource utilization graph sa VPC, atong makita nga ang docker container kanunay nga mokonsumo ~ 7,5% sa kinatibuk-ang max. Ang pasundayag sa CPU ug sa Mayo 28 gipahunong nako nga tinuyo / temporaryo (Pahinumdom - Ang OpenVPN & pptp nagdagan usab sa server).

Ngano nga ang 10% kanunay nga paggamit sa CPU ang limitasyon alang sa kini nga server?

Tungod kay adunay mga pagdili gikan sa Amazon EC2 ug kini gikalkula sa mga kredito:

Pag-deploy sa imong MTProxy Telegram nga adunay mga estadistika

1 CPU credit = 1 CPU nga nagtrabaho sa 100% nga load sa usa ka minuto, ug kami adunay 6 nga mga kredito (nga mao, sa mga taluktok, ang 100% nga paggamit sa CPU posible sulod sa 6 ka minuto, ug unya ang gahum sa CPU mokunhod). Ubang mga kombinasyon: pananglitan, 1 CPU credit = 1 CPU nga nagdagan sa 50% nga load sulod sa duha ka minuto (ie mahimo natong gamiton ang CPU sa 50% nga load sulod sa 12 minutos), o, pananglitan, usa ka makanunayon nga 10%- th CPU load atol sa tibuok panahon, etc.

kaplag

  • Kabahin kami sa "Digital Resistance". Gihatagan ang ilang "mga amahan ug inahan" sa usa ka kasaligan nga channel sa komunikasyon.
  • Kung ikaw adunay MtprotoProxyTelegram ug OpenVPN nga na-deploy sa server, apan wala na, wala’y mga paglangan / pings / kapakyasan, apan kung kanunay ka nga nag-eksperimento sa imong t2 / micro, unya paghulat alang sa mga preno sa komunikasyon.
  • Ang akong ping sa gawas sa nasud mao ang ~ 100-250ms, wala’y mga paglangan sa komunikasyon sa tingog.
  • Gasto sa panalapi para sa tanan "niini" (lakip ang mga kapanguhaan sa VPC) = 0₽.

Pag-imprinta pag-usab sa imong artikulo.

UPD: Salamat sa pipila ka mga habrauser alang sa mapuslanon nga mga komento, sa tinuud, posible (gisuportahan ba ang mga estadistika?), Adunay mas maayo nga mga analogue sa opisyal nga Mtproto proxy Telegram docker nga imahe.

Source: www.habr.com

Idugang sa usa ka comment