Menggunakan Telegram MTProxy anda dengan statistik

Menggunakan Telegram MTProxy anda dengan statistik

"Saya mewarisi kekacauan ini,
bermula dengan Zello yang tidak tahu malu; LinkedIn
dan berakhir dengan "orang lain" di platform Telegram
dalam dunia saya.

Dan kemudian cegukan,
Pegawai itu menambah dengan tergesa-gesa dan lantang:
tetapi saya akan mengatur perkara (di sini dalam IT)"
(...).

Durov, betul-betul percaya bahawa ia adalah negara autoritarian yang harus takut kepadanya, cypherpunk, dan Roskomnadzor dan perisai emas dengan penapis DPI mereka tidak benar-benar mengganggunya.
(Teknik politik)

Dasar teknikal saya adalah lebih mudah, saya boleh menerangkan di sini pemikiran saya tentang menyekat cuai di Runet, tetapi saya percaya bahawa rakyat progresif pengguna Rusia Moden dan Habr telah merasakan ketidakprofesionalan kerajaan semasa dalam kulit mereka sendiri, jadi saya akan mengehadkan diri saya untuk satu frasa: dasar teknikal kami ialah "Rintangan Digital" . "menyediakan saudara dan rakan saluran komunikasi yang stabil."

Menggunakan Telegram proksi MTProto

  • Tahap teknikal kerumitan adalah "mudah", jika, sebagai contoh, anda mengikuti helaian cheat ini.
  • Tahap kebolehpercayaan adalah "di atas purata": imej docker berfungsi dengan stabil, ia tidak perlu dimulakan semula setiap hari, seperti yang ditulis oleh pembangun dalam dokumentasi Telegram rasmi mereka, tetapi bekas itu mungkin mengandungi beberapa kelemahan.
  • Tahap penentangan/kebimbangan - 10 ahli ISIS sedang menganyam konspirasi "guna saudara mara", larangan itu tidak datang dari RKN walaupun sekali sepanjang masa (sejak musim bunga).
  • Tahap kepercayaan adalah "ketidakpercayaan bayi awam", masalah di pihak pelanggan (sesetengah rakan curiga dengan MtprotoProxy saya).
  • Tahap testosteron - "tidak mendapat lebih tinggi."
  • Kos kewangan - "0₽".
  • Ganjaran kewangan - "tidak bergantung kepada warganegara Durov." Promosi - keupayaan untuk mengenakan pengiklanan.

Kami akan meningkatkan TelegramProxy kami pada kapasiti "percuma / peribadi" Amazon-ec2: t2.micro. sudah biasa ini kereta.

Okey, menggunakan pelayan percuma anda, pergi ke tapak web rasmi dockerhub dan muat turun bekas docker.

Tidak perlu mencari beberapa imej, fail atau butang ajaib - "mereka tidak ada", semua keajaiban dilakukan dalam CLI:

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

Tetapi sebelum "itu", pasang docker untuk CLI:

sudo apt-get install docker.io docker

Selanjutnya, dalam dokumentasi rasmi MtprotoProxyTelegram, kami ditawarkan untuk melakukan sesuatu seperti berikut, kami lakukan:

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

Selepas arahan ini, rentetan HEX akan muncul dalam output terminal, tetapi kami tidak berminat dengannya.

Kami menulis dalam CLI:

$ docker logs mtproto-proxy

Dan kami mendapat data yang diperlukan:

Menggunakan Telegram MTProxy anda dengan statistik
Dalam output log ini, kami ditunjukkan (dilumur):

A) ip pelayan kami (ip pelayan luar);
B) dan rahsia rawak - rentetan rawak dalam HEX.

Sebelum mendaftar MtproProxy kami, anda perlu mengkonfigurasi tembok api utama ke atas iptables (tidak kira bagaimana anda mengubah hala lalu lintas ke VPC ini, ia akan menjadi nakal, kerana tembok api utama dalam Amazon-EC2 terletak dalam antara muka web dan mempunyai keutamaan yang lebih tinggi daripada iptables).

Kita pergi ke "konsol Amazon-EC2" dalam Kumpulan Keselamatan dan buka port masuk 443 (logik masking lalu lintas untuk kali pertama).

Menggunakan Telegram MTProxy anda dengan statistik

Kami mengambil data "ip dan rahsia" kami dari log dan pergi ke messenger Telegram, cari Bot Admin MTProxy rasmi (@MTProxybot) dan daftarkan MtproProxy kami: jalankan arahan [/newproxy] dan masukkan [our_ip:443], dan kemudian [rahsia /HEX] kami.

