|
|
||
|---|---|---|
| .github | ||
| packaging | ||
| proxy | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| icon.ico | ||
| linux.py | ||
| macos.py | ||
| pyproject.toml | ||
| windows.py | ||
README.md
[!CAUTION]
Реакция антивирусов
Windows Defender часто ошибочно помечает приложение как Wacatac.
Если вы не можете скачать из-за блокировки, то:
- Попробуйте скачать версию win7 (она ничем не отличается в плане функционала)
- Отключите антивирус на время скачивания, добавьте файл в исключения и включите обратно
Всегда проверяйте, что скачиваете из интернета, тем более из непроверенных источников. Всегда лучше смотреть на детекты широко известных антивирусов на VirusTotal
TG WS Proxy
Локальный SOCKS5-прокси для Telegram Desktop, который перенаправляет трафик через WebSocket-соединения к указанным серверам, помогая частично ускорить работу Telegram.
Ожидаемый результат аналогичен прокидыванию hosts для Web Telegram: ускорение загрузки и скачивания файлов, загрузки сообщений и части медиа.
Как это работает
Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TG WS Proxy → WSS (kws*.web.telegram.org) → Telegram DC
- Приложение поднимает локальный SOCKS5-прокси на
127.0.0.1:1080 - Перехватывает подключения к IP-адресам Telegram
- Извлекает DC ID из MTProto obfuscation init-пакета
- Устанавливает WebSocket (TLS) соединение к соответствующему DC через домены
kws{N}.web.telegram.org - Если WS недоступен (302 redirect) — автоматически переключается на прямое TCP-соединение
🚀 Быстрый старт
Windows
Перейдите на страницу релизов и скачайте TgWsProxy.exe. Он собирается автоматически через Github Actions из открытого исходного кода.
При первом запуске откроется окно с инструкцией по подключению Telegram Desktop. Приложение сворачивается в системный трей.
Меню трея:
- Открыть в Telegram — автоматически настроить прокси через
tg://socksссылку - Перезапустить прокси — перезапуск без выхода из приложения
- Настройки... — GUI-редактор конфигурации
- Открыть логи — открыть файл логов
- Выход — остановить прокси и закрыть приложение
Установка из исходников
pip install -r requirements.txt
Windows (Tray-приложение)
python windows.py
Консольный режим
python proxy/tg_ws_proxy.py [--port PORT] [--dc-ip DC:IP ...] [-v]
Аргументы:
| Аргумент | По умолчанию | Описание |
|---|---|---|
--host |
127.0.0.1 |
IP-адрес SOCKS5-прокси |
--port |
1080 |
Порт SOCKS5-прокси |
-u, -user-P,--password |
выкл. | Логин и Пароль для авторизации в SOCKS5-прокси |
--dc-ip |
2:149.154.167.220, 4:149.154.167.220 |
Целевой IP для DC (можно указать несколько раз) |
-v, --verbose |
выкл. | Подробное логирование (DEBUG) |
Примеры:
# Стандартный запуск
python proxy/tg_ws_proxy.py
# Другой порт и дополнительные DC
python proxy/tg_ws_proxy.py --port 9050 --dc-ip 1:149.154.175.205 --dc-ip 2:149.154.167.220
# С подробным логированием
python proxy/tg_ws_proxy.py -v
Настройка Telegram Desktop
Автоматически
ПКМ по иконке в трее → «Открыть в Telegram»
Вручную
- Telegram → Настройки → Продвинутые настройки → Тип подключения → Прокси
- Добавить прокси:
- Тип: SOCKS5
- Сервер:
127.0.0.1 - Порт:
1080 - Логин/Пароль: оставить пустыми
Конфигурация
Tray-приложение хранит данные в %APPDATA%/TgWsProxy:
{
"port": 1080,
"dc_ip": [
"2:149.154.167.220",
"4:149.154.167.220"
],
"verbose": false
}
Автоматическая сборка
Проект содержит спецификацию PyInstaller (windows.spec) и GitHub Actions workflow (.github/workflows/build.yml) для автоматической сборки.
pip install pyinstaller
pyinstaller packaging/windows.spec
Лицензия
FORK
1) Linux/NAS
Сборка запуск
sudo apt update && sudo apt install git
git clone https://github.com/borisovmsw/tg-ws-proxy.git
cd tg-ws-proxy
docker build -t tg-proxy .
docker run -d --name tg-proxy -p 1080:1080 tg-proxy:latest -u userx -P 123456
Подключаемся и проверяем
Локально
tg://socks/?server=127.0.0.1&port=1080&user=userx&pass=123456
Удаленно
tg://socks/?server=192.168.1.139&port=1080&user=userx&pass=123456
2) Openwrt ARM64
Настраиваем компьютер на компиляцию под ARM64 процессор роутера
docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --name mybuilder --use
docker buildx inspect --bootstrap
Собираем образ для роутера
docker buildx build --platform linux/arm64 -t tg-proxy-flint:latest --load .
Сохраняем образ в файл
docker save tg-proxy-flint:latest -o tg-proxy-flint.tar
Закидываем образ на роутер
scp -O tg-proxy-flint.tar root@192.168.1.1:/tmp/
Подключаемся к роутеру
ssh root@192.168.1.1
Загружаем образ и удалям его
docker load -i /tmp/tg-proxy-flint.tar && rm /tmp/tg-proxy-flint.tar
Настройки роутера
Заходим в настройки Firewall - Traffic Rules Создаем Rule с именем Docker
- Source zone - docker
- Destination zone - WAN
- на закладке Advanced Settings оставляем только ip4
Далее самое главное!!! Включаем WAN для Docker, информации крайне мало про эту срочку, времени на ее поиск ушло не мало
Комментируем строчку list blocked_interfaces 'wan' в файле /etc/config/dockerd
sed -i "s/^\([[:space:]]*\)list blocked_interfaces 'wan'/#\1&/" /etc/config/dockerd
Перезагружаем роутер или же выполняем команду
/etc/init.d/dockerd restart
Запускаем контейнер только на внутреннем IP
docker run -d --name tg-proxy -p 192.168.1.1:1080:1080 tg-proxy-flint:latest -u userx -P 123456
Смотрим логи, практически все INFO на каждое соединение заменил на DEBUG, чтобы не тратить ресурс постоянной памяти
docker logs tg-proxy
Тестируем
tg://socks/?server=192.168.1.1&port=1080&user=userx&pass=123456