Postavljanje vašeg MTProxy Telegrama sa statistikom

Postavljanje vašeg MTProxy Telegrama sa statistikom

"Naslijedio sam ovaj nered,
počevši od bestidnog Zella; LinkedIn
i završava sa "svi ostali" na platformi Telegram
u mom svetu.

A onda, štucajući,
funkcioner je žurno i glasno dodao:
ali ću stvari (ovdje u IT) dovesti u red."
(...).

Durov s pravom vjeruje da bi ga se autoritarne države trebale bojati, šiferpank, a Roskomnadzor i zlatni štitovi sa svojim DPI filterima mu baš i ne smetaju.”
(politička tehnika)

Moja tehnička politika je jednostavnija, ovdje mogu opisati svoja razmišljanja o nepažljivom blokiranju u Runetu, ali vjerujem da su progresivni građani modernog ruskog i habrskog korisnika iz prve ruke osjetili neprofesionalizam sadašnje vlasti, pa ću se ograničiti na jedna fraza: naša tehnička politika je “Digitalna otpornost”. “pružanje porodice i prijatelja stabilnog kanala komunikacije.”

Postavljanje MTProto proxy Telegrama

  • Tehnički nivo težine "nije težak" ako, na primjer, pratite ovu varalicu.
  • Nivo pouzdanosti je "iznad prosjeka": docker image radi stabilno, ne treba ga ponovo pokretati svaki dan, kako su programeri napisali u svojoj službenoj Telegram dokumentaciji, ali kontejner vjerovatno sadrži neke ranjivosti.
  • Nivo otpora/anksioznosti - 10 pripadnika ISIS-a plete svoje zavjere "rođaci iskorištavaju", zabrana nije stigla iz RKN-a ni jednom za sve ovo vrijeme (od proljeća).
  • Nivo povjerenja je „nepovjerenje javnosti kod beba“, problem je na strani klijenta (neki prijatelji sumnjaju u moj MtprotoProxy).
  • Nivoi testosterona "nije porastao."
  • Finansijski troškovi - “0₽”.
  • Finansijska nagrada "ne zavisi od građanina Durova". Promocija je sposobnost nametanja reklame.

Izgradićemo naš TelegramProxy koristeći „besplatne/lične“ kapacitete Amazon-ec2: t2.micro. koristio sam ovo auto.

U redu, postavili smo naš besplatni server, idemo na službenu web stranicu dockerhub i preuzmite docker kontejner.

Nema potrebe da tražite neku sliku, datoteku ili magično dugme - "oni ne postoje", sva magija se radi u CLI:

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

Ali prije "toga", instalirajte docker za CLI:

sudo apt-get install docker.io docker

Nadalje, u službenoj dokumentaciji MtprotoProxyTelegrama od nas se traži da uradimo otprilike sljedeće:

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

Nakon ove naredbe, na izlazu terminala će se pojaviti HEX string, ali nas to ne zanima.

U CLI pišemo:

$ docker logs mtproto-proxy

I dobijamo potrebne podatke:

Postavljanje vašeg MTProxy Telegrama sa statistikom
U izlazu ovog dnevnika prikazani smo (zatamnjeni):

A) IP našeg servera (IP eksternog servera);
B) i nasumična tajna - nasumični niz u HEX-u.

Prije registracije našeg MtproProxy-a, potrebno je konfigurirati glavni firewall preko iptables-a (bez obzira na koji način preusmjeravate promet na ovom VPC-u, to će biti neposlušno, jer se najvažniji firewall u Amazon-EC2 nalazi u web sučelju i ima veći prioritet preko iptablesa).

idemo na "konzola Amazon-EC2" u Sigurnosnoj grupi i otvorite ulazni port 443 (logičko maskiranje saobraćaja prvi put).

Postavljanje vašeg MTProxy Telegrama sa statistikom

Uzimamo naše “ip i tajne” podatke iz dnevnika i idemo na Telegram messenger, pronalazimo službenog MTProxy Admin Bota (@MTProxybot) i registrujemo naš MtproProxy: pokrenite naredbu [/newproxy] i unesite [our_ip:443], i onda naša [tajna /HEX].

Ako zabrljate prilikom unosa podataka, bot će se naljutiti i poslati vas na...

