Добавляет исходящий (outbound) прокси для всех внешних соединений прокси-сервера:
WSS к датацентрам Telegram, TCP-fallback, Cloudflare Worker и Cloudflare Proxy.
Поддержаны socks5 и http (CONNECT), опциональная авторизация логин/пароль.
Реализовано: CLI-флаги --proxy-type/--proxy-host/--proxy-port/--proxy-user/--proxy-pass,
секция настроек в GUI с кнопкой «Тест», применение прокси во всех исходящих путях.
НЕ реализовано в этом PR (предлагаю как follow-up): авто-чтение переменных окружения http_proxy/https_proxy и поддержка no_proxy из #861.
Как настроено
GUI: секция «Исходящий прокси» (Тип/Host/Port/Логин/Пароль) + кнопка «Тест»,
которая повторяет боевой путь (SOCKS5/HTTP CONNECT к IP датацентра на 443).
CLI: флаги выше; при пустом типе/хосте прокси не используется.
Документация: docs/OutboundProxy.md + строка в навигации README.
Что проверено
С заданным прокси: трафик идёт через него (WS и fallback).
Без прокси: обычная маршрутизация и fronting работают без регрессий.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/1163
Author: @efkot-dev
Created: 7/29/2026
Status: ❌ Closed
Base:
main← Head:add-outbound-proxy📝 Commits (10+)
52e5d88feat: add outbound SOCKS5/HTTP proxy support (GUI & CLI)7396ebeUpdate README.md40e108bfeat(outbound): proxy test button, docs, harden connect timeouts50c15d9feat: relay byte-pipe fallback (HTTP long-poll, last in chain; requires outbound proxy on corp net)c6bf5b9relay: long-poll via --relay-url/--relay-token + --relay-only + chunked decode fixfc7cbf2Create Dockerfilec86344dAdd files via upload26412ebAdd files via upload84693daCreate main.yml9a11603Add files via upload📊 Changes
20 files changed (+1028 additions, -21 deletions)
View changed files
➕
.github/workflows/docker_build.yml(+25 -0)➕
.github/workflows/main.yml(+1 -0)➕
RelTg/Dockerfile(+9 -0)➕
RelTg/go.mod(+3 -0)➕
RelTg/main.go(+330 -0)➕
docs/OutboundProxy.md(+63 -0)📝
docs/README.md(+1 -1)📝
proxy/bridge.py(+95 -8)📝
proxy/config.py(+19 -2)➕
proxy/outbound_test.py(+54 -0)📝
proxy/raw_websocket.py(+16 -8)➕
proxy/relay_client.py(+162 -0)📝
proxy/stats.py(+2 -0)📝
proxy/tg_ws_proxy.py(+25 -0)📝
pyproject.toml(+1 -0)📝
ui/ctk_tray_ui.py(+173 -0)📝
ui/i18n/en.json(+19 -1)📝
ui/i18n/ru.json(+19 -1)📝
utils/default_config.py(+5 -0)📝
utils/tray_common.py(+6 -0)📄 Description
Что делает
Добавляет исходящий (outbound) прокси для всех внешних соединений прокси-сервера:
WSS к датацентрам Telegram, TCP-fallback, Cloudflare Worker и Cloudflare Proxy.
Поддержаны
socks5иhttp(CONNECT), опциональная авторизация логин/пароль.Relates #861
Скоуп (осознанно)
Реализовано: CLI-флаги
--proxy-type/--proxy-host/--proxy-port/--proxy-user/--proxy-pass,секция настроек в GUI с кнопкой «Тест», применение прокси во всех исходящих путях.
НЕ реализовано в этом PR (предлагаю как follow-up): авто-чтение переменных окружения
http_proxy/https_proxyи поддержкаno_proxyиз #861.Как настроено
которая повторяет боевой путь (
SOCKS5/HTTP CONNECTк IP датацентра на 443).docs/OutboundProxy.md+ строка в навигации README.Что проверено
отказ прокси в CONNECT / недоступность.
Файлы
proxy/config.py—get_outbound_proxy(), поля конфига.proxy/raw_websocket.py— прокси вconnect()(обе ветки подwait_for).proxy/bridge.py— прокси в_tcp_fallback.proxy/tg_ws_proxy.py— CLI-флаги.proxy/outbound_test.py— логика кнопки «Тест».ui/ctk_tray_ui.py— секция настроек + кнопка «Тест».ui/ru.json,ui/en.json— i18n-ключи.docs/OutboundProxy.md,README.md— документация и навигация.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
[PR #1163] Add outbound proxyto [PR #1163] [CLOSED] Add outbound proxy