MTProto proxy без мерзкого Docker’а

Работает на любом deb-дистрибутиве. Проверено на Ubuntu 16.04, 18.04. OpenSUSE Leap 15.0 и openSUSE Tumbleweed подходят.
Прокси-сервер является посредником между клиентом и сервером. Для обхода ограничений прокси-сервер должен быть установлен там, где нет ограничений доступа к требуемой информации, при этом не должно быть таковых ограничений и между клиентом и прокси-сервером.

Обновлённая поддержка прокси-серверов в клиентах Telegram

  • Новый MTProto-прокси. Работает с родным для Telegram протоколом MTProto
  • Открытый исходный код сервера на GitHub
  • Docker-образ на DockerHub
  • В мобильных клиентах появилась возможность добавлять несколько прокси-серверов каждого типа. Пользователь может выбрать наиболее подходящий
Подготовка
sudo apt install -y zlib1g-dev libssl-dev git


Клонируем исходники и собираем
git clone https://github.com/TelegramMessenger/MTProxy.git
cd ./MTProxy
make


Копируем бинарь
mkdir -p /opt/mtproxy/ &&  mkdir objs/bin/mtproto-proxy /opt/mtproxy/

Uенерируем секурный пароль

head -c 16 /dev/urandom | xxd -ps


создаем стартовый файлик /opt/mtproxy/start.sh:

rm /opt/mtproxy/proxy-secret
curl -s https://core.telegram.org/getProxySecret -o /opt/mtproxy/proxy-secret
rm /opt/mtproxy/proxy-multi.conf
curl -s https://core.telegram.org/getProxyConfig -o /opt/mtproxy/proxy-multi.conf
/opt/mtproxy/mtproto-proxy --ipv6 -u nobody -p 8888 -H 443 -S ВАШСЕКРЕТИЗПРЕДЫДУЩЕГОШАГА  --aes-pwd /opt/mtproxy/proxy-secret /opt/mtproxy/proxy-multi.conf


Создаем файл сервиса /etc/systemd/system/mtproxy.service:

[Unit]
Description=MTProxy
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/bin/bash /opt/mtproxy/start.sh
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target


Запускаем демона и ставим на автозагрузку:

sudo systemctl daemon-reload
sudo systemctl start mtproxy
sudo systemctl enable mtproxy


Примерно так будет выглядеть ссылки для автонастройки

tg://proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ
https://t.me/proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ


Устанавливаем ежесуточный рестарт сервиса в крон у рута:
Это нужно чтобы наш прокси периодически получал список новых адресов серверов.
systemctl restart mtproxy


Получить статистику прокси можно так:

wget http://localhost:8888/stats


Или запросив у бота MTProxybot (предварительно надо зарегистрировать свою проксю там), но что-то мне этот бот пока говорит только «подождите».