tglock/README.md

9.0 KiB
Raw Blame History

TG Unblock

Обход блокировки Telegram через WebSocket-туннель
Без VPN. Без серверов. Без абонентки. CLI + GUI.

Release License Stars Rust Platform


Что это?

TG Unblock — кроссплатформенное приложение на Rust, которое обходит блокировку Telegram через локальный WebSocket-прокси. Провайдер видит обычный HTTPS к web.telegram.org, а не MTProto — DPI не может обнаружить и заблокировать трафик.

Доступно в двух вариантах:

  • CLI — кроссплатформенный (Linux, macOS, Windows), работает в терминале
  • GUI — графический интерфейс для Windows

Почему не GoodbyeDPI / Zapret?

GoodbyeDPI Zapret TG Unblock
Метод Фрагментация пакетов Desync пакетов WebSocket-туннель
DPI видит MTProto? Нет (обфускация) Нет (desync) Нет (обычный HTTPS)
IP-шейпинг обходит? Нет Нет Да
Скорость Зависит от DPI Зависит от DPI Полная
Переподключения Возможны Возможны Нет
Настройка Много параметров Стратегии Один клик / одна команда

Скачать

Скачать последний релиз

Или собрать из исходников:

git clone https://github.com/by-sonic/tglock.git
cd tglock

# CLI (Linux / macOS / Windows):
cargo build --release --bin tg_unblock

# GUI (Windows):
cargo build --release --bin tg_unblock_gui --features gui

Готовый бинарник будет в target/release/.

Как пользоваться

CLI (Linux / macOS / Windows)

# Запустить прокси на порту по умолчанию (1080):
tg_unblock

# Указать порт:
tg_unblock --port 9050

# Со сменой DNS на Cloudflare (нужен root/admin):
sudo tg_unblock --dns

Остановка — Ctrl+C (DNS автоматически сбросится).

$ tg_unblock --help
Обход блокировки Telegram через WebSocket-туннель

Usage: tg_unblock [OPTIONS]

Options:
  -p, --port <PORT>  Порт SOCKS5-прокси [default: 1080]
  -b, --bind <BIND>  Адрес привязки [default: 127.0.0.1]
      --dns          Сменить DNS на Cloudflare 1.1.1.1 (нужен root/admin)
  -h, --help         Print help
  -V, --version      Print version

GUI (Windows)

  1. Запустите tg_unblock_gui.exe
  2. Нажмите "Запустить обход"
  3. Нажмите "Настроить автоматически" — откроется Telegram, нажмите "Подключить"
  4. Готово. Telegram работает на полной скорости.

Настройка прокси в Telegram

Telegram Desktop → Настройки → Продвинутые → Тип соединения → Использовать SOCKS5-прокси

Параметр Значение
Сервер 127.0.0.1
Порт 1080 (или тот, что указали в --port)
Логин пусто
Пароль пусто

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

Telegram Desktop
       │
       ▼ (SOCKS5)
┌──────────────────┐
│  TG Unblock      │  127.0.0.1:1080
│  WS-прокси       │
└──────┬───────────┘
       │
       ▼ (определяет DC по IP)
       │
       ├── Telegram IP? ──► WSS-туннель к {dc}.web.telegram.org/apiws
       │                    (провайдер видит обычный HTTPS)
       │
       └── Другой IP? ────► Прямое TCP-соединение (без изменений)

DC-маппинг

Приложение автоматически определяет Data Center по IP-адресу и маршрутизирует через правильный WebSocket-эндпоинт:

DC Подсеть WebSocket
DC1 149.154.160.0/22 wss://kws1.web.telegram.org/apiws
DC2 149.154.164.0/22 wss://kws2.web.telegram.org/apiws
DC3 149.154.168.0/22 wss://kws3.web.telegram.org/apiws
DC4 91.108.12.0/22 wss://kws4.web.telegram.org/apiws
DC5 91.108.56.0/22 wss://kws5.web.telegram.org/apiws

Стек

Что Зачем
Rust Скорость, безопасность, один бинарник без зависимостей
tokio Async I/O для высокопроизводительного проксирования
tokio-tungstenite WebSocket-клиент с TLS
native-tls TLS через системные сертификаты
clap Парсинг аргументов CLI
egui / eframe Нативный GUI (опционально, Windows)

Структура проекта

tglock/
├── Cargo.toml              # Зависимости и таргеты
├── src/
│   ├── lib.rs              # Библиотечный крейт
│   ├── ws_proxy.rs         # SOCKS5-сервер + WebSocket-туннель
│   ├── bypass.rs           # DNS-настройка (Linux + Windows)
│   ├── network.rs          # Сетевая диагностика (Linux + Windows)
│   └── bin/
│       ├── cli.rs          # CLI-интерфейс (кроссплатформенный)
│       └── gui.rs          # GUI-интерфейс (Windows)
└── tg_blacklist.txt        # IP-подсети и домены Telegram

Требования

CLI (Linux / macOS)

  • Rust 1.70+ (для сборки из исходников)
  • Права root (для смены DNS с флагом --dns, опционально)

GUI (Windows)

  • Windows 10/11
  • Rust 1.70+ (для сборки из исходников)
  • Права администратора (для смены DNS, опционально)

FAQ

Q: Это VPN? A: Нет. Трафик не идёт через сторонние серверы. Прокси работает локально и туннелирует только Telegram-трафик через WebSocket к официальным серверам Telegram.

Q: Это безопасно? A: Весь код открыт. Никакой телеметрии. Никаких данных не отправляется. Соединение с Telegram остаётся end-to-end зашифрованным (MTProto).

Q: Будет ли работать с мобильным Telegram? A: Пока только Telegram Desktop. Для мобильных устройств рекомендуем by sonic VPN.

Q: Замедляется ли интернет? A: Нет. Проксируется только трафик к серверам Telegram. Весь остальной трафик идёт напрямую.

Q: Работает ли на Linux? A: Да. CLI-версия полностью кроссплатформенная. На Linux для смены DNS используется resolvectl (systemd-resolved) или прямая запись в /etc/resolv.conf.

VPN для полного обхода

Если нужен обход блокировок для всех приложений (YouTube, Discord, Instagram и др.) — попробуйте by sonic VPN. Быстрый, без ограничений скорости.

Лицензия

MIT — делайте что хотите.

Автор

by sonic@bysonicvpn_bot


Если пригодилось — поставьте на GitHub