Nouveau serveur proxy MTProto de Telegram

Un serveur proxy est un intermédiaire entre un client et un serveur. Pour contourner les restrictions, un serveur proxy doit être installé là où il n'y a pas de restrictions d'accès aux informations requises, alors qu'il ne doit pas y avoir de telles restrictions entre le client et le serveur proxy.

image

Support proxy mis à jour pour les clients Telegram


  • Nouveau proxy MTProto. Fonctionne avec le protocole natif Telegram MTProto
  • Serveur open source GitHub
  • Image Docker sur DockerHub
  • Dans les clients mobiles, il est devenu possible d'ajouter plusieurs proxys de chaque type. L'utilisateur peut choisir le plus approprié

image

Proxy MTProto


  • MTProto-proxy fonctionne uniquement avec Telegram
  • Le client et le serveur n'ont pas de phase d'échange d'informations ouverte
  • Dans l'implémentation du serveur proxy MTProto de Telegram, le serveur proxy et son propriétaire n'ont pas d'accès direct aux méta-informations du protocole MTProxy (identifiants par exemple).
  • Pour tous les types de filtres et d'analyseurs, l'échange de données avec le serveur proxy MTProto ressemble à un flux de données bidirectionnel binaire non structuré entre le client et le serveur. Cela rend la reconnaissance de protocole difficile à limiter.

Démarrage rapide


Pour démarrer votre propre serveur proxy MTProto, seule une machine avec Docker installé et un accès réseau est requise. Il ne devrait rien y avoir sur le port 443 (nginx, apache). Au premier démarrage du serveur proxy, une clé secrète sera créée, qui sera mémorisée. Exécution avec une seule commande:

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data telegrammessenger/proxy

:

$ docker logs mtproto-proxy

[+] Using the explicitly passed secret: 'b7e70329dcf3721c4239b86ad32a90b8'.
[+] Saving it to /data/secret.
[*] Final configuration:
[*]   Secret 1: b7e70329dcf3721c4239b86ad32a90b8
[*]   tg:// link for secret 1 auto configuration: : tg://proxy?server=81.177.103.94&port=443&secret=b7e70329dcf3721c4239b86ad32a90b8
[*]   t.me link for secret 1: tg://proxy?server=81.177.103.94&port=443&secret=b7e70329dcf3721c4239b86ad32a90b8
[*]   Tag: no tag
[*]   External IP: 81.177.103.94
[*]   Make sure to fix the links in case you run the proxy on a different port.

, - «» , IP .


SECRET:

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data -e SECRET=b7e70329dcf3721c4239b86ad32a90b8 \
    telegrammessenger/proxy

- ( ) ( 16). , : boss, managers, users. . ( ) , . ? . . .

:

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data -e SECRET=b7e70329dcf3721c4239b86ad32a90b8,afccd434fb32248f29f033b189bd8541,878397a50627deb349d4c296bd9dc3c2 \
     telegrammessenger/proxy

SECRET_COUNT ( 16):

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data -e SECRET_COUNT=5 telegrammessenger/proxy

, , Linux:

#    busybox:
$ tr -dc 'a-f0-9' < /dev/urandom | dd bs=1 count=32 2>/dev/null
$ hexdump -n 16 -e '4/4 "%08x" 1 "\n"' /dev/random    #   hexdump
$ openssl rand -hex 16    #  openssl


- . 60000 . - ( , ). WORKERS. , :

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data -e WORKERS=16 telegrammessenger/proxy


--net=host. IPv6 , , proxy-server.

, , :

$ docker run -d -p443:443 --name=mtproto-proxy --restart=always \
    -v proxy-config:/data telegrammessenger/proxy

- , :

$ docker run -d -p8443:443 --name=mtproto-proxy --restart=always \
    -v proxy-config:/data telegrammessenger/proxy:latest

, - «» , .


MTProto- . localhost: http://localhost:2398/stats.

- docker --net=host : curl http://localhost:2398/stats, , , nginx - . - docker :

$ docker exec mtproto-proxy curl http://localhost:2398/stats

:
  • ready_targets — Telegram, c -
  • active_targets — Telegram ( ready_targets)
  • total_special_connections
  • total_max_special_connections


Telegram - Promoted-. Promoted- — , -. -.

Promoted- @MTProxybot TAG :

$ docker run -d --net=host --name=mtproto-proxy --restart=always \
    -v proxy-config:/data -e TAG=85174e9e0ffa43c0d3a7167e52175268 \
    telegrammessenger/proxy:latest

, .

Promoted- , -. , .

image

-


MTProto- , - :

$ docker pull telegrammessenger/proxy    #  
$ docker stop mtproto-proxy    #  
$ docker rm mtproto-proxy     #  
$ docker run ....  #        
$ docker logs -f --tail=30 mtproto-proxy    #   

Docker Compose


docker-compose.yml:

version: '3.0'

services:
        mtproxy:
                image: telegrammessenger/proxy:latest
                hostname: mtproxy
                container_name: mtproxy.local
                volumes:
                        - proxy-config:/data
                network_mode: "host"
                logging:
                        driver: syslog
                        options:
                                tag: mtproxy
                restart: always
volumes:
        proxy-config:
                external: true

Promoted- TAG.

- c Docker Compose


$ docker-compose pull mtproxy     #  
$ docker-compose up -d   #    
$ docker-compose logs -f --tail=30 mtproxy    #   

Source: https://habr.com/ru/post/fr412759/


All Articles