tg-ws-proxy-go/README.md

333 lines
12 KiB
Markdown
Raw Normal View History

2026-03-22 19:39:24 +03:00
# TG WS Proxy Go
[![Go Version](https://img.shields.io/github/go-mod/go-version/y0sy4/tg-ws-proxy-go?label=Go)](go.mod)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Release](https://img.shields.io/github/v/release/y0sy4/tg-ws-proxy-go)](https://github.com/y0sy4/tg-ws-proxy-go/releases)
> **Go-переосмысление** [Flowseal/tg-ws-proxy](https://github.com/Flowseal/tg-ws-proxy)
**Локальный SOCKS5-прокси для Telegram Desktop на Go**
Ускоряет работу Telegram через WebSocket-соединения напрямую к серверам Telegram.
---
## 📥 Скачать последнюю версию
| Платформа | Файл | Размер | Ссылка |
|-----------|------|--------|--------|
| **Windows x64** | TgWsProxy.exe | 6.6 MB | [⬇️ Скачать](https://github.com/y0sy4/tg-ws-proxy-go/releases/download/v2.0.4/TgWsProxy_windows_amd64.exe) |
| **Linux x64** | TgWsProxy | 6.5 MB | [⬇️ Скачать](https://github.com/y0sy4/tg-ws-proxy-go/releases/download/v2.0.4/TgWsProxy_linux_amd64) |
| **macOS Intel** | TgWsProxy | 6.6 MB | [⬇️ Скачать](https://github.com/y0sy4/tg-ws-proxy-go/releases/download/v2.0.4/TgWsProxy_darwin_amd64) |
| **macOS Apple Silicon** | TgWsProxy | 5.8 MB | [⬇️ Скачать](https://github.com/y0sy4/tg-ws-proxy-go/releases/download/v2.0.4/TgWsProxy_darwin_arm64) |
> **Все релизы:** https://github.com/y0sy4/tg-ws-proxy-go/releases
---
## 👶 Вы новичок? Начните здесь!
1. **[📥 Скачать программу](https://github.com/y0sy4/tg-ws-proxy-go/releases)** — выберите свою платформу
2. **[❓ FAQ — Частые вопросы](FAQ.md)** — ответы на все вопросы
3. **[🚀 Быстрый старт](#быстрый-старт)** — инструкция по запуску
---
2026-03-22 19:39:24 +03:00
## Почему Go версия лучше
| Параметр | Python | Go |
|----------|--------|-----|
| Размер | ~50 MB | **~8 MB** |
| Зависимости | pip (много) | **stdlib** |
| Время запуска | ~500 ms | **~50 ms** |
| Потребление памяти | ~50 MB | **~10 MB** |
## Быстрый старт
### Установка
```bash
# Скачать готовый бинарник из Releases
# Или собрать из исходников
go build -o TgWsProxy.exe ./cmd/proxy
```
### Запуск
```bash
# Windows (автоматически откроет настройку прокси в Telegram)
2026-03-22 19:39:24 +03:00
start run.bat
# Linux/macOS (автоматически откроет настройку прокси в Telegram)
2026-03-22 19:39:24 +03:00
./TgWsProxy
# С опциями
./TgWsProxy --port 9050 --dc-ip 2:149.154.167.220
```
---
## 📖 Подробная инструкция для новичков
### Шаг 1: Скачивание
1. Откройте страницу [Releases](https://github.com/y0sy4/tg-ws-proxy-go/releases)
2. Найдите свою платформу в таблице
3. Нажмите на ссылку скачивания (например, `TgWsProxy_windows_amd64.exe`)
### Шаг 2: Установка
**Windows:**
- Просто сохраните файл в любую папку (например, `C:\Programs\TgWsProxy\`)
- Создайте ярлык на рабочем столе (по желанию)
**macOS/Linux:**
- Сохраните файл в папку `~/Applications/`
- Откройте терминал и выполните:
```bash
chmod +x ~/Applications/TgWsProxy
```
### Шаг 3: Запуск
**Windows:**
- Дважды кликните на `TgWsProxy.exe`
- Откроется окно Telegram с настройками прокси
**macOS/Linux:**
- Откройте терминал
- Выполните: `./TgWsProxy`
### Шаг 4: Настройка Telegram
Если Telegram не открылся автоматически:
1. Откройте браузер
2. Перейдите по ссылке: `tg://socks?server=127.0.0.1&port=1080`
3. Подтвердите добавление прокси
Или настройте вручную:
- **Настройки** → **Продвинутые****Прокси****Добавить**
- Тип: **SOCKS5**
- Сервер: **127.0.0.1**
- Порт: **1080**
---
2026-03-22 19:39:24 +03:00
## Настройка Telegram Desktop
### Автоматическая настройка
При первом запуске прокси автоматически предложит настроить Telegram (Windows).
Или откройте ссылку в браузере:
```
tg://socks?server=127.0.0.1&port=1080
```
### Ручная настройка
1. **Настройки****Продвинутые****Тип подключения****Прокси**
2. Добавить прокси:
- **Тип:** SOCKS5
- **Сервер:** `127.0.0.1`
- **Порт:** `1080`
- **Логин/Пароль:** пусто (или ваши данные если используете `--auth`)
Или откройте ссылку: `tg://socks?server=127.0.0.1&port=1080`
## Командная строка
```bash
./TgWsProxy [опции]
Основные опции (для всех):
2026-03-22 19:39:24 +03:00
--port int Порт SOCKS5 (default 1080)
--host string Хост SOCKS5 (default "127.0.0.1")
--dc-ip string DC:IP через запятую
2026-03-22 19:39:24 +03:00
--auth string SOCKS5 аутентификация (username:password)
-v Подробное логирование
--version Показать версию
Продвинутые опции (для опытных):
--http-port int Включить HTTP прокси на порту (0 = выключено)
--upstream-proxy Восходящий прокси (socks5://user:pass@host:port)
2026-03-22 19:39:24 +03:00
```
### Примеры
**Базовое (для новичков):**
```bash
TgWsProxy.exe
```
Просто запусти! Telegram автоматически откроет настройки SOCKS5 прокси.
**С аутентификацией:**
2026-03-22 19:39:24 +03:00
```bash
TgWsProxy.exe --auth "myuser:mypassword"
```
Защита прокси паролем.
2026-03-22 19:39:24 +03:00
**С HTTP прокси (для опытных):**
```bash
TgWsProxy.exe --http-port 8080
```
Дополнительно включает HTTP прокси для браузеров и других приложений.
Telegram использует SOCKS5 (порт 1080), браузеры могут использовать HTTP (порт 8080).
2026-03-22 19:39:24 +03:00
**С восходящим прокси (для опытных):**
```bash
TgWsProxy.exe --upstream-proxy "socks5://user:pass@proxy-server:1080"
2026-03-22 19:39:24 +03:00
```
Подключение к Telegram через другой SOCKS5 прокси.
2026-03-22 19:39:24 +03:00
## Структура проекта
```
tg-ws-proxy/
├── cmd/
│ └── proxy/ # CLI приложение
├── internal/
│ ├── proxy/ # Ядро прокси
│ ├── socks5/ # SOCKS5 сервер
│ ├── websocket/ # WebSocket клиент
│ ├── mtproto/ # MTProto парсинг
│ └── config/ # Конфигурация
├── go.mod
├── Makefile
└── README.md
```
## Сборка
```bash
# Все платформы
make all
# Конкретная платформа
make windows # Windows (.exe)
make linux # Linux (amd64)
make darwin # macOS Intel + Apple Silicon
make android # Android (.aar библиотека)
```
### Поддерживаемые платформы
| Платформа | Архитектуры | Статус |
|-----------|-------------|--------|
| Windows | x86_64 | ✅ Готово |
| Linux | x86_64 | ✅ Готово |
| macOS | Intel + Apple Silicon | ✅ Готово |
| Android | arm64, arm, x86_64 | 📝 См. [android/README.md](android/README.md) |
| iOS | arm64 | 🚧 В планах |
**macOS Catalina (10.15)** — поддерживается! Используйте `TgWsProxy_macos_amd64`.
## Конфигурация
Файл конфигурации:
- **Windows:** `%APPDATA%/TgWsProxy/config.json`
- **Linux:** `~/.config/TgWsProxy/config.json`
- **macOS:** `~/Library/Application Support/TgWsProxy/config.json`
```json
{
"port": 1080,
"host": "127.0.0.1",
"dc_ip": [
"1:149.154.175.50",
"2:149.154.167.220",
"3:149.154.175.100",
"4:149.154.167.220",
"5:91.108.56.100"
],
"verbose": false,
"log_max_mb": 5,
"buf_kb": 256,
"pool_size": 4
}
```
## Особенности
-**WebSocket pooling** — пул соединений для уменьшения задержек
-**TCP fallback** — автоматическое переключение при недоступности WS
-**MTProto парсинг** — извлечение DC ID из init-пакета
-**SOCKS5** — полная поддержка RFC 1928
-**Логирование**с ротацией файлов
-**Zero-copy** — оптимизированные операции с памятью
## 📱 Планы развития
- [ ] **Android APK** — нативное приложение с фоновой службой
- [ ] **iOS App** — Swift обёртка вокруг Go ядра
- [ ] **GUI для desktop** — системный трей для Windows/macOS/Linux
## Производительность
| Метрика | Значение |
|---------|----------|
| Размер бинарника | ~8 MB |
| Потребление памяти | ~10 MB |
| Время запуска | <100 ms |
| Задержка (pool hit) | <1 ms |
## 🔍 Решение проблем
### Прокси не подключается
**Проверьте:**
1. ✅ Запущена ли программа `TgWsProxy`
2. ✅ Правильно ли настроен Telegram (127.0.0.1:1080)
3.Не блокирует ли антивирус
**Попробуйте:**
1. Перезапустите `TgWsProxy`
2. Перезапустите Telegram
3. Проверьте логи: `%APPDATA%\TgWsProxy\proxy.log`
### Telegram не открывается автоматически
Откройте вручную: `tg://socks?server=127.0.0.1&port=1080`
Или настройте вручную (см. выше).
### Антивирус блокирует программу
Это ложное срабатывание. Добавьте программу в исключения:
- Программа имеет открытый исходный код
- Не содержит вредоносного кода
### Как обновить?
**Автоматически:** При запуске программа проверит и скачает обновление.
**Вручную:** Скачайте новую версию из [Releases](https://github.com/y0sy4/tg-ws-proxy-go/releases) и замените файл.
### Ещё вопросы?
Смотрите **[❓ FAQ](FAQ.md)** — там ответы на все вопросы!
---
2026-03-22 19:39:24 +03:00
## Требования
- **Go 1.21+** для сборки
- **Windows 7+** / **macOS 10.15+** / **Linux x86_64**
- **Telegram Desktop** для использования
## Известные ограничения
1. **IPv6** — поддерживается через IPv4-mapped адреса (::ffff:x.x.x.x) и NAT64
2. **DC3 WebSocket** — может быть недоступен в некоторых регионах
## Лицензия
MIT License
## Ссылки
- [Оригинальный проект на Python](https://github.com/Flowseal/tg-ws-proxy)
- [Документация Go](https://go.dev/)