Distribuera ditt MTProxy-telegram med statistik

Distribuera ditt MTProxy-telegram med statistik

"Jag ärvde den här röran,
börjar med den skamlösa Zello; LinkedIn
och slutar med "alla andra" på Telegram-plattformen
i min värld.

Och sedan hicka,
tjänstemannen tillade hastigt och högt:
men jag ska ställa saker (här inom IT) i ordning."
(...).

Durov anser med rätta att det är auktoritära stater som borde vara rädda för honom, cypherpunken, och Roskomnadzor och gyllene sköldar med sina DPI-filter stör honom inte riktigt.”
(Politisk teknik)

Min tekniska policy är enklare, jag kan här beskriva mina tankar om slarvig blockering i RuNet, men jag tror att de progressiva medborgarna i moderna ryska och Habr-användare har känt oprofessionelliteten hos den nuvarande regeringen från första hand, så jag kommer att begränsa mig till en enkel fras: vår tekniska policy är "Digitalt motstånd" . "förse familj och vänner med en stabil kommunikationskanal."

Utplacering av MTProto proxy Telegram

  • Den tekniska svårighetsgraden är ”inte svår” om du till exempel följer detta cheat sheet.
  • Tillförlitlighetsnivån är "över genomsnittet": docker-bilden fungerar stabilt, den behöver inte startas om varje dag, som utvecklarna skrev i sin officiella Telegram-dokumentation, men behållaren innehåller förmodligen några sårbarheter.
  • Nivå av motstånd/ångest - 10 ISIS-medlemmar väver sina konspirationer "anhöriga utnyttjar", förbudet har inte kommit från RKN ens en gång under hela denna tid (sedan våren).
  • Förtroendenivån är "offentlig babymisstroende", problemet ligger på klientsidan (vissa vänner är misstänksamma mot min MtprotoProxy).
  • Testosteronnivåerna "blev inte högre."
  • Finansiella kostnader - "0₽".
  • Ekonomisk belöning "beror inte på medborgaren Durov." Marknadsföring är förmågan att påtvinga reklam.

Vi kommer att bygga vår TelegramProxy med hjälp av de "fria/personliga" kapaciteterna i Amazon-ec2: t2.micro. jag använde detta bil.

Okej, vi har distribuerat vår gratis server, låt oss gå till den officiella webbplatsen dockerhub och ladda ner docker-behållaren.

Det finns ingen anledning att leta efter någon bild, fil eller magisk knapp - "de finns inte", all magi görs i CLI:

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

Men innan "det", installera docker för CLI:

sudo apt-get install docker.io docker

Vidare, i den officiella dokumentationen för MtprotoProxyTelegram ombeds vi att göra ungefär följande, vi gör:

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

Efter detta kommando kommer en HEX-sträng att visas i terminalutgången, men vi är inte intresserade av den.

Vi skriver i CLI:

$ docker logs mtproto-proxy

Och vi får de nödvändiga uppgifterna:

Distribuera ditt MTProxy-telegram med statistik
I utgången av denna logg visas vi (svarta):

A) vår server IP (extern server IP);
B) och en slumpmässig hemlighet - en slumpmässig sträng i HEX.

Innan du registrerar vår MtproProxy måste du konfigurera huvudbrandväggen över iptables (oavsett hur du omdirigerar trafik på denna VPC kommer det att vara oregerligt, eftersom den viktigaste brandväggen i Amazon-EC2 finns i webbgränssnittet och har högre prioritet över iptables).

Låt oss gå till "konsol Amazon-EC2" i säkerhetsgruppen och öppna inkommande port 443 (logisk maskering trafik för första gången).

Distribuera ditt MTProxy-telegram med statistik

Vi tar våra "ip och hemliga" data från loggen och går till Telegram messenger, hittar den officiella MTProxy Admin Bot (@MTProxybot) och registrerar vår Mtproxy: kör kommandot [/newproxy] och skriv in [our_ip:443], och sedan vår [hemliga /HEX].

Om du förstör när du anger data kommer boten att bli arg och skicka dig till...

