рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рдирдпрд╛ MTProto- рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░

рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╕реНрде рд╣реИред рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдВрдЪ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдЫрд╡рд┐

рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдкреНрд░реЙрдХреНрд╕реА рд╕рдорд░реНрдерди


  • рдирдИ MTProto рдкреНрд░реЙрдХреНрд╕реАред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореВрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ MTProto рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • GitHub рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рд░реНрд╡рд░
  • DockerHub рдкрд░ рдбреЙрдХрд░ рдЫрд╡рд┐
  • рдореЛрдмрд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдИ рдкреНрд░реЙрдХреНрд╕реА рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЪреБрди рд╕рдХрддрд╛ рд╣реИ

рдЫрд╡рд┐

MTProto рдкреНрд░реЙрдХреНрд╕реА


  • MTProto- рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд▓ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЦреБрд▓реА рд╕реВрдЪрдирд╛ рд╡рд┐рдирд┐рдордп рдЪрд░рдг рдирд╣реАрдВ рд╣реИ
  • рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ MTProto- рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдФрд░ рдЙрд╕рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рдкрд╛рд╕ MTProxy рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдореЗрдЯрд╛-рд╕реВрдЪрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рди) рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред
  • рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП, MTProto- рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд╕рдВрд░рдЪрд┐рдд рджреНрд╡рд┐рдЖрдзрд╛рд░реА рджреНрд╡рд┐рджрд┐рд╢ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдорд╛рдиреНрдпрддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдЬрд▓реНрджреА рд╢реБрд░реВ рдХрд░реЛ


рдЕрдкрдирд╛ MTProto рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдбреЙрдХрд░ рд╕реНрдерд╛рдкрд┐рдд рдорд╢реАрди рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреЛрд░реНрдЯ 443 (nginx, apache) рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ рдпрд╛рдж рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

$ 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/hi412759/


All Articles