This commit is contained in:
ВяткинАртём
2026-03-27 16:45:55 +03:00
parent 9026b88d0a
commit 549bc255f1
683 changed files with 222915 additions and 2128 deletions
+98 -119
View File
@@ -14,8 +14,6 @@
**Локальный SOCKS5-прокси** для Telegram Desktop, который **ускоряет работу Telegram**, перенаправляя трафик через WebSocket-соединения. Данные передаются в том же зашифрованном виде, а для работы не нужны сторонние сервера.
<img width="529" height="487" alt="image" src="https://github.com/user-attachments/assets/6a4cf683-0df8-43af-86c1-0e8f08682b62" />
## Как это работает
```
@@ -30,90 +28,15 @@ Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TG WS Proxy → WSS → Telegra
## 🚀 Быстрый старт
### Windows
### Установка из исходников (консольный прокси)
Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте **`TgWsProxy_windows.exe`**. Он собирается автоматически через [Github Actions](https://github.com/Flowseal/tg-ws-proxy/actions) из открытого исходного кода.
При первом запуске откроется окно с инструкцией по подключению Telegram Desktop. Приложение сворачивается в системный трей.
**Меню трея:**
- **Открыть в Telegram** — автоматически настроить прокси через `tg://socks` ссылку
- **Перезапустить прокси** — перезапуск без выхода из приложения
- **Настройки...** — GUI-редактор конфигурации (в т.ч. версия приложения, опциональная проверка обновлений с GitHub)
- **Открыть логи** — открыть файл логов
- **Выход** — остановить прокси и закрыть приложение
При первом запуске после старта может появиться запрос об открытии страницы релиза, если на GitHub вышла новая версия (отключается в настройках).
### macOS
Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте **`TgWsProxy_macos_universal.dmg`** — универсальная сборка для Apple Silicon и Intel.
1. Открыть образ
2. Перенести **TG WS Proxy.app** в папку **Applications**
3. При первом запуске macOS может попросить подтвердить открытие: **Системные настройки → Конфиденциальность и безопасность → Всё равно открыть**
### Linux
Для Debian/Ubuntu скачайте со [страницы релизов](https://github.com/Flowseal/tg-ws-proxy/releases) пакет **`TgWsProxy_linux_amd64.deb`**.
Для Arch и Arch-Based дистрибутивов подготовлены пакеты в AUR: [tg-ws-proxy-bin](https://aur.archlinux.org/packages/tg-ws-proxy-bin), [tg-ws-proxy-git](https://aur.archlinux.org/packages/tg-ws-proxy-git), [tg-ws-proxy-cli](https://aur.archlinux.org/packages/tg-ws-proxy-cli)
```shell
# Установка без AUR-helper
git clone https://aur.archlinux.org/tg-ws-proxy-bin.git
cd tg-ws-proxy-bin
makepkg -si
# При помощи AUR-helper
paru -S tg-ws-proxy-bin
# Если вы установили -cli пакет, то запуск осуществляется через systemctl, где 8888 это номер порта прокси:
sudo systemctl start tg-ws-proxy-cli@8888
```
Для остальных дистрибутивов можно использовать **`TgWsProxy_linux_amd64`** (бинарный файл для x86_64).
```bash
chmod +x TgWsProxy_linux_amd64
./TgWsProxy_linux_amd64
```
При первом запуске откроется окно с инструкцией. Приложение работает в системном трее (требуется AppIndicator).
## Установка из исходников
### Консольный proxy
Для запуска только SOCKS5/WebSocket proxy без tray-интерфейса достаточно базовой установки:
Для запуска только SOCKS5/WebSocket proxy без графического интерфейса достаточно базовой установки:
```bash
pip install -e .
tg-ws-proxy
```
### Windows 7/10+
```bash
pip install -e .
tg-ws-proxy-tray-win
```
### macOS
```bash
pip install -e .
tg-ws-proxy-tray-macos
```
### Linux
```bash
pip install -e .
tg-ws-proxy-tray-linux
```
### Консольный режим из исходников
```bash
@@ -125,6 +48,16 @@ tg-ws-proxy [--port PORT] [--host HOST] [--dc-ip DC:IP ...] [-v]
| Аргумент | По умолчанию | Описание |
|---|---|---|
| `--port` | `1080` | Порт SOCKS5-прокси |
| `--host` | `127.0.0.1` | Хост для bind |
| `--bind-mode` | `local` | Режим работы: local (127.0.0.1), network (0.0.0.0), internet (0.0.0.0) |
| `--dc-ip` | `2:149.154.167.220 4:149.154.167.220` | IP адреса для DC в формате "DC:IP" |
| `--log-level` | `INFO` | Уровень логирования: DEBUG, INFO, WARNING, ERROR, CRITICAL |
| `--quiet` | `false` | Отключить логирование |
| `--log-file` | `None` | Путь к файлу логов |
| `--log-max-mb` | `100` | Максимальный размер файла логов в MB |
| `--log-backups` | `3` | Количество backup файлов логов |
| `--buf-kb` | `256` | Размер буфера сокета в KB |
| `--pool-size` | `4` | Размер пула WS соединений на DC |
| `--host` | `127.0.0.1` | Хост SOCKS5-прокси |
| `--dc-ip` | `2:149.154.167.220`, `4:149.154.167.220` | Целевой IP для DC (можно указать несколько раз) |
| `-v`, `--verbose` | выкл. | Подробное логирование (DEBUG) |
@@ -142,60 +75,106 @@ tg-ws-proxy --port 9050 --dc-ip 1:149.154.175.205 --dc-ip 2:149.154.167.220
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-win = "windows:main"
tg-ws-proxy-tray-macos = "macos:main"
tg-ws-proxy-tray-linux = "linux:main"
```
## Настройка Telegram Desktop
### Автоматически
ПКМ по иконке в трее → **«Открыть в Telegram»**
### Вручную
1. Telegram → **Настройки****Продвинутые настройки****Тип подключения****Прокси**
2. Добавить прокси:
- **Тип:** SOCKS5
- **Сервер:** `127.0.0.1`
- **Порт:** `1080`
- **Порт:** `1080` (или другой порт, указанный при запуске)
- **Логин/Пароль:** оставить пустыми
## Конфигурация
## Конфигурация через переменные окружения
Tray-приложение хранит данные в:
Прокси поддерживает конфигурацию через переменные окружения, что удобно для Docker и CI/CD окружений.
- **Windows:** `%APPDATA%/TgWsProxy`
- **macOS:** `~/Library/Application Support/TgWsProxy`
- **Linux:** `~/.config/TgWsProxy` (или `$XDG_CONFIG_HOME/TgWsProxy`)
### Доступные переменные окружения
```json
{
"host": "127.0.0.1",
"port": 1080,
"dc_ip": [
"2:149.154.167.220",
"4:149.154.167.220"
],
"verbose": false,
"buf_kb": 256,
"pool_size": 4,
"log_max_mb": 5.0,
"check_updates": true
}
| Переменная | По умолчанию | Описание |
|---|---|---|
| `TG_WS_PROXY_HOST` | `0.0.0.0` | Хост для bind |
| `TG_WS_PROXY_PORT` | `1080` | Порт SOCKS5-прокси |
| `TG_WS_PROXY_LOGGER` | `true` | Включить логирование (true/false) |
| `TG_WS_PROXY_LOG_LEVEL` | `INFO` | Уровень логирования |
| `TG_WS_PROXY_LOG_FILE` | (пусто) | Путь к файлу логов |
| `TG_WS_PROXY_LOG_MAX_MB` | `100` | Макс. размер файла логов в MB |
| `TG_WS_PROXY_LOG_BACKUPS` | `3` | Количество backup файлов |
| `TG_WS_PROXY_BIND_MODE` | `network` | Режим работы: `local`, `network`, `internet` |
| `TG_WS_PROXY_DC_IPS` | `2:149.154.167.220 4:149.154.167.220` | IP адреса DC |
| `TG_WS_PROXY_BUF_KB` | `256` | Размер буфера сокета в KB |
| `TG_WS_PROXY_POOL_SIZE` | `4` | Размер пула WS соединений |
### Режимы работы (BIND_MODE)
- **`local`** - только локальный доступ (`127.0.0.1`)
- **`network`** - доступ в локальной сети (`0.0.0.0`)
- **`internet`** - доступ из интернета (`0.0.0.0`) - используйте с firewall
### Пример использования
```bash
# Установка переменных окружения
export TG_WS_PROXY_PORT=9050
export TG_WS_PROXY_BIND_MODE=local
export TG_WS_PROXY_LOGGER=false
# Запуск с переменными окружения
tg-ws-proxy
# Или с .env файлом
cp .env.example .env
# редактируем .env
tg-ws-proxy
```
Ключ **`check_updates`** — при `true` при запросе к GitHub сравнивается версия с последним релизом (только уведомление и ссылка на страницу загрузки). На Windows в конфиге может быть **`autostart`** (автозапуск при входе в систему).
## Docker
### Запуск через Docker
```bash
# Сборка образа
docker build -t tg-ws-proxy .
# Запуск с настройками по умолчанию
docker run -d --name tg-proxy -p 1080:1080 tg-ws-proxy
# Запуск с кастомными настройками
docker run -d \
--name tg-proxy \
-p 9050:9050 \
-e TG_WS_PROXY_PORT=9050 \
-e TG_WS_PROXY_BIND_MODE=network \
-e TG_WS_PROXY_LOGGER=true \
-e TG_WS_PROXY_LOG_LEVEL=DEBUG \
tg-ws-proxy
```
### Docker Compose
```yaml
version: '3.8'
services:
tg-ws-proxy:
build: .
ports:
- "1080:1080"
environment:
- TG_WS_PROXY_PORT=1080
- TG_WS_PROXY_BIND_MODE=network
- TG_WS_PROXY_LOGGER=true
- TG_WS_PROXY_LOG_LEVEL=INFO
restart: unless-stopped
```
### Coolify / PaaS
При развертывании в Coolify или других PaaS платформах, просто установите переменные окружения в настройках приложения. Все переменные, начинающиеся с `TG_WS_PROXY_`, будут автоматически применены.
## Конфигурация через аргументы командной строки
Прокси также поддерживает конфигурацию через аргументы командной строки (имеют приоритет над переменными окружения).
## Автоматическая сборка
@@ -208,7 +187,7 @@ Tray-приложение хранит данные в:
- Windows 7 (x32) для `TgWsProxy_windows_7_32bit.exe`
- Intel macOS 10.15+
- Apple Silicon macOS 11.0+
- Linux x86_64 (требуется AppIndicator для системного трея)
- Linux x86_64
## Лицензия