Telegram запускает MTProto Proxy

image

Наконец-то дождались, после пристального рассматривания и реверс инжениринга протокола MTPRoto Proxy, Telegram решил выпустить официальный вариант, с поддержкой монетизации, да еще и сразу в Docker образе.

Что такое MTProto Proxy


Это специфический прокси-сервер и протокол от создателей Telegram позволяющий обходить блокировки и монитизировать его использование.

Официальный прокси


В прошлой публикации была представлена масса не официальных реализаций прокси сервера, многие из них написаны пользователями Habr.

Теперь же у нас есть и официальный вариант:

github.com/TelegramMessenger/MTProxy

hub.docker.com/r/telegrammessenger/proxy

Что он может?


  1. Поддерживает до 16 разных ключей на 1 прокси
  2. До 60000 подключений на 1 ядро
  3. Имеет API для сбора статистики (доступно только локально)

Как настроить?


До безобразия просто:

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

После этого делаем:

docker logs mtproto-proxy

В качестве вывода вы получите:


####
#### Telegram Proxy
####

[+] No secret passed. Will generate 1 random ones.
[*] Final configuration:
[*]   Secret 1: afajkfhjksajkahkhkjkkk
[*]   tg:// link for secret 1 auto configuration: tg://proxy?server=127.0.0.1&port=443&secret= afajkfhjksajkahkhkjkkk
[*]   t.me link for secret 1: https://t.me/proxy?server=127.0.0.1&port=443&secret= afajkfhjksajkahkhkjkkk
[*]   Tag: no tag
[*]   External IP: 127.0.0.1
[*]   Make sure to fix the links in case you run the proxy on a different port.

[+] Starting proxy...


Собственно базовая настройка закончена, если вы хотите показывать канал при подключении к прокси, прокси нужно зарегистрировать:
С этим поможет официальный бот @MTProxybot

Ему следует отправить IP: Port + ключ, в ответ вы получите рекламный tag.

Этот tag нужно передать как параметр при запуске контейнера:

docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data -e TAG=ВАШ_TAG telegrammessenger/proxy:latest

Далее возвращаемся к боту, выбираем свой прокси и «Set promotion» — теперь осталось только отправить любой канал для отображения.

Вот собственно и все, теперь у вас есть официальный Telegram Proxy с Promotion каналом, который будет показыватся всем пользователям.

Дополнительные настройки


По умолчанию, при запуске будет автоматически сгенерирован ключ и сохранён в томе Docker, если вы хотите вы можете указать друой ключ:
-e SECRET=00baadf00d15abad1deaa51sbaadcafe

docker run -d -p443:443 -v proxy-config:/data -e SECRET=00baadf00d15abad1deaa51sbaadcafe telegrammessenger/proxy:latest

Или несколько:


docker run -d -p443:443 -v proxy-config:/data -e SECRET=935ddceb2f6bbbb78363b224099f75c8,2084c7e58d8213296a3206da70356c81 telegrammessenger/proxy:latest

А можете попросить сгенерировать вам несколько ключей:

docker run -d -p443:443 -v proxy-config:/data -e SECRET_COUNT=4 telegrammessenger/proxy:latest

По умолчанию запускает 2 worker’a, изменить настройку можно следующим образом:
WORKERS=16

docker run -d -p443:443 -v proxy-config:/data -e WORKERS=16 telegrammessenger/proxy:latest

Мониторинг доступен по адресу: localhost:2398/stats
Получить статистику можно следующим образом:

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

ready_targets: Количество Telegram серверов которые готовы обслужить запросы с прокси
active_targets: Количество Telegram серверов обслуживающие запросы с прокси
total_special_connections: Количество входящих соединений
total_max_special_connections: Лимит входящих соединений

© Habrahabr.ru