Установка MTProto Proxy на Ubuntu VPS Link to heading

MTProto — это официальный протокол для Telegram, который обеспечивает безопасное подключение к мессенджеру. В этом руководстве рассмотрен полный процесс установки и настройки MTProxy на вашем сервере.

Требования Link to heading

Для запуска собственного прокси-сервера понадобится:

  • VPS ну например с Ubuntu
  • Root-доступ
  • Открытый порт наружу

Подключение и обновление системы Link to heading

Подключаемся к серверу по SSH:

ssh root@your_server_ip

Обновляем пакеты:

sudo apt update -y
sudo apt upgrade -y

Установка зависимостей Link to heading

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

Клонирование репозитория Link to heading

Рекомендуется использовать активный форк MTProxy:

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

Компиляция Link to heading

make

Если возникла ошибка, очистите сборку:

make clean

и повторите команду make.

Копирование бинарного файла Link to heading

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

Загрузка конфигураций Link to heading

Скачиваем актуальные файлы конфигурации:

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

Для автоматического обновления добавьте в cron:

sudo crontab -e

Строка для еженедельного обновления:

0 3 * * 1 curl -s https://core.telegram.org/getProxyConfig -o /opt/MTProxy/proxy-multi.conf && systemctl restart MTProxy.service

Генерация секретного ключа Link to heading

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

Запишите ключ куда нить — он понадобится для конфигурации службы и ваших клиентов.

Настройка Firewall Link to heading

Открываем порт для клиентов:

sudo ufw allow 8443/tcp

Для firewalld:

sudo firewall-cmd --zone=public --permanent --add-port=8443/tcp
sudo firewall-cmd --reload

P.S На этот порт мы и будем подключаться с Telegram клиента

Настройка службы systemd Link to heading

Создаем службу:

sudo nano /etc/systemd/system/MTProxy.service

Пример конфигурации:

[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
mtproxy
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -u mtproxy -p 8888 -H <MTPROXY_PORT> -S <YOUR_SECRET> --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target

Параметры:

  • -u mtproxy — пользователь для запуска
  • -p 8888 — локальный порт статистики
  • -H — порт подключения клиентов
  • -S — секретный ключ
  • -M 1 — число воркеров

Если сервер за NAT, добавьте:

--nat-info <внутренний_IP>:<внешний_IP>

Запуск и автозагрузка Link to heading

sudo systemctl daemon-reload
sudo systemctl start MTProxy.service
sudo systemctl enable MTProxy.service

Проверяем статус службы:

sudo systemctl status MTProxy.service

Подключение клиентов Telegram Link to heading

Добавьте прокси в Telegram по ссылке со своими параметрами:

tg://proxy?server=<IP_сервера>&port=<ПОРТ>&secret=<СЕКРЕТ>

P.S Для защиты от анализа трафика добавьте префикс dd к ключу на клиенте (random padding).

Или вручную:

Настройки → Данные и память → Настройки прокси → Добавить прокси → MTProto

  • Сервер: IP вашего VPS
  • Порт: выбранный порт
  • Секрет: ваш ключ

Послесловие Link to heading

Я оставил кучу всего за бортом: настройка промоканала в прокси, как сделать красивый домен и т.д. Но смысл гайда в простоте и пошаговости.