_____ ______ _________ ________ ________ ________ _________ ________
|\ _ \ _ \|\___ ___\\ __ \|\ __ \|\ __ \|\___ ___\\ __ \
\ \ \\\__\ \ \|___ \ \_\ \ \|\ \ \ \|\ \ \ \|\ \|___ \ \_\ \ \|\ \
\ \ \\|__| \ \ \ \ \ \ \ ____\ \ _ _\ \ \\\ \ \ \ \ \ \ \\\ \
\ \ \ \ \ \ \ \ \ \ \ \___|\ \ \\ \\ \ \\\ \ \ \ \ \ \ \\\ \
\ \__\ \ \__\ \ \__\ \ \__\ \ \__\\ _\\ \_______\ \ \__\ \ \_______\
\|__| \|__| \|__| \|__| \|__|\|__|\|_______| \|__| \|_______|
MTProto Proxy — Готовое ядро для быстрого развертывания личного прокси-сервера на вашем VPS сервере.
Высокопроизводительный прокси-сервер для Telegram с C-level ускорением криптографии и полной маскировкой трафика под обычный HTTPS-сайт.
- FakeTLS: Маскировка трафика под обычные HTTPS-запросы (домен
yandex.ru) для обхода DPI. - Высокая скорость: Использование
cryptgиgccдля C-level ускорения криптографии. - Горячая перезагрузка (Hot-Reload): Добавление, отключение и удаление пользователей на лету. Сервер подхватывает изменения без перезагрузки контейнера и обрыва текущих сессий.
- Зашифрованная база: Данные пользователей и секреты надежно хранятся в зашифрованном файле
users.enc.
git clone https://github.com/Iversat/telegram-proxy-server
cd telegram-proxy-server
docker compose up -d --buildВсе команды управления выполняются через скрипт config.py внутри запущенного контейнера.
Добавление нового пользователя:
docker exec -it telegram-proxy-server python3 config.py add <имя_пользователя>Просмотр списка пользователей:
docker exec -it telegram-proxy-server python3 config.py listПолучение ссылки для подключения (FakeTLS):
docker exec -it telegram-proxy-server python3 config.py link <имя_пользователя>Управление доступом (Включение / Отключение):
Команды on и off позволяют временно приостановить или возобновить доступ пользователя. Изменение статуса вызывает мгновенную мягкую перезагрузку ядра MTProto, сбрасывая соединения отключенного юзера.
docker exec -it telegram-proxy-server python3 config.py off <имя_пользователя>
docker exec -it telegram-proxy-server python3 config.py on <имя_пользователя>Полное удаление пользователя:
docker exec -it telegram-proxy-server python3 config.py del <имя_пользователя>telegram-proxy-server/
├── docker-compose.yaml — конфигурация для развертывания среды
├── Dockerfile — инструкции для сборки Docker-образа
├── main.py — процесс-менеджер для отслеживания базы и горячей перезагрузки
├── config.py — панель управления пользователями и генератор секретов
├── users.enc — зашифрованная база данных
└── .env — файл окружения с ключом шифрования и настройкамиФайл конфигурации .env создается автоматически при первом запуске (если его нет) и содержит базовые настройки сервера:
-
ENCRYPTION_KEY Мастер-ключ шифрования (генерируется автоматически). Используется алгоритмом Fernet для защиты файла
users.encс секретами пользователей. Никогда не изменяйте и не теряйте этот ключ, иначе база данных будет безвозвратно утеряна. -
PORT Порт, на котором ваш прокси-сервер будет принимать подключения (по умолчанию
1080). Если вы меняете это значение, убедитесь, что вы также обновили проброс портов в файлеdocker-compose.yaml. -
SERVER Доменное имя (например,
proxy.test1.ru) или статический IP-адрес вашего сервера. Это значение используется исключительно для формирования красивыхtg://ссылок-приглашений для пользователей. Если оставить поле пустым (SERVER=), скрипт автоматически определит ваш публичный IP-адрес через внешние API.
- Открытый порт: Для успешного подключения к серверу убедитесь, что в брандмауэре (firewall) вашего хостинг-провайдера и операционной системы открыт TCP-порт, указанный в файле .env (по умолчанию это порт 1080). Пример команды для открытия порта на Ubuntu/Debian (UFW):
sudo ufw allow 1080/tcp- Настройка параметров: В файле .env вы можете вручную изменить стандартный порт (переменная PORT) и принудительно указать свой домен или статический IP-адрес (переменная SERVER). Не обязательно
❗️После изменения настроек в .env ядро автоматически не перезагрузится. Чтобы применить новый порт, выполните 3 шага:
- Измените порт в файле .env
- Измените проброс порта в файле docker-compose.yaml (например, с 1080:1080 на 8443:8443).
- Пересоздайте контейнер командой:
docker compose up -d --build
- Конфиденциальность: Файлы .env (содержит мастер-ключ шифрования) и users.enc (содержит зашифрованную базу пользователей) должны храниться строго у вас. Никогда не публикуйте их в открытый доступ и не передавайте третьим лицам.
Вопрос: Для чего был создан этот проект?
Ответ: Данный проект создан исключительно в образовательных и исследовательских целях для детального изучения принципов работы сетевого проксирования, шифрования трафика и внутреннего устройства протокола MTProto, используемого в мессенджере Telegram.
Автор не несет ответственности за любое использование данного программного обеспечения в противоправных целях, а также за возможные нарушения локальных законов или правил использования сторонних сервисов. Вся ответственность за развертывание и эксплуатацию кода лежит исключительно на конечном пользователе.