Как поднять собственный proxy для Telegram?

Ожидаемые новости
По словам двух источников, Роскомнадзор планирует начать принимать меры по частичному ограничению работы сервиса во вторник 10 февраля. Еще один источник РБК добавил, что меры по замедлению Telegram уже принимаются. РБК направил запрос в Роскомнадзор.
Источники:
- Роскомнадзор заявил о продолжении «последовательных ограничений» Telegram
- Роскомнадзор подтвердил ограничение работы Telegram
- Роскомнадзор ограничил работу Telegram
Решение: поднимаем собственный proxy для Telegram
За основу будем использовать официальное решение от Telegram MTProxy.
Арендуем сервер, можно в РФ, можно вне РФ с Ubuntu 24, далее список команд:
✅ Список рекомендуемых хостеров
Установка необходимых утилит:
sudo apt-get update -y; \
sudo apt install fail2ban vnstat git curl build-essential libssl-dev zlib1g-dev -y
Клонируем репозиторий:
git clone https://github.com/TelegramMessenger/MTProxy; \
cd MTProxy
Сборка:
make && cd objs/bin
Генерация proxy-secret, используемый для подключения к серверам Telegram.
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
Генерация proxy-multi.conf, актуальные настройки Telegram. Они могут меняться (периодически), поэтому рекомендуем обновлять их раз в день.
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
Генерация секретного ключа, который будут использовать пользователи для подключения к вашему прокси-серверу.
head -c 16 /dev/urandom | xxd -ps
Запускаем (нужно заменить secret на свой):
./mtproto-proxy \
-u nobody \
-p 8888 \
-H 443 \
-S <secret> \
--aes-pwd proxy-secret proxy-multi.conf \
-M 1
- nobody — имя пользователя
- 443 - порт, используемый клиентами для подключения к прокси-серверу
- 8888 - локальный порт, для получения статистики через
/stats - secret — это значение, сгенерированный на предыдущем шаге
- proxy-secret - файл, сгенерированный на первом этапе
- proxy-multi.conf - файл, сгенерированный на втором этапе
- 1 - количество рабочих процессов
- http-stats - параметр для доступа к статистике
Далее регистрием наш прокси в
MTProxybot (официальный телеграм бот) и получаем из бота параметр tag.
Запуск через systemctl
Создадим файл MTProxy.service (нужно заменить параметры из текста на свои):
cat > /etc/systemd/system/MTProxy.service <<EOF
[Unit]
Description=MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/root/MTProxy/objs/bin
ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 5555 -H 443 -S <секретный ключ> -P <значение tag из бота> --aes-pwd proxy-secret proxy-multi.conf -M 2 --http-stats
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
Активация и запуск сервиса:
systemctl daemon-reload; \
systemctl enable MTProxy.service; \
systemctl restart MTProxy.service; \
sleep 2; \
systemctl status MTProxy.service
Просмотр статистики:
curl -s http://127.0.0.1:5555/stats
Просмотр статистики (нагрузка и количество активных клиентов):
curl -s http://127.0.0.1:5555/stats | grep -e total_special -e load_average_total
Готовый прокси
Подключить готовый прокси! - ссылка перенаправит вас в приложение Telegram.

Большое спасибо всем за внимание! Если вам интересны подобные рассуждения - подписывайтесь на мой канал artydev & Co.