====== MTProxy - прокси для Telegram ======
Краткое описание протокола MTProto в [[https://ru.wikipedia.org/wiki/MTProto|wikipedia]]
Подробная инструкция по сборке из исходников доступна на [[https://github.com/TelegramMessenger/MTProxy|github]]
===== Debian/Ubuntu =====
Debian 8/9: не тестировал\\
Ubuntu 18.04: работает
Пакеты неободимые для сборки из исходных кодов
# apt install git curl build-essential libssl-dev zlib1g-dev
# yum install openssl-devel zlib-devel
# yum groupinstall "Development Tools"
Загружаем через git, компилируем, копируем бинарник в /opt
# cd /tmp
# git clone https://github.com/TelegramMessenger/MTProxy
# cd MTProxy
# make
# mkdir /opt/telegram
# cp objs/bin/mtproto-proxy /opt/telegram/
# cd /opt/telegram
# curl -s https://core.telegram.org/getProxySecret -o proxy-secret
# curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
Генерируем секретный ключ
head -c 16 /dev/urandom | xxd -ps
Пробный запуск
./mtproto-proxy -u nobody -p 8888 -H 8443 -S [secret_key] --aes-pwd proxy-secret proxy-multi.conf -M 1
Если ок, то делаем unit файл ''/etc/systemd/system/telegram.service''
[Unit]
Description=Telegram Proxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/telegram
ExecStart=/opt/telegram/mtproto-proxy -u nobody -p 8888 -H 8443 -S [secret_key] --aes-pwd proxy-secret proxy-multi.conf -M 1 -P [proxy_tag]
Restart=on-failure
[Install]
WantedBy=multi-user.target
Proxy tag нужен для рекламы своего канала.
Осталось добавить в автозагрузку и запустить
# systemctl daemon-reload
# systemctl enable telegram
# systemctl start telegram
===== CentOS =====
CentOS 7: работает
Спасибо Danila Vershinin за [[https://www.getpagespeed.com/server-setup/mtproxy|готовые RPM]] для CentOS.
--> Копипаст#
yum -y install https://extras.getpagespeed.com/release-el7-latest.rpm
yum -y install mtproxy
systemctl enable mtproxy
systemctl start mtproxy
Ключ для подключения **MTPROXY_SECRET** находится в ''/etc/mtproxy/secret'' on the server. This will give you something like this:
Порт для подключения **MTPROXY_CLIENT_PORT** находится в ''/etc/mtproxy/mtproxy.params''
<--
Во многих статьях почему-то упоминаются проблемы с openssl при сборке из исходного кода.
С данной версией openssl проблем не обнаружил:
# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
Ошибка была только на этапе генерации секретного ключа
# head -c 16 /dev/urandom | xxd -ps
-bash: xxd: command not found
Разбираться некогда или даже скорее незачем, поэтому делаем, как советуют:
* https://stackoverflow.com/questions/36179338/official-fedora-package-for-xxd-command
* https://github.com/Russell91/sshrc/issues/14#issuecomment-56338146
# yum install vim-common
===== BotFather =====
Если вы еще не подписались на канал зашерили френдам свой прокси для телеги, то самое время это сделать.
Ссылки выглядят так:
* [[tg://proxy?server=1.2.3.4&port=8443&secret=[secret_key]]]
* [[https://t.me/proxy?server=1.2.3.4&port=8443&secret=[secret_key]|t.me/proxy?server=1.2.3.4&port=8443&secret=[secret_key]]]]
Хотя проще прислать QR-код из приложения.
После недолгой и душевной беседы с @MTProxybot получаем proxy tag и добавляем его через ключ **-P** в скрипт запуска (systemd юнит или еще куда-то).
FIXME добавить скриншотов будет очень кстати
{{tag>telegram proxy телеграм прокси mtproto mtproxy}}