v1.0.0: Clean rewrite — cross-platform, dark UI, stable WS tunnel

Made-with: Cursor:
This commit is contained in:
by-sonic
2026-04-08 14:56:50 +03:00
parent c40ad94e11
commit 09b7a03a0a
13 changed files with 594 additions and 2733 deletions

191
README.md
View File

@@ -1,40 +1,65 @@
<p align="center">
<h1 align="center">TG Unblock</h1>
<h1 align="center">TGLock</h1>
<p align="center"><b>Обход блокировки Telegram через WebSocket-туннель</b></p>
<p align="center">Без VPN. Без серверов. Без абонентки. Один клик.</p>
<p align="center">
<b>Обход блокировки Telegram через WebSocket-туннель</b><br>
Без VPN. Без серверов. Без абонентки. Один клик.
</p>
<p align="center">
<a href="https://github.com/by-sonic/tglock/releases"><img src="https://img.shields.io/github/v/release/by-sonic/tglock?style=for-the-badge&color=blue" alt="Release"></a>
<a href="https://github.com/by-sonic/tglock/blob/main/LICENSE"><img src="https://img.shields.io/github/license/by-sonic/tglock?style=for-the-badge" alt="License"></a>
<a href="https://github.com/by-sonic/tglock/stargazers"><img src="https://img.shields.io/github/stars/by-sonic/tglock?style=for-the-badge&color=yellow" alt="Stars"></a>
<img src="https://img.shields.io/badge/rust-1.70%2B-orange?style=for-the-badge&logo=rust" alt="Rust">
<img src="https://img.shields.io/badge/platform-Windows-0078D6?style=for-the-badge&logo=windows" alt="Windows">
<a href="https://github.com/by-sonic/tglock/releases/latest"><img src="https://img.shields.io/github/v/release/by-sonic/tglock?style=flat-square&color=blue" alt="Release"></a>
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-333?style=flat-square" alt="Platform">
<img src="https://img.shields.io/badge/rust-stable-orange?style=flat-square&logo=rust" alt="Rust">
<a href="LICENSE"><img src="https://img.shields.io/github/license/by-sonic/tglock?style=flat-square" alt="MIT"></a>
</p>
</p>
---
## Что это?
**TG Unblock** — десктопное приложение на Rust, которое обходит блокировку Telegram через локальный WebSocket-прокси. Провайдер видит обычный HTTPS к `web.telegram.org`, а не MTProto — DPI не может обнаружить и заблокировать трафик.
### Почему не GoodbyeDPI / Zapret?
| | GoodbyeDPI | Zapret | **TG Unblock** |
|---|---|---|---|
| Метод | Фрагментация пакетов | Desync пакетов | WebSocket-туннель |
| DPI видит MTProto? | Нет (обфускация) | Нет (desync) | **Нет (обычный HTTPS)** |
| IP-шейпинг обходит? | Нет | Нет | **Да** |
| Скорость | Зависит от DPI | Зависит от DPI | **Полная** |
| Переподключения | Возможны | Возможны | **Нет** |
| Настройка | Много параметров | Стратегии | **Один клик** |
## Скачать
> **[Скачать последний релиз](https://github.com/by-sonic/tglock/releases)**
**[Последний релиз](https://github.com/by-sonic/tglock/releases/latest)**
Или собрать из исходников:
| Файл | Платформа |
|---|---|
| `tglock.exe` | Windows x64 |
| `tglock-macos-arm64` | macOS Apple Silicon (M1M4) |
| `tglock-macos-x64` | macOS Intel |
| `tglock-linux-x64` | Linux x64 |
## Как пользоваться
1. Скачай и запусти
2. Нажми **ПОДКЛЮЧИТЬ**
3. Нажми **Настроить автоматически** → в Telegram нажми «Подключить»
4. Готово
Ручная настройка: Telegram → Настройки → Продвинутые → Тип соединения → SOCKS5 → `127.0.0.1:1080`
## Как это работает
```
Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TGLock → WSS (web.telegram.org) → DC
```
1. Локальный SOCKS5-прокси перехватывает соединения Telegram
2. Из MTProto init-пакета извлекается номер DC (AES-256-CTR)
3. Трафик заворачивается в WebSocket через `kws{dc}.web.telegram.org`
4. Провайдер видит обычный HTTPS к `web.telegram.org`
5. Остальной трафик проходит напрямую
## Почему не GoodbyeDPI / Zapret?
GoodbyeDPI и Zapret фрагментируют пакеты чтобы обмануть DPI. Но если провайдер **шейпит по IP** — они бесполезны.
TGLock маскирует трафик под обычный HTTPS. DPI не видит MTProto. IP-шейпинг не работает — `web.telegram.org` не блокируется.
## Стек
| | |
|---|---|
| Rust | Один бинарник, нативная скорость |
| egui | GUI без браузера и Electron |
| tokio | Async I/O |
| tokio-tungstenite | WebSocket + TLS |
## Сборка
```bash
git clone https://github.com/by-sonic/tglock.git
@@ -42,118 +67,14 @@ cd tglock
cargo build --release
```
Готовый `.exe` будет в `target/release/tg_unblock.exe`.
## VPN
## Как пользоваться
1. Запустите `tg_unblock.exe`
2. Нажмите **"Запустить обход"**
3. Нажмите **"Настроить автоматически"** — откроется Telegram, нажмите "Подключить"
4. Готово. Telegram работает на полной скорости.
### Ручная настройка прокси
Если автонастройка не сработала:
**Telegram Desktop** → Настройки → Продвинутые → Тип соединения → **Использовать SOCKS5-прокси**
| Параметр | Значение |
|---|---|
| Сервер | `127.0.0.1` |
| Порт | `1080` |
| Логин | *пусто* |
| Пароль | *пусто* |
## Как это работает
```
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://pluto.web.telegram.org/apiws` |
| DC2 | `149.154.164.0/22` | `wss://venus.web.telegram.org/apiws` |
| DC3 | `149.154.168.0/22` | `wss://aurora.web.telegram.org/apiws` |
| DC4 | `91.108.12.0/22` | `wss://vesta.web.telegram.org/apiws` |
| DC5 | `91.108.56.0/22` | `wss://flora.web.telegram.org/apiws` |
Имена DC (`pluto`, `venus`, `aurora`, `vesta`, `flora`) — из [официальной документации MTProto](https://core.telegram.org/mtproto/transports).
## Стек
| Что | Зачем |
|---|---|
| **Rust** | Скорость, безопасность, один бинарник без зависимостей |
| **egui / eframe** | Нативный GUI без Electron, без браузера |
| **tokio** | Async I/O для высокопроизводительного проксирования |
| **tokio-tungstenite** | WebSocket-клиент с TLS |
| **native-tls** | TLS через системные сертификаты Windows |
## Структура проекта
```
tglock/
├── Cargo.toml # Зависимости
├── src/
│ ├── main.rs # GUI + управление прокси
│ ├── ws_proxy.rs # SOCKS5-сервер + WebSocket-туннель
│ ├── bypass.rs # DNS-настройка, утилиты Windows
│ └── network.rs # Сетевая диагностика
└── tg_blacklist.txt # IP-подсети и домены Telegram
```
## Требования
- Windows 10/11
- [Rust 1.70+](https://rustup.rs/) (для сборки из исходников)
- Права администратора (для смены DNS, опционально)
## FAQ
**Q: Это VPN?**
A: Нет. Трафик не идёт через сторонние серверы. Прокси работает локально и туннелирует только Telegram-трафик через WebSocket к официальным серверам Telegram.
**Q: Это безопасно?**
A: Весь код открыт. Никакой телеметрии. Никаких данных не отправляется. Соединение с Telegram остаётся end-to-end зашифрованным (MTProto).
**Q: Будет ли работать с мобильным Telegram?**
A: Пока только Telegram Desktop. Для мобильных устройств рекомендуем [by sonic VPN](https://t.me/bysonicvpn_bot).
**Q: Замедляется ли интернет?**
A: Нет. Проксируется только трафик к серверам Telegram. Весь остальной трафик идёт напрямую.
## VPN для полного обхода
Если нужен обход блокировок для **всех** приложений (YouTube, Discord, Instagram и др.) — попробуйте **[by sonic VPN](https://t.me/bysonicvpn_bot)**. Быстрый, без ограничений скорости.
Для обхода блокировок **всех** приложений — **[by sonic VPN](https://t.me/bysonicvpn_bot)**
## Лицензия
MIT — делайте что хотите.
## Автор
**by sonic** — [@bysonicvpn_bot](https://t.me/bysonicvpn_bot)
MIT
---
<p align="center">
<b>Если пригодилось — поставьте ⭐ на GitHub</b>
</p>
<p align="center"><b>by sonic</b></p>