Om du fyller i två rader utan fel får du ett godkännande och en fungerande länk till ditt nuvarande MtprotoProxyTelegram, som du kan dela med vem som helst.

Distribuera ditt MTProxy-telegram med statistik

Genom den här boten kan du också lägga till din sponsringskanal (men inte en chatt), där du kommer att påtvinga användare som har anslutit till din server dina åsikter, och du kan undvika att "spamma" och inte störa dina potentiella kunder genom att inte visa kanalen i den fästa meddelandelistan.

Några fler ord om boten, du kan begära statistik där, men "det är också en munk." Tydligen är "statistik" tillgänglig när det finns en "skara parasiter" bakom dig i Makhachkala.

övervakning

Hur många användare kan vi ansluta till vår server? Och hur som helst, vem/vad finns där? Vad? Och hur många?

Låt oss se vad som finns där enligt den officiella dokumentationen... Ja, låt oss göra så här:

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

"Håll fickan bredare" Med hjälp av de föreslagna kommandona kommer vi alltid att få ett liknande fel:

«curl: (7) Det gick inte att ansluta till localhost-port 2398: Anslutningen avvisades»

Vår proxy kommer att fungera. Men! Vi får en bagel, inte statistik.

Du kan göra saker för röda ögon: kolla

$ netstat -an | grep 2398 и...

Först trodde jag att detta var ett annat problem med Telegram-utvecklarna (och det tror jag fortfarande), sedan hittade jag en bra tillfällig lösning: polera Docker-behållaren med en fil.

Senare fångade denna information mitt öga:

om Roskomnadzors statliga danser kring "statistik".

"Vi blockerade några offentliga proxyservrar på våra servrar med hjälp av databaserna för Firehol-projektet. Detta projekt övervakar listor med offentliga ombud och skapar databaser med dem.

Från det ögonblicket (det vill säga i nästan två dagar) blockerades inte en enda IP-adress för vår ryska proxy.

3. Vi berättar hur du skapar en proxy som är nästan osårbar för Roskomnadzor och delar ett skript för att blockera offentliga proxyservrar.

— Uppdatera docker-behållaren (eller demonen) MTProto-proxy till den senaste versionen: RKN beräknar gamla versioner med hjälp av statistikporten, som var bunden till 0.0.0.0 och identifierade sig unikt för hela Internet. Ännu bättre, öppna de nödvändiga portarna med iptables och stäng resten (kom ihåg att i fallet med en dockningscontainer bör du använda FORWARD-regeln).

— Roskomnadzor har länge lärt sig att dumpa trafik: de ser förfrågningar inuti HTTP- och SOCKS5-proxyer, och ser även den gamla versionen av MTProto-proxy-obfuskering.

När klienter hos vissa leverantörer som har sådana dumpar installerade får tillgång till Telegram via sådana proxyservrar, ser RKN sådana förfrågningar och blockerar omedelbart dessa proxyservrar. Detsamma gäller för MTProto-proxy med gammal obfuskation.

Lösning: ge klienter som ansluter till proxyn en hemlighet med endast dd i början (du behöver inte ange ytterligare dd-bokstäver i inställningarna för själva mtproto-proxyn). Detta kommer att möjliggöra en version av obfuskation som dumpar inte kan upptäcka.

Och inga HTTP- eller SOCKS5-proxyer.

— En tweak med hjälp av vilken varje ägare av en Telegram-proxy som regelbundet förbjuds av RKN helt (eller nästan helt) kan sluta blockera (och samtidigt se till att RKN ljuger).

Ett manus som förbjuder offentliga fullmakter och en liten manual för det.”

Källa

Vår proxy är västerländsk, jag stötte inte på några problem/blockeringar under våren och svala sommardagar, det lämpade sig inte för ett kreativt problem heller, så jag hanterade inte tempoförlusten och gjorde det t lägg till prefixet dd* till nyckeln.

Manualen "skaffa statistik/övervakning" enligt de officiella instruktionerna från MtprotoProxyTelegram fungerar inte/föråldrad, du måste reparera docker-bilden.

Vi fixar det.

Vi har fortfarande behållaren igång:

$ 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

Låt oss kolla statistiken:

$ curl http://localhost:2398/stats

curl: (7) Det gick inte att ansluta till 0.0.0.0-porten 2398: Anslutningen nekades
Statistik är fortfarande otillgänglig.!...

Ta reda på ID:t för dockningsbehållaren:

$ docker ps

KONTAINER-ID BILDKOMMANDO SKAPADE STATUSPORTNAMN
f423c209cfdc telegrammessenger/proxy:senaste "/bin/sh -c '/bin/ba..." För ungefär en timme sedan Upp Ungefär en minut 0.0.0.0:443->443/tcp mtproto-proxy2

Låt oss gå med vår charter i hamnarcontainern:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Och i den allra sista raden i "run.sh"-skriptet lägger vi till den saknade flaggan:

«--http-statistik»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 —aes-pwd /etc/telegram/hello-explorers-hur-mår-du -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Lägg till "—http-stats", något så här ska se ut så här:

«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 (spara/avsluta nano/avsluta behållare).

Vi startar om vår dockarcontainer:

$ docker restart mtproto-proxy2

Det var allt, nu på kommando:

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

Distribuera ditt MTProxy-telegram med statistik
Det finns mycket "skräp" i statistiken (1/3 av det finns på skärmdumpen), skapa ett alias:

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

Vi får vad vi polerade dockercontainern för: antal anslutningar och last:

$ telega

Distribuera ditt MTProxy-telegram med statistik
Docker-behållaren är igång, statistiken snurrar.

Resurser förbrukade

Oavsett hur cool du är Stuart Redman, till och med du lämnar ett spår av go.na på dina kalsonger. En pågående Docker-bild lämnar ett betydande fotavtryck.

Det är ingen mening att beskriva fördelarna och nackdelarna med docker-bilder; en docker-container är en mini-virtuell maskin som förbrukar mindre resurser än en "riktig" virtuell maskin, till exempel VirtualBox, men det gör den.

1) Docker-bilden lanseras med eller utan statistik, två klienter leker eller tio - resurser används ~likt: 75% av den totala prestandan för CPU t2.micro.

2) Låt oss titta på att övervaka VPC-servern:

Distribuera ditt MTProxy-telegram med statistik

Från resursutnyttjandegrafen på VPC ser vi att dockercontainern ständigt förbrukar ~7,5% av det totala max. CPU-prestanda och stoppades av mig avsiktligt/tillfälligt den 28 maj (Obs - servern kör även OpenVPN & pptp).

Varför är 10 % konstant CPU-belastning gränsen för denna server?

Eftersom det finns restriktioner för Amazon EC2 och de beräknas i poäng:

Distribuera ditt MTProxy-telegram med statistik

1 CPU-kredit = 1 CPU som arbetar med 100 % belastning i en minut, och vi har 6 poäng (det vill säga i toppar är 100 % CPU-användning möjligt inom 6 minuter, och sedan kommer CPU-effekten att minska). Andra kombinationer: till exempel 1 CPU-kredit = 1 CPU som körs med 50 % belastning i två minuter (det vill säga vi kan använda CPU:n med 50 % belastning i 12 minuter), eller till exempel en konstant 10 % av CPU-belastningen under hela tiden osv.

Resultat

  • Vi är en del av det digitala motståndet. Vi försåg våra "mammor och pappor" med en pålitlig kommunikationskanal.
  • Om du har MtprotoProxyTelegram och OpenVPN utplacerade på din server, men inget mer, blir det inga förseningar/pingar/fel, men om du ständigt experimenterar med din t2/micro, förvänta dig avmattningar i kommunikationen.
  • Min utlandsping är ~100-250ms, det finns inga förseningar i röstkommunikation.
  • Finansiella kostnader för allt "detta" (inklusive VPC-resurser) = 0₽.

Omtryck av din artikel.

UPD: Tack vare några habrowers för användbara kommentarer, är det faktiskt möjligt (stöds statistik?) att det finns bättre analoger till den officiella Mtproto proxy Telegram docker-bilden.

Källa: will.com

Lägg en kommentar