Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

«Κληρονόμησα αυτό το χάος,
ξεκινώντας από τον ξεδιάντροπο Zello? LinkedIn
και τελειώνει με «όλοι οι άλλοι» στην πλατφόρμα του Telegram
στον κόσμο μου.

Και μετά λόξιγκας,
Ο αξιωματούχος πρόσθεσε βιαστικά και δυνατά:
αλλά θα βάλω τα πράγματα σε μια σειρά (εδώ στο IT)»
(...).

Ο Durov, ορθώς πιστεύει ότι είναι αυταρχικά κράτη που πρέπει να τον φοβούνται, έναν cypherpunk, και το Roskomnadzor και οι χρυσές ασπίδες με τα φίλτρα DPI τους δεν τον ενοχλούν πραγματικά.
(Πολιτική τεχνική)

Η τεχνική μου πολιτική είναι απλούστερη, μπορώ να περιγράψω εδώ τις σκέψεις μου για το απρόσεκτο μπλοκάρισμα στο Runet, αλλά πιστεύω ότι οι προοδευτικοί πολίτες των Σύγχρονων Ρώσων και χρηστών του Habr έχουν αισθανθεί τον αντιεπαγγελματισμό της σημερινής κυβέρνησης στο πετσί τους, οπότε θα περιοριστώ σε μια μόνο φράση: η τεχνική μας πολιτική είναι η «Ψηφιακή Αντίσταση» . «παρέχοντας σε συγγενείς και φίλους ένα σταθερό κανάλι επικοινωνίας».

Ανάπτυξη του Telegram μεσολάβησης MTProto

  • Το τεχνικό επίπεδο πολυπλοκότητας είναι «εύκολο», εάν, για παράδειγμα, ακολουθήσετε αυτό το cheat sheet.
  • Το επίπεδο αξιοπιστίας είναι "πάνω από το μέσο όρο": η εικόνα του docker λειτουργεί σταθερά, δεν χρειάζεται να επανεκκινείται κάθε μέρα, όπως έγραψαν οι προγραμματιστές στην επίσημη τεκμηρίωση του Telegram, αλλά το κοντέινερ πιθανότατα περιέχει κάποια τρωτά σημεία.
  • Το επίπεδο αντίστασης/άγχος - 10 μέλη του ISIS υφαίνουν τις συνωμοσίες τους «συγγενείς χρησιμοποιούν», η απαγόρευση δεν έχει έρθει από το RKN ούτε μια φορά όλη την ώρα (από την άνοιξη).
  • Το επίπεδο εμπιστοσύνης είναι η "δημόσια παιδική δυσπιστία", ένα πρόβλημα από την πλευρά του πελάτη (μερικοί φίλοι είναι ύποπτοι για το MtprotoProxy μου).
  • Τα επίπεδα τεστοστερόνης - "δεν ανέβηκαν".
  • Οικονομικά έξοδα - "0₽".
  • Οικονομική ανταμοιβή - "δεν εξαρτάται από τον πολίτη Durov." Προώθηση - η ικανότητα επιβολής διαφήμισης.

Θα αυξήσουμε το TelegramProxy μας στις «δωρεάν / προσωπικές» δυνατότητες του Amazon-ec2: t2.micro. χρησιμοποίησα αυτό αυτοκίνητο.

Εντάξει, αναπτύξατε τον δωρεάν διακομιστή σας, μεταβείτε στον επίσημο ιστότοπο dockerhub και κατεβάστε το κοντέινερ docker.

Δεν χρειάζεται να αναζητήσετε κάποια εικόνα, αρχείο ή μαγικό κουμπί - "δεν υπάρχουν", όλη η μαγεία γίνεται στο CLI:

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

Αλλά πριν από "αυτό", εγκαταστήστε το docker για 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).
Β) και ένα τυχαίο μυστικό - μια τυχαία συμβολοσειρά σε HEX.

Πριν καταχωρήσετε το MtproProxy μας, πρέπει να διαμορφώσετε το κύριο τείχος προστασίας μέσω iptables (ανεξάρτητα από το πώς ανακατευθύνετε την κυκλοφορία σε αυτό το VPC, θα είναι άτακτο, καθώς το κύριο τείχος προστασίας στο Amazon-EC2 βρίσκεται στη διεπαφή ιστού και έχει μεγαλύτερη προτεραιότητα έναντι του iptables).

Ας πάμε στο "κονσόλα Amazon-EC2" στην ομάδα ασφαλείας και ανοίξτε την εισερχόμενη θύρα 443 (λογική κάλυψη εμπορία για πρώτη φορά).

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

Παίρνουμε τα δεδομένα μας "ip and secret" από το αρχείο καταγραφής και πηγαίνουμε στο Messenger του Telegram, βρίσκουμε το επίσημο Bot Admin MTProxy (@MTProxybot) και καταχωρούμε το MtproProxy: εκτελέστε την εντολή [/newproxy] και πληκτρολογήστε [our_ip:443], και τότε το [μυστικό /HEX] μας.

Αν μπερδευτείτε κατά την εισαγωγή δεδομένων, το bot θα θυμώσει και θα σας στείλει στο ...

Εάν συμπληρώσετε δύο γραμμές χωρίς σφάλματα, θα λάβετε έγκριση και έναν λειτουργικό σύνδεσμο προς το τρέχον MtprotoProxyTelegram, τον οποίο μπορείτε να μοιραστείτε με οποιονδήποτε.

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

Επίσης, μέσω αυτού του bot, μπορείτε να προσθέσετε το κανάλι χορηγίας σας (αλλά όχι μια συνομιλία), όπου θα επιβάλλετε τις απόψεις σας στους χρήστες που έχουν συνδεθεί στον διακομιστή σας ή δεν μπορείτε να κάνετε "spam" και να μην ενοχλείτε τους πιθανούς πελάτες σας χωρίς εμφανίζει το κανάλι στη λίστα καρφιτσωμένων μηνυμάτων.

Λίγα λόγια ακόμα για το bot, όπου μπορείτε να ζητήσετε στατιστικά στοιχεία, αλλά «και ένα ντόνατ». Προφανώς, τα "στατιστικά" είναι διαθέσιμα όταν έχετε "ένα πλήθος freeloaders" πίσω σας Makhachkala.

Παρακολούθηση

Πόσους χρήστες μπορούμε να συνδεθούμε στον διακομιστή μας; Και τέλος πάντων, ποιος / τι υπάρχει; Τι? Και πόσα;

Εξετάζουμε τι υπάρχει σύμφωνα με την επίσημη τεκμηρίωση ... Ναι, εδώ, κάντε το ως εξής:

$ 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 (και εξακολουθώ να το πιστεύω), μετά βρήκα μια προσωρινή καλή λύση: γυάλισε το Docker Container με ένα αρχείο.

Αργότερα, ένα infa τράβηξε την προσοχή μου:

για τους κρατικούς χορούς του Roskomnadzor γύρω από τα «στατιστικά».

«Έχουμε αποκλείσει ορισμένους από τους δημόσιους διακομιστές μεσολάβησης στους διακομιστές μας χρησιμοποιώντας τις βάσεις δεδομένων του έργου firehol. Αυτό το έργο παρακολουθεί λίστες με δημόσιους διακομιστή μεσολάβησης και δημιουργεί βάσεις δεδομένων με αυτούς.

Από εκείνη τη στιγμή (δηλαδή, σχεδόν δύο ημέρες ήδη), δεν έχει αποκλειστεί ούτε μία διεύθυνση IP του Ρωσικού διακομιστή μας μεσολάβησης.

3. Σας λέμε πώς να δημιουργήσετε έναν διακομιστή μεσολάβησης που είναι σχεδόν άτρωτος στο Roskomnadzor και να μοιραστείτε ένα σενάριο για τον αποκλεισμό των δημόσιων διακομιστών μεσολάβησης.

