Рубрики
Интернет

Установка MTProto Proxy на Ubuntu: настройка для работы Telegram

Сделал для вас инструкцию по развёртыванию MTProto Proxy на Ubuntu с пояснением, что и зачем делается. Я опишу два практичных варианта: через официальный исходник Telegram (гибко, но сложнее) и через Docker (быстро и надёжно).

1. Что такое MTProto Proxy

MTProto Proxy — это специализированный прокси-сервер для Telegram, работающий на протоколе MTProto. В отличие от SOCKS5/VPN:

  • маскируется под обычный HTTPS-трафик
  • поддерживает “секреты” (obfuscation)
  • оптимизирован под Telegram (меньше overhead)

2. Подготовка сервера

Минимальные требования:

  • Ubuntu 20.04+ / 22.04+
  • 1 CPU, 512 MB RAM (лучше 1 GB)
  • Открытый порт (обычно 443 или любой другой)

Обновляем систему:

sudo apt update && sudo apt upgrade -y

Устанавливаем базовые зависимости:

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

3. Вариант A — установка из исходников (официальный способ)

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

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

3.2 Сборка

make

После сборки появится бинарник mtproto-proxy.

3.3 Получение конфигурационных файлов

Telegram использует два файла:

  • proxy-secret
  • proxy-multi.conf

Скачиваем:

wget https://core.telegram.org/getProxySecret -O proxy-secret
wget https://core.telegram.org/getProxyConfig -O proxy-multi.conf

3.4 Генерация секрета

Секрет — ключ для подключения клиентов:

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

Пример:

abcd1234ef567890abcd1234ef567890

3.5 Запуск прокси

./objs/bin/mtproto-proxy \
  -u nobody \
  -p 8888 \
  -H 443 \
  -S <YOUR_SECRET> \
  --aes-pwd proxy-secret proxy-multi.conf \
  -M 1

Пояснение параметров:

  • -u nobody — запуск без root
  • -p 8888 — внутренний порт (админ)
  • -H 443 — внешний порт (клиенты)
  • -S — секрет
  • --aes-pwd — ключи Telegram
  • -M 1 — режим multi-core

3.6 Проверка

Если всё корректно, в логах появится:

Started as [PID]

4. Создание systemd сервиса (рекомендуется)

Создаём файл:

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

Содержимое:

[Unit]
Description=MTProto Proxy
After=network.target

[Service]
WorkingDirectory=/root/MTProxy
ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S <SECRET> --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=always

[Install]
WantedBy=multi-user.target

Запуск:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable mtproxy
sudo systemctl start mtproxy

5. Вариант B — через Docker (проще и чаще используется)

5.1 Установка Docker

sudo apt install -y docker.io

5.2 Запуск контейнера

docker run -d -p 443:443 \
  -e SECRET=<YOUR_SECRET> \
  -e TAG=<OPTIONAL_TAG> \
  --name mtproto-proxy \
  --restart always \
  telegrammessenger/proxy

Преимущества:

  • не нужно компилировать
  • автообновления
  • проще перенос

Формирование ссылки подключения

Формат:

tg://proxy?server=IP&port=443&secret=SECRET

Пример:

tg://proxy?server=1.2.3.4&port=443&secret=abcd1234...

Можно также сделать HTTPS-ссылку:

https://t.me/proxy?server=IP&port=443&secret=SECRET

Открытие порта (если включён firewall)

Если используешь UFW:

sudo ufw allow 443/tcp
sudo ufw reload

Мониторинг и логирование

Просмотр логов:

journalctl -u mtproxy -f

Docker:

docker logs -f mtproto-proxy

Оптимизация и продакшн-замечания

Производительность

  • включить -M (multi-core)
  • использовать VPS с хорошим каналом

Маскировка (обфускация)

Можно добавить fake TLS (advanced setup), но это уже требует домена и nginx.

Безопасность

  • ограничить доступ к admin-порту
  • не использовать простой секрет
  • менять секрет при утечке

Частые проблемы

Не подключается
  • порт закрыт
  • неправильный SECRET
  • провайдер блокирует IP
Высокая задержка
  • слабый VPS
  • перегруженный канал

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *