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

Ubuntu 16.04 не подойдёт, только 18.04.
OpenSUSE Leap 15.0, CentOS 7 и openSUSE Tumbleweed подходят.

apt install -y git curl build-essential zlib1g-dev libssl-dev git
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"
git clone https://github.com/TelegramMessenger/MTProxy.git
cd ./MTProxy
make

Бинарь будет в папке objs/bin

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

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

Создаём файл /opt/mtproxy/start.sh

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

Где цифра 7 означает кол-во воркеров, чем больше тем больше клиентов может переварить одновременно и тем шустрее будет работать, но при этом больше нагружать систему, флаг -M можно не использовать вообще, тогда будет всего один воркер.

Создаём файл /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=ВАШСЕКРЕТ

Далее от рута

EDITOR=nano crontab -e
0 * * * * systemctl restart mtproxy

Это нужно чтобы наш прокси периодически получал список новых адресов серверов тележеньки

Для тех кому лень обновлять (когда/если будут обновления) нужно создать файл /opt/mtproxy/upd.sh

rm -rf /tmp/MTProxy
cd /tmp/
git clone https://github.com/TelegramMessenger/MTProxy.git
cd /tmp/MTProxy
make
systemctl stop mtproxy.service
rm /opt/mtproxy/mtproto-proxy
cp /tmp/MTProxy/objs/bin/mtproto-proxy /opt/mtproxy
rm -rf /tmp/MTProxy systemctl daemon-reload systemctl start mtproxy.service

и меняем в кроне строчку на

0 * * * * bash /opt/mtproxy/upd.sh

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

wget http://localhost:8888/stats
curl http://localhost:8888/stats
links http://localhost:8888/stats

(отвечает только локалхосту)

Или запросив у бота @MTProxybot (предварительно надо зарегистрировать свою проксю там). Бот даст в ответ строчку которую надо добавить через флаг -P к строке запуска.