Ako popunite dva reda bez grešaka, dobit ćete odobrenje i radnu vezu do vašeg trenutnog MtprotoProxyTelegrama, koji možete podijeliti sa bilo kim.

Postavljanje vašeg MTProxy Telegrama sa statistikom

Također, preko ovog bota možete dodati svoj sponzorski kanal (ali ne i chat), gdje ćete nametati svoje stavove korisnicima koji su se povezali na vaš server, a možete izbjeći "spamovanje" i ne smetati potencijalnim klijentima neprikazivanjem kanal na zakačenoj listi messengera.

Još nekoliko riječi o botu, tamo možete zatražiti statistiku, ali "i to je krofna." Očigledno je “statistika” dostupna kada je iza vas “gomila parazita” u Mahačkali.

Monitoring

Koliko korisnika se možemo povezati na naš server? I uostalom, ko/šta je tu? Šta? I koliko?

Da vidimo šta ima po službenoj dokumentaciji... Da, uradimo ovako:

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

“Drži džep širi” Koristeći predložene komande, uvijek ćemo dobiti sličnu grešku:

«curl: (7) Neuspješno povezivanje na port localhost 2398: Veza je odbijena»

Naš proxy će raditi. Ali! Dobićemo pecivo, ne statistiku.

Možete učiniti stvari za ljude s crvenim očima: provjerite

$ netstat -an | grep 2398 и...

Prvo sam pomislio da je to još jedan problem sa programerima Telegrama (i još uvijek tako), a onda sam našao dobro privremeno rješenje: poliranje Docker kontejnera datotekom.

Kasnije mi je za oko zapela ova informacija:

o državnim plesovima Roskomnadzora oko „statistike“.

“Blokirali smo neke javne proksije na našim serverima koristeći baze podataka firehol projekta. Ovaj projekat prati liste sa javnim proksijima i kreira baze podataka sa njima.

Od tog trenutka (to jest skoro dva dana) nijedna IP adresa našeg ruskog proxyja nije blokirana.

3. Govorimo vam kako napraviti proxy koji je gotovo neranjiv za Roskomnadzor i dijelimo skriptu za blokiranje javnih proksija.

— Ažurirajte docker kontejner (ili demon) MTProto proxy na najnoviju verziju: RKN izračunava stare verzije koristeći statistički port, koji je bio vezan na 0.0.0.0 i jedinstveno se identificirao za cijeli Internet. Još bolje, otvorite potrebne portove koristeći iptables, a ostale zatvorite (zapamtite da u slučaju docker kontejnera, trebate koristiti pravilo FORWARD).

— Roskomnadzor je odavno naučio da izbacuje saobraćaj: vide zahteve unutar HTTP i SOCKS5 proksija, a takođe vide i staru verziju zamagljivanja proksija MTProto.

Kada klijenti nekih provajdera koji imaju instalirane takve dumpove pristupe Telegramu preko takvih proksija, RKN vidi takve zahtjeve i odmah ih blokira. Isto važi i za MTProto proxy sa starom zamagljivanjem.

Rješenje: dajte klijentima koji se povezuju na proxy tajnu sa samo dd na početku (nema potrebe da specificirate dodatna slova dd u postavkama samog mtproto proxyja). Ovo će omogućiti verziju zamagljivanja koju dumpovi ne mogu otkriti.

I nema HTTP ili SOCKS5 proksija.

— Podešavanje uz pomoć kojeg svaki vlasnik Telegram proxyja kojeg RKN redovno banuje može u potpunosti (ili gotovo u potpunosti) zaustaviti blokiranje (i istovremeno se uvjeriti da RKN laže).

Skripta koja zabranjuje javne proksije i mali priručnik za to.”

Izvor

Naš proxy je prozapadni, nisam imao nikakvih problema/blokada tokom prolećnih i prohladnih letnjih dana, nije dao ni kreativni problem, tako da se nisam bavio gubitkom tempa i t ključu dodajte prefiks dd*.

Priručnik „pribavljanje statistike/nadgledanje“ prema službenim uputama MtprotoProxyTelegrama ne radi/zastario, morat ćete popraviti docker image.

Mi to popravljamo.

Kontejner još uvijek radi:

