Local MTProto proxy server for partial bypassing of Telegram loading
Go to file
Goga-Rid 155bf5965e [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена
- Открытие файлов через xdg-open для Linux
      - Поддержка tg:// протокола в Linux
      - .desktop файл для интеграции в окружение GNOME
      - Скрипты установки и удаления
      - Обновлённая документация
2026-03-06 07:06:44 +03:00
.github/workflows Initial release 2026-03-04 17:20:07 +03:00
.gitignore Initial release 2026-03-04 17:20:07 +03:00
LICENSE Initial commit 2026-03-04 17:10:26 +03:00
README.md [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена 2026-03-06 07:06:44 +03:00
icon.ico Initial release 2026-03-04 17:20:07 +03:00
install.sh [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена 2026-03-06 07:06:44 +03:00
requirements.txt update requirements 2026-03-04 17:26:00 +03:00
tg-ws-proxy.desktop [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена 2026-03-06 07:06:44 +03:00
tg_ws_proxy.py Mapping unknown DC by IP for mobile clients 2026-03-06 02:47:59 +03:00
tg_ws_proxy.spec Initial release 2026-03-04 17:20:07 +03:00
tg_ws_tray.py [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена 2026-03-06 07:06:44 +03:00
uninstall.sh [FEAT] добавление поддержки Linux (GNOME): - Кроссплатформенная работа с буфером обмена 2026-03-06 07:06:44 +03:00

README.md

TG WS Proxy

Локальный SOCKS5-прокси для Telegram Desktop, который перенаправляет трафик через WebSocket-соединения к указанным серверам, помогая частично ускорить работу Telegram.

Ожидаемый результат аналогичен прокидыванию hosts для Web Telegram: ускорение загрузки и скачивания файлов, загрузки сообщений и части медиа.

image

Как это работает

Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TG WS Proxy → WSS (kws*.web.telegram.org) → Telegram DC
  1. Приложение поднимает локальный SOCKS5-прокси на 127.0.0.1:1080
  2. Перехватывает подключения к IP-адресам Telegram
  3. Извлекает DC ID из MTProto obfuscation init-пакета
  4. Устанавливает WebSocket (TLS) соединение к соответствующему DC через домены kws{N}.web.telegram.org
  5. Если WS недоступен (302 redirect) — автоматически переключается на прямое TCP-соединение

Установка

Fedora (GNOME)

Для установки в Linux с GNOME выполните:

Ubuntu/Debian:

# Установите зависимости 
sudo apt install libappindicator3-1 python3-tk xclip

# Запустите скрипт установки
./install.sh

Fedora / RHEL:

# Установите зависимости 
sudo dnf install python3-pip python3-tkinter libappindicator-gtk3

# Запустите скрипт установки
./install.sh

После установки приложение появится в меню приложений и будет доступно по команде tg-ws-proxy.

Для удаления:

./uninstall.sh

Из исходников (кроссплатформенно)

pip install -r requirements.txt

Использование

Tray-приложение (Linux/Windows)

python tg_ws_tray.py

При первом запуске откроется окно с инструкцией по подключению Telegram Desktop. Приложение сворачивается в системный трей.

Меню трея:

  • Открыть в Telegram — автоматически настроить прокси через tg://socks ссылку
  • Перезапустить прокси — перезапуск без выхода из приложения
  • Настройки... — GUI-редактор конфигурации
  • Открыть логи — открыть файл логов
  • Выход — остановить прокси и закрыть приложение

Консольный режим

python tg_ws_proxy.py [--port PORT] [--dc-ip DC:IP ...] [-v]

Аргументы:

Аргумент По умолчанию Описание
--port 1080 Порт SOCKS5-прокси
--dc-ip 2:149.154.167.220, 4:149.154.167.220 Целевой IP для DC (можно указать несколько раз)
-v, --verbose выкл. Подробное логирование (DEBUG)

Примеры:

# Стандартный запуск
python tg_ws_proxy.py

# Другой порт и дополнительные DC
python tg_ws_proxy.py --port 9050 --dc-ip 1:149.154.175.205 --dc-ip 2:149.154.167.220

# С подробным логированием
python tg_ws_proxy.py -v

Настройка Telegram Desktop

Автоматически

ПКМ по иконке в трее → «Открыть в Telegram»

Вручную

  1. Telegram → НастройкиПродвинутые настройкиТип подключенияПрокси
  2. Добавить прокси:
    • Тип: SOCKS5
    • Сервер: 127.0.0.1
    • Порт: 1080
    • Логин/Пароль: оставить пустыми

Конфигурация

Tray-приложение хранит конфигурацию в:

  • Windows: %APPDATA%/TgWsProxy/config.json
  • Linux: ~/.config/tgwsproxy/config.json

Пример конфигурации:

{
  "port": 1080,
  "dc_ip": [
    "2:149.154.167.220",
    "4:149.154.167.220"
  ],
  "verbose": false
}

Логи записываются в:

  • Windows: %APPDATA%/TgWsProxy/proxy.log
  • Linux: ~/.config/tgwsproxy/proxy.log

Сборка exe

Проект содержит спецификацию PyInstaller (tg_ws_proxy.spec) и GitHub Actions workflow (.github/workflows/build.yml) для автоматической сборки.

pip install pyinstaller
pyinstaller tg_ws_proxy.spec

Требования для Linux

Для работы tray-приложения в GNOME требуется:

sudo dnf install libappindicator-gtk3 python3-tkinter xclip

Дисклеймер

Проект частично vibecoded by Opus 4.6. Если вы найдете баг, то создайте Issue с его описанем.

Лицензия

MIT License