October 23

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

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

Требования

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

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

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

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


ssh root@your_server_ip

Обновляем пакеты:
sudo apt update -y sudo apt upgrade -y

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

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

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

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

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

Компиляция


make

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


make clean

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

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

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

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

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

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

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


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

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

Настройка Firewall

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


sudo ufw allow <порт подключения клиентов>/tcp

например:

sudo ufw allow 443/tcp

Для firewalld:


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

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

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

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


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>

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

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

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

sudo systemctl status MTProxy.service

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

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


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

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

Или вручную:

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

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

Послесловие

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