- Ενημερώστε το κοντέινερ (ή δαίμονα) του διακομιστή μεσολάβησης MTProto στην πιο πρόσφατη έκδοση: Το RKN υπολογίζει τις παλιές εκδόσεις από τη θύρα στατιστικών στοιχείων, η οποία ήταν δεσμευμένη σε 0.0.0.0 και προσδιορίστηκε με μοναδικό τρόπο για ολόκληρο το Διαδίκτυο. Ακόμα καλύτερα, ανοίξτε τις απαραίτητες θύρες χρησιμοποιώντας iptables και κλείστε τις υπόλοιπες (θυμηθείτε ότι στην περίπτωση ενός docker container, θα πρέπει να χρησιμοποιήσετε τον κανόνα FORWARD).

— Η Roskomnadzor έμαθε πώς να απορρίπτει την επισκεψιμότητα εδώ και πολύ καιρό: βλέπουν κλήσεις μέσα σε διακομιστές μεσολάβησης HTTP και SOCKS5 και βλέπουν επίσης την παλιά έκδοση του συσκότισης διακομιστή μεσολάβησης MTProto.

Όταν οι πελάτες ορισμένων παρόχων που έχουν εγκαταστήσει τέτοιου είδους χωματερές έχουν πρόσβαση στο Telegram μέσω τέτοιων διακομιστών μεσολάβησης, το RKN βλέπει τέτοια αιτήματα και αποκλείει αμέσως αυτούς τους διακομιστές μεσολάβησης. Το ίδιο ισχύει και για τον διακομιστή μεσολάβησης MTProto με παλιά συσκότιση.

Λύση: διανομή μυστικού μόνο με dd στην αρχή σε πελάτες που συνδέονται με τον διακομιστή μεσολάβησης (δεν χρειάζεται να καθορίσετε πρόσθετα γράμματα dd στις ρυθμίσεις του ίδιου του διακομιστή μεσολάβησης mtproto). Αυτό θα ενεργοποιήσει μια έκδοση συσκότισης που τα dumppiles δεν μπορούν να ανιχνεύσουν.

Και κανένας διακομιστής μεσολάβησης HTTP ή SOCKS5.

- Προσαρμογή, με τη βοήθεια της οποίας κάθε κάτοχος διακομιστή μεσολάβησης τηλεγραφήματος, ο οποίος αποκλείεται τακτικά από το RKN, μπορεί να σταματήσει εντελώς (ή σχεδόν εντελώς) τον αποκλεισμό (και ταυτόχρονα να βεβαιωθεί ότι το RKN λέει ψέματα).

Ένα σενάριο που απαγορεύει τους δημόσιους διακομιστές και ένα μικρό εγχειρίδιο για αυτό.

Πηγή

Το proxy μας είναι φιλοδυτικό, δεν αντιμετώπισα προβλήματα / μπλοκαρίσματα κατά τη διάρκεια της άνοιξης και τις δροσερές μέρες του καλοκαιριού, δεν προσέλκυσε ούτε μια δημιουργική εργασία, επομένως δεν έχασα ρυθμό και δεν πρόσθεσα το πρόθεμα dd* στο το κλειδί.

Το εγχειρίδιο «λήψη στατιστικών/παρακολούθησης» σύμφωνα με τις επίσημες οδηγίες του MtprotoProxyTelegram δεν λειτουργεί/παλαιωμένο, θα πρέπει να επιδιορθώσετε την εικόνα του docker.

Το διορθώνουμε.

Το κοντέινερ λειτουργεί ακόμα:

$ 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:

$ docker ps

CONTAINER ID IMAGE ΕΝΤΟΛΗ ΔΗΜΙΟΥΡΓΗΣΕ ΚΑΤΑΣΤΑΣΗ ΟΝΟΜΑΤΑ ΘΥΡΩΝ
f423c209cfdc telegrammessenger/proxy:latest "/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-how-are-you-doing -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 κοντέινερ:

$ 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

Λαμβάνουμε για ποιο λόγο γυαλίστηκε το κοντέινερ docker: τον αριθμό των συνδέσεων και το φορτίο:

