89просмотров
16 марта 2026 г.
Score: 98
Привет! 👋 Просыпаешься утром выходного дня
Открываешь Telegram И видишь Обновление… 🔵 Чаты не грузятся
🔵 Боты молчат
🔵 Всё молчит Добро пожаловать в очередную волну блокировок А если у тебя половина рабочих уведомлений приходит в Telegram 〰️ становится немного грустно Со мной именно так и произошло на выходных в Муроме. Telegram просто перестал обновляться
Зато через КВН всё продолжало работать Но держать КВН включённым постоянно неудобно. Некоторые приложения его не любят Поэтому я решил поднять собственный MTProto-proxy, а не использовать публичный Для этого понадобится любой сервер за пределами РФ
Подойдёт VPS или даже домашний сервер у друзей или родственников Заграница нам поможет! Запад с нами! 🤣 У меня под рукой оказалась Ubuntu 24.04, на ней и проводил опыт Telegram умеет работать с двумя типами прокси 🔵 SOCKS5 🔵 MTProto MTProto — это родной протокол Telegram, поэтому его и использовал Существует несколько реализаций MTProto-proxy 🔵 Python (официальная)
🔵 Docker-образ
🔵 Go-реализация mtg Python-версия работает нормально, но у Python есть GIL, который ограничивает параллельность
Для прокси-сервера это не идеально Go-версия компилируется в нативный код, не имеет GIL и спокойно обрабатывает тысячи соединений. Поэтому я выбрал mtg ✅ Установка MTProto-proxy (mtg) 🔵 Обновляем систему и ставим Go apt update && apt upgrade -y
apt install golang -y 🔵 Проверяем
go version # Версию Go лучше использовать выше 1.19 🔵 Устанавливаем mtg go install github.com/9seconds/mtg/v2@latest # Добавляем в PATH
echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc
source ~/.bashrc # Проверяем
mtg --version 🔵 Генерируем секрет прокси mtg generate-secret google.com ❗️ Вместо google.com нужно указать любой разрешённый домен РКН из белого списка 🔵 Получим строку вида abcdef1234567890abcdef1234567890 # Её нужно сохранить ❓ Зачем в mtg generate-secret google.com указывать домен Многие копируют эту команду, но не понимают зачем нужен домен
mtg generate-secret google.com Этот домен используется для маскировки TLS-трафика MTProto-proxy умеет работать в режиме FakeTLS
Это означает, что соединение для DPI выглядит как обычный HTTPS-трафик к разрешённому сайту То есть для системы фильтрации пакет выглядит примерно так TLS handshake ➡️ SNI: google.com А внутри этого соединения на самом деле передаётся MTProto-трафик Telegram Именно благодаря этому MTProto-proxy часто продолжает работать даже при активных блокировках ✅ Создаём конфиг-файл nano /etc/mtg.toml secret = "abcdef1234567890abcdef1234567890" # секрет который получили раньше
bind-to = "0.0.0.0:8443" # порт который хотим использовать ❗️ Если используется firewall открываем порт ufw allow 8443/tcp ✅ Делаем systemd-сервис nano /etc/systemd/system/mtg.service [Unit]
Description=MTG MTProto Proxy
After=network.target [Service]
ExecStart=/root/go/bin/mtg run /etc/mtg.toml
Restart=always
RestartSec=5
User=root [Install]
WantedBy=multi-user.target ✅ Запускаем systemctl daemon-reload
systemctl enable mtg
systemctl start mtg ✅ Проверяем systemctl status mtg ✅ Дополнительно проверяем порт ss -lntp | grep 8443 🔵 Если всё запустилось правильно, увидим что-то вроде LISTEN 0 4096 0.0.0.0:8443 🔵 Это значит, что MTProto-proxy слушает порт ✅ Также можно проверить логи journalctl -u mtg -f Это поможет быстро понять, если
🔵 порт занят
🔵 конфиг написан неправильно
🔵 сервис не стартует 📱 Настройка Telegram Настройки ➡️ Данные и память ➡️ Прокси Тип 〰️ MTProto
Сервер 〰️ IP вашего сервера
Порт 〰️ 8443
Ключ 〰️ тот самый секрет выше После включения прокси, Telegram начинает работать без КВН ✅ Итог MTProto-proxy поднимается буквально за несколько минут и позволяет пользоваться Telegram даже при блокировках
А развёрнутый у себя MTProto-proxy позволяет не бояться, что кто-то сниффает твой трафик 😎 Иногда DevOps 〰️ это не только деплой сервисов
Иногда это ещё и деплой собственного интернета 😉 #telegram #mtproto #vpn #networking #homelab #devops