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

2 minute read

img

Ожидаемые новости

По словам двух источников, Роскомнадзор планирует начать принимать меры по частичному ограничению работы сервиса во вторник 10 февраля. Еще один источник РБК добавил, что меры по замедлению 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 - параметр для доступа к статистике

Далее регистрием наш прокси в Telegram_logo 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_logo Подключить готовый прокси! - ссылка перенаправит вас в приложение Telegram.

img

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