Skip to content

Iversat/telegram-proxy-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 _____ ______   _________  ________  ________  ________  _________  ________     
|\   _ \  _   \|\___   ___\\   __  \|\   __  \|\   __  \|\___   ___\\   __  \    
\ \  \\\__\ \  \|___ \  \_\ \  \|\  \ \  \|\  \ \  \|\  \|___ \  \_\ \  \|\  \   
 \ \  \\|__| \  \   \ \  \ \ \   ____\ \   _  _\ \  \\\  \   \ \  \ \ \  \\\  \  
  \ \  \    \ \  \   \ \  \ \ \  \___|\ \  \\  \\ \  \\\  \   \ \  \ \ \  \\\  \ 
   \ \__\    \ \__\   \ \__\ \ \__\    \ \__\\ _\\ \_______\   \ \__\ \ \_______\
    \|__|     \|__|    \|__|  \|__|     \|__|\|__|\|_______|    \|__|  \|_______|

Telegram MTProto Server с FakeTLS

MTProto Proxy — Готовое ядро для быстрого развертывания личного прокси-сервера на вашем VPS сервере. Высокопроизводительный прокси-сервер для Telegram с C-level ускорением криптографии и полной маскировкой трафика под обычный HTTPS-сайт. Python Docker Telegram Security Cryptography

Особенности

  • FakeTLS: Маскировка трафика под обычные HTTPS-запросы (домен yandex.ru) для обхода DPI.
  • Высокая скорость: Использование cryptg и gcc для C-level ускорения криптографии.
  • Горячая перезагрузка (Hot-Reload): Добавление, отключение и удаление пользователей на лету. Сервер подхватывает изменения без перезагрузки контейнера и обрыва текущих сессий.
  • Зашифрованная база: Данные пользователей и секреты надежно хранятся в зашифрованном файле users.enc.

🐳 Запуск через Docker

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

Файл конфигурации .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 шага:

  1. Измените порт в файле .env
  2. Измените проброс порта в файле docker-compose.yaml (например, с 1080:1080 на 8443:8443).
  3. Пересоздайте контейнер командой: docker compose up -d --build
  • Конфиденциальность: Файлы .env (содержит мастер-ключ шифрования) и users.enc (содержит зашифрованную базу пользователей) должны храниться строго у вас. Никогда не публикуйте их в открытый доступ и не передавайте третьим лицам.

❓ FAQ и Отказ от ответственности

Вопрос: Для чего был создан этот проект?

Ответ: Данный проект создан исключительно в образовательных и исследовательских целях для детального изучения принципов работы сетевого проксирования, шифрования трафика и внутреннего устройства протокола MTProto, используемого в мессенджере Telegram.

Автор не несет ответственности за любое использование данного программного обеспечения в противоправных целях, а также за возможные нарушения локальных законов или правил использования сторонних сервисов. Вся ответственность за развертывание и эксплуатацию кода лежит исключительно на конечном пользователе.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors