Krelar

Krelar

Пикабушник
140 рейтинг 5 подписчиков 9 подписок 1 пост 0 в горячем
Награды:
5 лет на Пикабу
35

Установка 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.

Показать полностью
Отличная работа, все прочитано!