Прокси
August 15

Ставим MTProto-прокси на VPS

В наше тяжелое время, когда не понятно, будет Телеграм работать в той или иной стране или нет (и как будет он работать), каждый уважающий себя человек должен иметь свой личный MTProto прокси.

И сейчас расскажу, как его поставить на VPS.

Шаг №1.

Заходим на терминал вашей VPS так, как вам удобно. Сам пользуюсь прекрасным приложением BitVise, но вы можете использовать любое другое.

Шаг №2.

Последовательно вводим 2 такие команды (напомню, что комбинация клавиш "CTRL+V" в терминальном окне у BitVise не работает, потому используем комбинацию "Shift+Insert"):

sudo apt-get update -y
sudo apt install git curl build-essential libssl-dev zlib1g-dev -y

Если интересно, то первая команда что-то там обновляет, а вторая устанавливает вам на VPS свежую версию Open SSL.

Шаг №3.

Там творится какое-то колдунство. После того, как всё закончилось без ошибок, копируем к себе на VPS исходники MTProxy с помощью вот этой команды:

git clone https://github.com/GetPageSpeed/MTProxy
cd MTProxy

После копирования переходим в каталог, куда всё скопировалось.

Шаг №4.

Вот сейчас будет сложно. Очень. Если у вас на VPS стоит операционная система Ubuntu с версией 22.04 (как в своё время рекомендовал), то надо в этом каталоге найти файл с именем "Makefile" и добавить там параметр "-fcommon" для COMMON_CFLAGS and COMMON_LDFLAGS. То есть, дописать его вот в эту строчку:

Это можно сделать в любом удобном текстовом редакторе. Сам просто открыл SFTP-окно:

Там справа нашёл каталог "MTProxy":

Нашёл там файл с именем "Makefile":

2 раза кликнул на него и открыл его просто Блокнотом (можно использовать любой другой текстовый редактор).

Там добавьте "-fcommon" в строчку, которая начинается с "COMMON_LDFLAGS":

И не забудьте после этого сохранить изменения в файле!

Шаг №5.

Компилируем MTProxy. Для этого в терминале вводим и исполняем команду "make"'.

Шаг №6.

Если всё в предыдущем шаге закончилось без ошибок, устанавливаем это ПО.

Для этого в терминале последовательно вводим и исполняем вот эти команды:

sudo mkdir /opt/MTProxy
sudo cp objs/bin/mtproto-proxy /opt/MTProxy/
cd /opt/MTProxy

Шаг №7.

Теперь надо загрузить конфигурационные файлы. Для этого вводим и исполняем вот эти команды:

sudo curl -s https://core.telegram.org/getProxySecret -o proxy-secret
sudo curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

Шаг №8.

Теперь вам надо будет сгенерировать свой секретный ключ. Для этого используем вот эту команду:

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

И вот что видим:

В результате полученный ключ надо будет скопировать. Он нам ещё понадобится!

Шаг №9.

Создаём пользователя, который будет запускать этот прокси. И даём ему нужные права. Для этого используем вот эти команды:

sudo useradd -m -s /bin/false mtproxy
sudo chown -R mtproxy:mtproxy /opt/MTProxy

Вместо "mtproxy" можно использовать любое другое имя, конечно.

Шаг №10.

Создаём конфигурационный файл и добавляем в него нужные параметры.

Для этого в каталог "/etc/systemd/system" добавляем файл с именем "MTProxy.service".
В этот файл надо добавить вот это:

[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -u mtproxy -p 8888 -H <MTPROXY_PORT> -S <Секрет из шага 8> --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target

Где:

- <MTPROXY_PORT> - порт, на котором этот прокси будет работать. Лучше не использовать 443 порт, а взять какой-то другой.

- <Секрет из шага 8> - тот самый код, который вы получили и (надеюсь!) сохранили в шаге 8.

Шаг 12 и последний.

Добавляем MTProxy в автозагрузку сервера. Для этого используем следующие 3 команды:

sudo systemctl daemon-reload
sudo systemctl restart MTProxy.service
sudo systemctl status MTProxy.service

Вот вроде и всё! Для того, чтобы ваш или чей-то другой телеграм быстро подключился к вашему прокси, можно использовать ссылку следующего вида:

tg://proxy?server=<IP адрес вашего VPS>&port=<MTPROXY_PORT>&secret=<Секрет из шага 8>

Удачи!
Оригинал статьи тут