Files
tg-ws-proxy/README.md

146 lines
6.2 KiB
Markdown
Raw Normal View History

2026-03-15 14:17:07 +03:00
> [!CAUTION]
>
> ### Реакция антивирусов
> Windows Defender часто ошибочно помечает приложение как **Wacatac**.
> Если вы не можете скачать из-за блокировки, то:
> 1) Попробуйте скачать версию win7 (она ничем не отличается в плане функционала)
2026-03-15 15:55:23 +03:00
> 2) Отключите антивирус на время скачивания, добавьте файл в исключения и включите обратно
2026-03-15 14:17:07 +03:00
>
> **Всегда проверяйте, что скачиваете из интернета, тем более из непроверенных источников. Всегда лучше смотреть на детекты широко известных антивирусов на VirusTotal**
2026-03-04 17:20:07 +03:00
# TG WS Proxy
2026-03-18 19:22:46 +03:00
**Локальный SOCKS5-прокси** для Telegram Desktop, который **ускоряет работу Telegram**, перенаправляя трафик через WebSocket-соединения. Данные передаются в том же зашифрованном виде, а для работы не нужны сторонние сервера.
2026-03-04 17:20:07 +03:00
2026-03-04 20:14:08 +03:00
<img width="529" height="487" alt="image" src="https://github.com/user-attachments/assets/6a4cf683-0df8-43af-86c1-0e8f08682b62" />
2026-03-04 17:20:07 +03:00
## Как это работает
```
2026-03-18 19:22:46 +03:00
Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TG WS Proxy → WSS → Telegram DC
2026-03-04 17:20:07 +03:00
```
1. Приложение поднимает локальный SOCKS5-прокси на `127.0.0.1:1080`
2. Перехватывает подключения к IP-адресам Telegram
3. Извлекает DC ID из MTProto obfuscation init-пакета
2026-03-18 19:22:46 +03:00
4. Устанавливает WebSocket (TLS) соединение к соответствующему DC через домены Telegram
2026-03-04 17:20:07 +03:00
5. Если WS недоступен (302 redirect) — автоматически переключается на прямое TCP-соединение
2026-03-06 19:48:12 +03:00
## 🚀 Быстрый старт
2026-03-04 17:20:07 +03:00
2026-03-06 19:48:12 +03:00
### Windows
Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте **`TgWsProxy.exe`**. Он собирается автоматически через [Github Actions](https://github.com/Flowseal/tg-ws-proxy/actions) из открытого исходного кода.
2026-03-04 17:20:07 +03:00
При первом запуске откроется окно с инструкцией по подключению Telegram Desktop. Приложение сворачивается в системный трей.
**Меню трея:**
- **Открыть в Telegram** — автоматически настроить прокси через `tg://socks` ссылку
- **Перезапустить прокси** — перезапуск без выхода из приложения
- **Настройки...** — GUI-редактор конфигурации
- **Открыть логи** — открыть файл логов
- **Выход** — остановить прокси и закрыть приложение
2026-03-18 17:33:38 +03:00
### MacOS (Tray-приложение)
<<<<<<< build/pyproject-migration
```bash
pip install -e ".[win10]"
```
### Windows 7
```bash
pip install -e ".[win7]"
```
### Windows (Tray-приложение)
```bash
tg-ws-proxy-tray
```
=======
2026-03-18 17:33:38 +03:00
Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте **`TgWsProxy.dmg`** — универсальная сборка для Apple Silicon и Intel.
1. Открыть образ
2. Перенести **TG WS Proxy.app** в папку **Applications**
3. При первом запуске macOS может попросить подтвердить открытие: **Системные настройки → Конфиденциальность и безопасность → Всё равно открыть**
>>>>>>> main
2026-03-18 17:33:38 +03:00
2026-03-18 19:22:46 +03:00
### Консольный режим из исходников
2026-03-04 17:20:07 +03:00
```bash
tg-ws-proxy [--port PORT] [--host HOST] [--dc-ip DC:IP ...] [-v]
2026-03-04 17:20:07 +03:00
```
**Аргументы:**
| Аргумент | По умолчанию | Описание |
|---|---|---|
| `--port` | `1080` | Порт SOCKS5-прокси |
| `--host` | `127.0.0.1` | Хост SOCKS5-прокси |
2026-03-04 17:20:07 +03:00
| `--dc-ip` | `2:149.154.167.220`, `4:149.154.167.220` | Целевой IP для DC (можно указать несколько раз) |
| `-v`, `--verbose` | выкл. | Подробное логирование (DEBUG) |
**Примеры:**
```bash
# Стандартный запуск
tg-ws-proxy
2026-03-04 17:20:07 +03:00
# Другой порт и дополнительные DC
tg-ws-proxy --port 9050 --dc-ip 1:149.154.175.205 --dc-ip 2:149.154.167.220
2026-03-04 17:20:07 +03:00
# С подробным логированием
tg-ws-proxy -v
```
## CLI-скрипты (pyproject.toml)
CLI команды объявляются в `pyproject.toml` в секции `[project.scripts]` и должны указывать на `module:function`.
Пример:
```toml
[project.scripts]
tg-ws-proxy = "proxy.tg_ws_proxy:main"
tg-ws-proxy-tray = "windows:main"
2026-03-04 17:20:07 +03:00
```
## Настройка Telegram Desktop
### Автоматически
ПКМ по иконке в трее → **«Открыть в Telegram»**
### Вручную
1. Telegram → **Настройки****Продвинутые настройки****Тип подключения****Прокси**
2. Добавить прокси:
- **Тип:** SOCKS5
- **Сервер:** `127.0.0.1`
- **Порт:** `1080`
- **Логин/Пароль:** оставить пустыми
## Конфигурация
2026-03-06 19:48:12 +03:00
Tray-приложение хранит данные в `%APPDATA%/TgWsProxy`:
2026-03-04 17:20:07 +03:00
```json
{
"port": 1080,
"dc_ip": [
"2:149.154.167.220",
"4:149.154.167.220"
],
"verbose": false
}
```
2026-03-06 19:48:12 +03:00
## Автоматическая сборка
2026-03-04 17:20:07 +03:00
2026-03-18 19:22:46 +03:00
Проект содержит спецификации PyInstaller ([`packaging/windows.spec`](packaging/windows.spec), [`packaging/macos.spec`](packaging/macos.spec)) и GitHub Actions workflow ([`.github/workflows/build.yml`](.github/workflows/build.yml)) для автоматической сборки.
2026-03-18 17:33:38 +03:00
2026-03-04 17:20:07 +03:00
## Лицензия
2026-03-04 20:14:08 +03:00
[MIT License](LICENSE)