Jika anda keliru semasa memasukkan data, bot akan marah dan menghantar anda ke ...

Jika anda mengisi dua baris tanpa ralat, anda akan menerima kelulusan dan pautan berfungsi ke MtprotoProxyTelegram semasa anda, yang boleh anda kongsi dengan sesiapa sahaja.

Menggunakan Telegram MTProxy anda dengan statistik

Selain itu, melalui bot ini, anda boleh menambah saluran penajaan anda (tetapi bukan sembang), di mana anda akan mengenakan pandangan anda kepada pengguna yang telah menyambung ke pelayan anda, atau anda tidak boleh "spam" dan tidak mengganggu bakal pelanggan anda tanpa menunjukkan saluran dalam senarai utusan yang disematkan.

Beberapa perkataan lagi tentang bot, di mana anda boleh meminta statistik, tetapi "juga donat". Nampaknya, "statistik" tersedia apabila anda mempunyai "kumpulan pemuat percuma" di belakang anda Makhachkala.

Pemantauan

Berapa ramai pengguna yang boleh kami sambungkan ke pelayan kami? Lagipun, siapa / apa yang ada? Apa? Dan berapa ramai?

Kami melihat apa yang ada mengikut dokumentasi rasmi ... Ya, di sini, lakukan seperti ini:

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

"Pastikan poket anda lebih luas" Menurut arahan yang dicadangkan, kami akan sentiasa menerima ralat yang serupa:

«curl: (7) Gagal menyambung ke port localhost 2398: Sambungan ditolak»

Proksi kami akan berfungsi. Tetapi! Bagel, bukan statistik yang kami dapat.

Anda boleh melakukan perkara untuk bermata merah: semak

$ netstat -an | grep 2398 и...

Pada mulanya saya fikir ini adalah satu lagi jamb di belakang pemaju Telegram (dan saya masih fikir begitu), kemudian saya menemui penyelesaian yang baik sementara: menggilap Kontena Docker dengan fail.

Kemudian, sebuah INFA menarik perhatian saya:

mengenai tarian negeri Roskomnadzor sekitar "statistik".

“Kami telah menyekat beberapa proksi awam pada pelayan kami menggunakan pangkalan data projek firehol. Projek ini memantau senarai dengan proksi awam dan membuat pangkalan data dengan mereka.

Sejak saat itu (iaitu, sudah hampir dua hari), tiada satu pun alamat IP proksi Rusia kami telah disekat.

3. Kami memberitahu anda cara membuat proksi yang hampir kebal kepada Roskomnadzor dan berkongsi skrip untuk menyekat proksi awam.

- Kemas kini bekas docker proksi MTProto (atau daemon) kepada versi terkini: RKN mengira versi lama dengan port statistik, yang terikat kepada 0.0.0.0 dan dikenal pasti secara unik untuk keseluruhan Internet. Lebih baik lagi, buka port yang diperlukan menggunakan iptables, dan tutup yang lain (ingat bahawa dalam kes bekas docker, anda harus menggunakan peraturan FORWARD).

— Roskomnadzor belajar cara membuang trafik lama dahulu: mereka melihat panggilan dalam proksi HTTP dan SOCKS5, dan mereka juga melihat versi lama pengeliruan proksi MTProto.

Apabila pelanggan beberapa penyedia yang mempunyai tempat pembuangan sedemikian memasang mengakses Telegram melalui proksi sedemikian, RKN melihat permintaan tersebut dan segera menyekat proksi ini. Perkara yang sama berlaku untuk proksi MTProto dengan kekeliruan lama.

Penyelesaian: edarkan rahsia hanya dengan dd pada permulaan kepada pelanggan yang menyambung kepada proksi (tidak perlu menyatakan huruf tambahan dd dalam tetapan proksi mtproto itu sendiri). Ini akan membolehkan versi kekeliruan yang tidak dapat dikesan oleh dumppile.

Dan tiada proksi HTTP atau SOCKS5.

- Pelarasan, dengan bantuan setiap pemilik proksi telegram, yang selalu diharamkan oleh RKN, boleh sepenuhnya (atau hampir sepenuhnya) berhenti menyekat (dan pada masa yang sama memastikan bahawa RKN itu berbohong).

Skrip yang melarang proksi awam dan manual kecil untuknya.

Source

Proksi kami adalah pro-Barat, saya tidak menghadapi sebarang masalah / sekatan semasa musim bunga dan hari musim panas yang sejuk, ia juga tidak menarik tugas kreatif, jadi saya tidak kehilangan langkah dan tidak menambah awalan dd* pada kunci.

