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

Как создать свой MTProto Proxy для Telegram: прокси для ТГ за 15 минут

MTProto — это собственный протокол Telegram для шифрования трафика. Прокси на его основе позволяет обходить блокировки и при этом остаётся нативным для клиента — никаких сторонних VPN-клиентов не нужно.

Что понадобится

  • VPS/выделенный сервер за пределами страны блокировки (подойдёт любой облачный провайдер: Hetzner, DigitalOcean, Vultr)
  • ОС: Ubuntu 20.04/22.04 или Debian 11/12
  • Открытый порт (любой, например 443 — он реже блокируется)
  • ~15 минут времени

Выбор реализации

Существует несколько реализаций MTProto прокси:

РеализацияЯзыкОсобенности
MTProxy (официальный от Telegram)CЭталонная реализация, немного устарела
mtgGoЛёгкий, современный, рекомендуемый
MTProxyBotPythonУдобен для быстрого старта

Рекомендую mtg v2 — он активно поддерживается, потребляет мало памяти и имеет встроенную защиту от детектирования (Fake TLS).

Установка mtg v2

1. Подключаемся к серверу и обновляем систему

ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y

2. Скачиваем бинарник mtg

# Проверьте последнюю версию на github.com/9seconds/mtg
wget https://github.com/9seconds/mtg/releases/latest/download/mtg-linux-amd64 -O /usr/local/bin/mtg
chmod +x /usr/local/bin/mtg

3. Генерируем секрет

Секрет — это случайный ключ, который идентифицирует ваш прокси. В mtg v2 используется формат FakeTLS, где секрет включает имя домена для маскировки трафика под обычный HTTPS.

mtg generate-secret --hex tls YOUR_DOMAIN.com

Например:

mtg generate-secret --hex tls google.com

Вы получите строку вида:

ee367a7170706c652e636f6d...

⚠️ Сохраните этот секрет — он понадобится для настройки клиентов.

Флаг tls означает, что трафик будет замаскирован под TLS-соединение с указанным доменом — это делает прокси практически неотличимым от обычного HTTPS-трафика на уровне DPI.

4. Создаём конфигурационный файл

mkdir -p /etc/mtg
cat > /etc/mtg/mtg.toml << EOF
secret = "ВАШ_СГЕНЕРИРОВАННЫЙ_СЕКРЕТ"
bind-to = "0.0.0.0:443"

[network]

timeout = «10s»

[stats]

statsd-enabled = false EOF

Если порт 443 занят (например, nginx), используйте любой другой: 8443, 2083, 8080.

5. Настраиваем systemd-сервис

cat > /etc/systemd/system/mtg.service << EOF
[Unit]
Description=MTProto Proxy
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mtg run /etc/mtg/mtg.toml
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable mtg
systemctl start mtg

6. Проверяем, что прокси запустился

systemctl status mtg
# или
journalctl -u mtg -f

Настройка файрвола

# Если используете ufw
ufw allow 443/tcp
ufw reload

# Если используете iptables напрямую
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Получение ссылки для подключения

mtg умеет генерировать готовую ссылку для Telegram:

mtg access /etc/mtg/mtg.toml

Вы получите что-то вроде:

tg://proxy?server=YOUR_IP&port=443&secret=ВАШ_СЕКРЕТ
https://t.me/proxy?server=YOUR_IP&port=443&secret=ВАШ_СЕКРЕТ

Просто откройте эту ссылку на устройстве — Telegram подхватит настройки автоматически.

Альтернатива: официальный MTProxy от Telegram (на C)

Если хотите использовать официальную реализацию:

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

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

# Скачать список серверов Telegram
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

# Запуск
./objs/bin/mtproto-proxy -u nobody -p 8888 -H 443 \
  -S ВАШ_СЕКРЕТ \
  --aes-pwd proxy-secret proxy-multi.conf \
  -M 1

Недостаток официальной реализации: нет встроенного FakeTLS, конфиг серверов нужно периодически обновлять вручную.

Поддержание актуальности конфига (только для официального MTProxy)

Добавьте в cron обновление списка серверов:

crontab -e
# Добавить строку:
0 * * * * curl -s https://core.telegram.org/getProxyConfig -o /opt/MTProxy/proxy-multi.conf && systemctl restart mtproxy

Советы по безопасности и стабильности

  • Не публикуйте прокси публично без необходимости — при высокой нагрузке потребуется более мощный сервер
  • Используйте порт 443 — он открыт почти везде и реже попадает под блокировку
  • FakeTLS домен выбирайте популярный (google.com, cloudflare.com) — трафик будет выглядеть как обращение к этому ресурсу
  • Настройте мониторинг: mtg поддерживает экспорт метрик в Prometheus
  • Регулярно обновляйте mtg — проект активно развивается

После всех шагов у вас будет работающий MTProto прокси. Поделитесь ссылкой tg://proxy?... с теми, кому нужен доступ — подключение займёт буквально одно нажатие в Telegram.

Один ответ к “Как создать свой MTProto Proxy для Telegram: прокси для ТГ за 15 минут”

поздравьте меня
я смог сделать свой прокси для телеграм mtproto
ушло около часа! в след раз думаю за 20 мин справлюсь)

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

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