$ 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

Provjerimo statistiku:

$ curl http://localhost:2398/stats

curl: (7) Neuspješno povezivanje na 0.0.0.0 port 2398: Veza odbijena
Statistika je i dalje nedostupna!..

Saznajte ID docker kontejnera:

$ docker ps

KOMANDA SLIKE ID KONTEJNERA KREIRANA STATUS IMENA PORTOVA
f423c209cfdc telegrammessenger/proxy: najnovije "/bin/sh -c '/bin/ba..." Prije otprilike sat vremena Gore Gore Otprilike minutu 0.0.0.0:443->443/tcp mtproto-proxy2

Idemo s našom poveljom unutar docker kontejnera:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

I u poslednjem redu skripte “run.sh” dodajemo zastavicu koja nedostaje:

«--http-stats»
"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 root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Dodajte “—http-stats”, nešto poput ovoga bi trebalo izgledati ovako:

«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 (spremi/izlaz iz nano/izlaz iz kontejnera).

Ponovo pokrećemo naš docker kontejner:

$ docker restart mtproto-proxy2

To je to, sada na komandu:

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

Postavljanje vašeg MTProxy Telegrama sa statistikom
U statistici ima puno "smeća" (1/3 toga je na snimku ekrana), napravite alias:

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

Dobijamo ono za šta smo ispolirali docker kontejner: broj priključaka i opterećenje:

$ telega

Postavljanje vašeg MTProxy Telegrama sa statistikom
Docker kontejner radi, statistika se vrti.

Potrošeni resursi

Bez obzira koliko ste cool Stuart Redman, čak i vi ostavljate trag go.na na svojim gaćama. Pokrenuta Docker slika ostavlja značajan trag.

Nema smisla opisivati ​​prednosti i nedostatke docker slika, docker kontejner je mini-virtualna mašina koja troši manje resursa od „prave“ virtuelne mašine, na primer VirtualBox, ali jeste.

1) Docker image se pokreće sa ili bez statistike, dva klijenta se brčkaju ili deset - resursi se koriste ~jednako: 75% ukupnih performansi CPU-a t2.micro.

2) Pogledajmo praćenje VPC servera:

Postavljanje vašeg MTProxy Telegrama sa statistikom

Iz grafa iskorištenosti resursa na VPC-u vidimo da docker kontejner konstantno troši ~7,5% od ukupnog max. CPU performanse i ja sam ga namjerno/privremeno zaustavio 28. maja (Napomena - server takođe pokreće OpenVPN & pptp).

Zašto je 10% konstantnog opterećenja procesora ograničenje za ovaj server?

Jer postoje ograničenja od strane Amazon EC2 i ona se računaju u kreditima:

Postavljanje vašeg MTProxy Telegrama sa statistikom

1 CPU kredit = 1 CPU koji radi sa 100% opterećenjem tokom jedne minute, a imamo 6 kredita (to jest, u vrhuncu, 100% CPU iskorištenje je moguće u roku od 6 minuta, a zatim će se snaga CPU-a smanjiti). Druge kombinacije: na primjer, 1 CPU kredit = 1 CPU koji radi pri 50% opterećenja dvije minute (to jest, možemo koristiti CPU sa 50% opterećenja 12 minuta), ili, na primjer, konstantno 10% CPU opterećenje tokom celog vremena itd.

nalazi

  • Mi smo dio Digitalnog otpora. Omogućili smo našim „mamama i tatama“ pouzdan kanal komunikacije.
  • Ako imate MtprotoProxyTelegram i OpenVPN raspoređene na vašem serveru, ali ništa više, neće biti kašnjenja/pingova/kvarova, ali ako stalno eksperimentišete sa svojim t2/micro, očekujte usporavanje komunikacije.
  • Moj inozemni ping je ~100-250ms, nema kašnjenja u glasovnoj komunikaciji.
  • Finansijski troškovi za sve "ovo" (uključujući VPC resurse) = 0₽.

Reprint vašeg članka.

UPD: Zahvaljujući nekim habrowerima na korisnim komentarima, zaista je moguće (da li je statistika podržana?) da postoje bolji analozi službene Mtproto proxy Telegram docker slike.

izvor: www.habr.com

Dodajte komentar