Установка MTProto Proxy на Ubuntu 16.04
Докер это хорошо. Более того, это прекрасно. Но иногда хочется сделать по старинке, собрать все как сервис, без всяких этих новомодных тенденций. В связи с тем, что на текущий момент официальная документация по MTProto Proxy крайне куцая, хочу поделиться инструкцией развертывания данного сервиса под Ubuntu 16.04 LTS.
Для начала коротко о MTProto Proxy - это реализация прокси-сервиса от разработчиков Телеграма. Если в обычном случае вы в явном виде передаете логин и пароль от учетки прокси, то в данной реализации вы отдаете только ключ подключения. Более подробно можно найти на всем известных ИТ ресурсах рунета.
Переходим к делу. Нам понадобится любой VPS (или выделенный сервер и т.п.), желательно не от российских поставщиков услуг, с установленной Ubuntu 16.04.
Логинимся по ssh, получаем терминал и приступаем.
sudo -i
apt update
apt upgrade -y
apt autoremove
apt install libtool perl-core zlib-devel -y
apt install libz-dev -y
cd /usr/src
git clone https://github.com/TelegramMessenger/MTProxy
;Далее обновим библиотеку openssl иначе MTProxy не соберется
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar -zxf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
./config
make
make install
mv /usr/bin/openssl /root/
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
nano /etc/ld.so.conf
;В открывшемся файле необходимо добавить следующую строчку в конец файла -
include /usr/local/openssl/lib;После чего нажимаем комбинацию ctrl+x, y, enter
ldconfig
;Проверяем версию Openssl, должна быть вида 1.1.0
openssl version
wget http://mirrors.kernel.org/ubuntu/pool/main/o/openssl/libssl1...
dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
;Теперь идем собирать сам MTProxy
cd /usr/src/MTProxy/
make
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
;После генерации ключа в строке выше обязательно сохраните его себе в отдельный файлик
mv /usr/src/MTProxy /opt/
ln -s /opt/MTProxy/objs/bin/mtproto-proxy /usr/bin/mtproto-proxy
cd /etc/systemd/system
;Создаем файл сервиса systemd
cat&nano; /etc/systemd/system/mtproto-proxy.service
;Копируем туда следующие строки
[Unit]
Description=MTProxy
After=network.target
[Service]
WorkingDirectory=/opt/MTProxy
ExecStart=/usr/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1
[Install]
WantedBy=multi-user.target
;Где nobody ваш пользователь на сервере
;8888 порт мониторинга за сервисом (можно изменить на любой удобный)
;443 порт на котором будет работать MTProxy (можно изменить на любой удобный)
;<secret> строка, которую мы генерировали ранее
;После чего нажимаем комбинацию ctrl+x, y, сохраняем как mtproto-proxy.service, enter
systemctl daemon-reload
systemctl enable mtproto-proxy
systemctl start mtproto-proxy
;Ссылка на ваш прокси будет вида tg://proxy?server=SERVER_NAME&port=PORT&secret=SECRET
;где SERVER_NAME доменное имя или IP вашего сервера
;PORT заданный вами порт в mtproto-proxy.service
;SECRET сгенерированный ранее ключ
Подготовка материала осуществлена с помощью материалов с официального репозитория MTProto Proxy и всемогущих поисковиков.
PS На Ubuntu 18.04 должно все быть значительно проще, там не требуется доустановка обновленных версий openssl и libssl.