====== 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}}