Manual "mendapatkan statistik/pemantauan" mengikut arahan rasmi MtprotoProxyTelegram tidak berfungsi/lapuk, anda perlu membaiki imej docker.

Kita betulkan.

Bekas masih berjalan:

$ 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

Mari semak statistik:

$ curl http://localhost:2398/stats

curl: (7) Gagal menyambung ke port 0.0.0.0 2398: Sambungan ditolak
Statistik masih tidak tersedia.!..

Ketahui ID bekas docker:

$ docker ps

PERINTAH IMEJ ID BEKAS DIBUAT NAMA PORT STATUS
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Kira-kira sejam yang lalu Naik Kira-kira seminit 0.0.0.0:443->443/tcp mtproto-proxy2

Kami pergi dengan piagam kami di dalam bekas buruh pelabuhan:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Dan dalam baris terakhir skrip "run.sh", tambahkan bendera yang hilang:

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

Tambah "--http-stats", sesuatu seperti ini sepatutnya berfungsi:

«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 (simpan/keluar nano/keluar bekas).

Mulakan semula bekas docker kami:

$ docker restart mtproto-proxy2

Segala-galanya, kini atas arahan:

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

Menggunakan Telegram MTProxy anda dengan statistik
Terdapat banyak "sampah" dalam statistik (1/3 daripadanya pada skrin), buat alias:

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

Kami mendapat apa bekas docker digilap untuk: bilangan sambungan dan beban:

$ telega

Menggunakan Telegram MTProxy anda dengan statistik
Bekas Docker sedang berjalan, statistik berputar.

Sumber yang dibelanjakan

Sehebat anda Stuart Redman, walaupun anda meninggalkan kesan pada seluar dalam anda. Imej Docker yang sedang berjalan meninggalkan jejak yang besar.

Tidak masuk akal untuk menerangkan kelebihan dan kekurangan imej buruh pelabuhan, bekas buruh pelabuhan ialah mesin maya mini yang menggunakan sumber yang kurang daripada mesin maya "sebenar", seperti VirtualBox, tetapi ia berlaku.

1) Dilancarkan dengan atau tanpa statistik imej docker, dua pelanggan bermain-main atau sepuluh - sumber digunakan ~ dengan cara yang sama: 75% daripada keseluruhan prestasi CPU t2.micro.

2) Kami melihat pemantauan pelayan VPC:

Menggunakan Telegram MTProxy anda dengan statistik

Daripada graf penggunaan sumber pada VPC, kami melihat bahawa bekas docker sentiasa menggunakan ~ 7,5% daripada jumlah maks. Prestasi CPU dan pada 28 Mei telah dihentikan oleh saya secara sengaja/sementara (Nota - OpenVPN & pptp juga berjalan pada pelayan).

Mengapakah penggunaan CPU berterusan 10% adalah had untuk pelayan ini?

Kerana terdapat sekatan daripada Amazon EC2 dan ia dikira dalam kredit:

Menggunakan Telegram MTProxy anda dengan statistik

1 kredit CPU = 1 CPU bekerja pada beban 100% selama satu minit, dan kami mempunyai 6 kredit (iaitu, pada puncaknya, penggunaan CPU 100% mungkin dalam masa 6 minit, dan kemudian kuasa CPU akan berkurangan). Kombinasi lain: sebagai contoh, 1 kredit CPU = 1 CPU berjalan pada beban 50% selama dua minit (iaitu kita boleh menggunakan CPU pada beban 50% selama 12 minit), atau, sebagai contoh, beban CPU ke-10% yang berterusan semasa sepanjang masa, dsb.

Penemuan

  • Kami adalah sebahagian daripada "Kerintangan Digital". Menyediakan "ayah dan ibu" mereka dengan saluran komunikasi yang boleh dipercayai.
  • Jika anda mempunyai MtprotoProxyTelegram dan OpenVPN yang digunakan pada pelayan, tetapi tidak lebih, tidak akan ada kelewatan / ping / kegagalan, tetapi jika anda sentiasa bereksperimen dengan t2 / mikro anda, kemudian tunggu brek komunikasi.
  • Ping luar negara saya ialah ~100-250ms, tiada kelewatan dalam komunikasi suara.
  • Kos kewangan untuk semua "ini" (termasuk sumber VPC) = 0₽.

Cetak semula artikel anda.

UPD: Terima kasih kepada beberapa pengguna habra untuk komen yang berguna, sememangnya, mungkin (adakah statistik disokong?), Terdapat analog yang lebih baik dari imej docker Telegram proksi Mtproto rasmi.

Sumber: www.habr.com

Tambah komen