https://github.com/y0sy4/tg-ws-proxy-go
Local SOCKS5 proxy for Telegram Desktop with HTTP support, auto-config, and auto-update
https://github.com/y0sy4/tg-ws-proxy-go
cross-platform golang http-proxy linux macos mtproto proxy socks5 telegram telegram-desktop websocket windows
Last synced: 3 months ago
JSON representation
Local SOCKS5 proxy for Telegram Desktop with HTTP support, auto-config, and auto-update
- Host: GitHub
- URL: https://github.com/y0sy4/tg-ws-proxy-go
- Owner: y0sy4
- License: mit
- Created: 2026-03-22T16:38:36.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-03-22T19:52:51.000Z (3 months ago)
- Last Synced: 2026-03-23T07:31:51.340Z (3 months ago)
- Topics: cross-platform, golang, http-proxy, linux, macos, mtproto, proxy, socks5, telegram, telegram-desktop, websocket, windows
- Language: Go
- Homepage: https://github.com/y0sy4/tg-ws-proxy-go/releases
- Size: 57.6 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# TG WS Proxy Go
[](https://github.com/y0sy4/tg-ws-proxy-go/releases)
[](LICENSE)
**SOCKS5-прокси для Telegram Desktop на Go.** Ускоряет Telegram через WebSocket к серверам Telegram.
---
## 📥 Скачать (v2.0.6)
| Версия | Windows | Linux | macOS |
|--------|---------|-------|-------|
| **Full** | [⬇️ .exe](.../v2.0.6/TgWsProxy.exe) (9.3 MB) | [⬇️ amd64](.../v2.0.6/TgWsProxy_linux_amd64) (8.9 MB) | [⬇️ Intel](.../v2.0.6/TgWsProxy_darwin_amd64) / [⬇️ ARM](.../v2.0.6/TgWsProxy_darwin_arm64) |
| **Lite** | [⬇️ .exe](.../v2.0.6/TgWsProxy_lite.exe) (5.5 MB) | [⬇️ amd64](.../v2.0.6/TgWsProxy_lite_linux) (5.3 MB) | [⬇️ Intel](.../v2.0.6/TgWsProxy_lite_darwin) / [⬇️ ARM](.../v2.0.6/TgWsProxy_lite_darwin_arm) |
**Какую версию выбрать?**
| Версия | Размер | Функции | Для кого |
|--------|--------|---------|----------|
| **Full** | ~9 MB | Авто-обновление, HTTP proxy, upstream proxy, конфиги, автозапуск Telegram | Обычные пользователи |
| **Lite** | ~5.3 MB | Только SOCKS5 прокси, `--test-dc` | Роутеры (OpenWRT), серверы, минималисты |
---
## 🚀 Быстрый старт
### Windows
1. Скачай `TgWsProxy_windows_amd64.exe`
2. Дважды кликни
3. Telegram откроет настройки прокси → нажми "Включить"
### Linux/macOS
```bash
chmod +x TgWsProxy_*
./TgWsProxy_linux_amd64 # или TgWsProxy_darwin_amd64
```
**Всё!** Telegram работает через прокси.
---
## ⚙️ Опции (для профи)
```bash
TgWsProxy.exe [флаги]
```
| Флаг | Описание | По умолчанию |
|------|----------|--------------|
| `--port` | Порт SOCKS5 | 1080 |
| `--host` | Хост | 127.0.0.1 |
| `--dc-ip` | DC:IP (через запятую) | авто |
| `--auth` | Логин:пароль для прокси | — |
| `--http-port` | HTTP прокси (для браузеров) | 0 (выкл) |
| `--upstream-proxy` | Цепочка через другой прокси | — |
| `-v` | Подробные логи | false |
| `--test-dc` | Тест DC и выход | — |
| `--auto-update` | Авто-обновление | false (безопасность) |
### Примеры
**Просто запустить:**
```bash
TgWsProxy.exe
```
**HTTP прокси для браузеров (порт 8080):**
```bash
TgWsProxy.exe --http-port 8080
```
Теперь браузер можно настроить на `127.0.0.1:8080`.
**Через другой прокси (Tor, SSH):**
```bash
TgWsProxy.exe --upstream-proxy "socks5://127.0.0.1:9050"
```
**С паролем:**
```bash
TgWsProxy.exe --auth "user:pass"
```
**Диагностика DC (перед запуском):**
```bash
# Проверить доступность Telegram DC
TgWsProxy.exe --test-dc
# С verbose логами
TgWsProxy.exe --test-dc -v
# Тест конкретных DC
TgWsProxy.exe --test-dc --dc-ip "2:149.154.167.220,4:149.154.167.220"
```
**Авто-обновление (только если доверяете источнику):**
```bash
TgWsProxy.exe --auto-update
```
⚠️ **Внимание:** Авто-обновление отключено по умолчанию из соображений безопасности. Бинарники скачиваются без проверки GPG-подписи.
---
## 🔧 Что нового в v2.0.6
- 🛡️ **Безопасность:** авто-обновление отключено по умолчанию
- 🔍 **--test-dc:** диагностика доступности Telegram DC
- 📡 **OpenWRT:** полная поддержка роутеров + документация
- 🐛 **Issue #5:** решение проблемы с медиа на роутерах
- 📝 **README:** секция для OpenWRT с примерами
[📖 Полные изменения](RELEASE_NOTES_v2.0.6.md)
---
## 🔧 Что было в v2.0.5
- ⚡ **atomic.Int64** для статистики — 0 блокировок
- 🧹 **stdlib вместо велосипедов** — -100 строк
- 🚀 **оптимизация аллокаций** — MTProto быстрее на 50%
- 📱 **Android/iOS** — все оптимизации совместимы
[📖 Полные изменения](RELEASE_NOTES_v2.0.5.md)
---
## 📊 Почему Go?
| | Python | Go |
|--|--------|-----|
| Размер | ~50 MB | **~8 MB** |
| Зависимости | pip | **stdlib** |
| Запуск | ~500 ms | **~50 ms** |
| Память | ~50 MB | **~10 MB** |
---
## 🗂️ Структура
```
tg-ws-proxy-go/
├── cmd/proxy/ # CLI приложение
├── internal/
│ ├── proxy/ # Ядро прокси
│ ├── socks5/ # SOCKS5 сервер
│ ├── websocket/ # WebSocket клиент
│ ├── mtproto/ # MTProto парсинг
│ ├── pool/ # WebSocket pooling
│ ├── config/ # Конфигурация
│ └── telegram/ # Авто-настройка Telegram
├── mobile/ # Android/iOS bindings
├── go.mod
├── Makefile
└── README.md
```
---
## 🛠️ Сборка
```bash
# Windows
go build -o TgWsProxy.exe ./cmd/proxy
# Linux
GOOS=linux GOARCH=amd64 go build -o TgWsProxy_linux ./cmd/proxy
# macOS
GOOS=darwin GOARCH=amd64 go build -o TgWsProxy_macos_amd64 ./cmd/proxy
GOOS=darwin GOARCH=arm64 go build -o TgWsProxy_macos_arm64 ./cmd/proxy
# Все платформы
make all
```
---
## 📱 Android/iOS
```bash
# AAR библиотека
gomobile bind -target android -o android/tgwsproxy.aar ./mobile
```
Все оптимизации совместимы с gomobile (Go 1.21+).
---
## 📡 OpenWRT / Роутеры
### Проблема: текст работает, медиа нет
**Причина:** Telegram использует разные DC для текста и медиа. На роутерах некоторые DC могут быть недоступны.
**Решение 1: Использовать конкретный DC IP**
```bash
# Протестировать DC
./tg-ws-proxy-go --test-dc
# Запустить с рабочими DC (пример для Issue #5)
./tg-ws-proxy-go --dc-ip "2:149.154.167.220,4:149.154.167.220" --host 0.0.0.0 --port 1080
```
**Решение 2: Для веб-версии Telegram**
Добавьте в `/etc/hosts` на роутере:
```
149.154.167.220 web.telegram.org telegram.org t.me telesco.pe
```
**Решение 3: Upstream proxy (для обхода блокировок)**
```bash
# Через Tor
./tg-ws-proxy-go --upstream-proxy "socks5://127.0.0.1:9050"
# Через SSH туннель
./tg-ws-proxy-go --upstream-proxy "socks5://user:pass@proxy-server:port"
```
### Сборка для OpenWRT (ARM64)
```bash
# На ПК (кросс-компиляция)
GOOS=linux GOARCH=arm64 go build -o tg-ws-proxy-go ./cmd/proxy
# Копирование на роутер
scp tg-ws-proxy-go root@192.168.1.1:/usr/bin/
chmod +x /usr/bin/tg-ws-proxy-go
# Запуск
/usr/bin/tg-ws-proxy-go --host 0.0.0.0 --port 1080
```
### Автозапуск (init.d скрипт)
```bash
cat > /etc/init.d/tg-ws-proxy << 'EOF'
#!/bin/sh /etc/rc.common
START=99
start() {
/usr/bin/tg-ws-proxy-go --dc-ip "2:149.154.167.220,4:149.154.167.220" --host 0.0.0.0 --port 1080 &
}
stop() {
killall tg-ws-proxy-go
}
EOF
chmod +x /etc/init.d/tg-ws-proxy
/etc/init.d/tg-ws-proxy enable
/etc/init.d/tg-ws-proxy start
```
---
## 🔍 Решение проблем
**Прокси не подключается:**
1. Проверь, запущен ли `TgWsProxy.exe`
2. Убедись, Telegram настроен на `127.0.0.1:1080`
3. Проверь логи: `%APPDATA%\TgWsProxy\proxy.log`
**Telegram не открывается:**
Открой вручную: `tg://socks?server=127.0.0.1&port=1080`
**Антивирус блокирует:**
Ложное срабатывание. Добавь в исключения. Код открытый.
---
## 📖 Документация
- [❓ FAQ](FAQ.md) — частые вопросы
- [📝 Release Notes](RELEASE_NOTES_v2.0.5.md) — изменения v2.0.5
- [👨💻 QWEN.md](QWEN.md) — guidelines для разработчиков
---
## 🤝 Contributing
1. Fork → branch → PR
2. `go test ./...`
3. `gofmt -w .`
4. Без эмоций. По делу.
---
## 📄 License
MIT License
---
**v2.0.5** | Built with ❤️ using Go 1.21