tg-ws-proxy-go/README.md

10 KiB
Raw Blame History

TG WS Proxy Go

Go Version License Release

Go-переосмысление Flowseal/tg-ws-proxy

Локальный SOCKS5-прокси для Telegram Desktop на Go

Ускоряет работу Telegram через WebSocket-соединения напрямую к серверам Telegram.


👶 Вы новичок? Начните здесь!

  1. 📥 Скачать программу — выберите свою платформу
  2. FAQ — Частые вопросы — ответы на все вопросы
  3. 🚀 Быстрый старт — инструкция по запуску

Почему Go версия лучше

Параметр Python Go
Размер ~50 MB ~8 MB
Зависимости pip (много) stdlib
Время запуска ~500 ms ~50 ms
Потребление памяти ~50 MB ~10 MB

Быстрый старт

Установка

# Скачать готовый бинарник из Releases
# Или собрать из исходников
go build -o TgWsProxy.exe ./cmd/proxy

Запуск

# Windows (автоматически откроет настройку прокси в Telegram)
start run.bat

# Linux/macOS (автоматически откроет настройку прокси в Telegram)
./TgWsProxy

# С опциями
./TgWsProxy --port 9050 --dc-ip 2:149.154.167.220

📖 Подробная инструкция для новичков

Шаг 1: Скачивание

  1. Откройте страницу Releases
  2. Найдите свою платформу в таблице
  3. Нажмите на ссылку скачивания (например, TgWsProxy_windows_amd64.exe)

Шаг 2: Установка

Windows:

  • Просто сохраните файл в любую папку (например, C:\Programs\TgWsProxy\)
  • Создайте ярлык на рабочем столе (по желанию)

macOS/Linux:

  • Сохраните файл в папку ~/Applications/
  • Откройте терминал и выполните:
    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

Настройка 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

Командная строка

./TgWsProxy [опции]

Основные опции (для всех):
  --port int        Порт SOCKS5 (default 1080)
  --host string     Хост SOCKS5 (default "127.0.0.1")
  --dc-ip string    DC:IP через запятую
  --auth string     SOCKS5 аутентификация (username:password)
  -v                Подробное логирование
  --version         Показать версию

Продвинутые опции (для опытных):
  --http-port int   Включить HTTP прокси на порту (0 = выключено)
  --upstream-proxy  Восходящий прокси (socks5://user:pass@host:port)

Примеры

Базовое (для новичков):

TgWsProxy.exe

С аутентификацией:

TgWsProxy.exe --auth "myuser:mypassword"

С HTTP прокси (для опытных):

TgWsProxy.exe --http-port 8080

С восходящим прокси (для опытных):

TgWsProxy.exe --upstream-proxy "socks5://user:pass@proxy-server:1080"

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

tg-ws-proxy/
├── cmd/
│   └── proxy/          # CLI приложение
├── internal/
│   ├── proxy/          # Ядро прокси
│   ├── socks5/         # SOCKS5 сервер
│   ├── websocket/      # WebSocket клиент
│   ├── mtproto/        # MTProto парсинг
│   └── config/         # Конфигурация
├── go.mod
├── Makefile
└── README.md

Сборка

# Все платформы
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
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
{
  "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 и замените файл.

Ещё вопросы?

Смотрите FAQ — там ответы на все вопросы!


Требования

  • 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

Ссылки