$ telega

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία
Το κοντέινερ Docker λειτουργεί, τα στατιστικά στοιχεία περιστρέφονται.

Πόροι που δαπανήθηκαν

Όσο cool κι αν είσαι ο Stuart Redman, ακόμα κι εσύ αφήνεις σημάδι στο εσώρουχό σου. Μια τρέχουσα εικόνα Docker αφήνει ένα μεγάλο αποτύπωμα.

Δεν έχει νόημα να περιγράψουμε τα πλεονεκτήματα και τα μειονεκτήματα των εικόνων docker, ένα docker container είναι μια μίνι εικονική μηχανή που καταναλώνει λιγότερους πόρους από μια «πραγματική» εικονική μηχανή, όπως το VirtualBox, αλλά καταναλώνει.

1) Ξεκινώντας με ή χωρίς στατιστικά στοιχεία docker-image, δύο πελάτες διασκεδάζουν ή δέκα - πόροι χρησιμοποιούνται ~ με τον ίδιο τρόπο: 75% της συνολικής απόδοσης της CPU t2.micro.

2) Εξετάζουμε την παρακολούθηση του διακομιστή VPC:

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

Από το γράφημα χρήσης πόρων στο VPC, βλέπουμε ότι το κοντέινερ docker καταναλώνει συνεχώς ~ 7,5% του συνολικού μέγ. Η απόδοση της CPU και στις 28 Μαΐου διακόπηκε από εμένα σκόπιμα/προσωρινά (Σημείωση - Το OpenVPN και το pppt εκτελούνται επίσης στον διακομιστή).

Γιατί το 10% σταθερή χρήση CPU είναι το όριο για αυτόν τον διακομιστή;

Επειδή υπάρχουν περιορισμοί από το Amazon EC2 και υπολογίζονται σε μονάδες:

Ανάπτυξη του MTProxy Telegram σας με στατιστικά στοιχεία

1 πίστωση CPU = 1 CPU που λειτουργεί στο 100% φορτίο για ένα λεπτό, και έχουμε 6 μονάδες (δηλαδή, στις αιχμές, η χρήση 100% της CPU είναι δυνατή μέσα σε 6 λεπτά και στη συνέχεια η ισχύς της CPU θα μειωθεί). Άλλοι συνδυασμοί: για παράδειγμα, 1 πίστωση CPU = 1 CPU που λειτουργεί με φορτίο 50% για δύο λεπτά (δηλαδή μπορούμε να χρησιμοποιήσουμε την CPU σε φορτίο 50% για 12 λεπτά) ή, για παράδειγμα, ένα σταθερό φορτίο CPU 10% κατά τη διάρκεια όλη την ώρα κλπ.

Ευρήματα

  • Είμαστε μέρος της «Ψηφιακής Αντίστασης». Παρείχαν στους «πατέρες και τις μητέρες» τους ένα αξιόπιστο κανάλι επικοινωνίας.
  • Εάν έχετε αναπτύξει το MtprotoProxyTelegram και το OpenVPN στον διακομιστή, αλλά όχι περισσότερο, δεν θα υπάρξουν καθυστερήσεις / ping / αποτυχίες, αλλά εάν πειραματίζεστε συνεχώς με το t2 / micro, τότε περιμένετε για φρένα επικοινωνίας.
  • Το εξωτερικό ping μου είναι ~100-250ms, δεν υπάρχουν καθυστερήσεις στη φωνητική επικοινωνία.
  • Οικονομικό κόστος για όλα αυτά (συμπεριλαμβανομένων των πόρων VPC) = 0₽.

Ανατύπωση του άρθρου σας.

UPD: Χάρη σε ορισμένους habrausers για χρήσιμα σχόλια, πράγματι, είναι δυνατό (υποστηρίζονται τα στατιστικά στοιχεία;), Υπάρχουν καλύτερα ανάλογα της επίσημης εικόνας αποβάθρας του Telegram proxy Mtproto.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο