Журнал изменений¶
4.9.0¶
Поддержка PROXY protocol v1/v2 (#50).
- PROXY protocol — приём заголовков HAProxy PROXY protocol v1 (текст) и v2 (бинарный) на клиентских портах. Необходимо при работе за балансировщиком нагрузки (HAProxy, nginx, AWS NLB), который передаёт IP клиента. Включение:
--proxy-protocol(CLI),proxy_protocol = true(TOML) илиPROXY_PROTOCOL=true(Docker). - Автоматическое определение v1 и v2, извлечение реального IP клиента, повторная проверка IP ACL по реальному адресу.
- Команда v2 LOCAL принимается для health-check зондов балансировщика.
- Новые метрики Prometheus:
teleproxy_proxy_protocol_connections_total,teleproxy_proxy_protocol_errors_total. - Исправлено: автоматически сгенерированный секрет не записывался в TOML-конфиг.
- Документация: полная SEO-оптимизация с уникальными мета-описаниями страниц, OpenGraph-тегами, JSON-LD и robots.txt.
- Переводы: русская документация на 100%, фарси и вьетнамский расширены до 38%.
- Добавлен TON-кошелёк как вариант пожертвования наряду с Tribute.
4.8.0¶
Зонды состояния DC (#47).
- Зонды задержки DC - периодическое измерение TCP-рукопожатия со всеми 5 дата-центрами Telegram, публикация в виде гистограмм Prometheus (
teleproxy_dc_latency_seconds), счётчиков ошибок и gauge последней задержки. Помогает операторам диагностировать медленную загрузку и выбирать оптимальную маршрутизацию DC. - По умолчанию отключено. Включение:
--dc-probe-interval 30(CLI),dc_probe_interval = 30(TOML) илиDC_PROBE_INTERVAL=30(Docker env). - Зонды выполняются только в master-процессе. Завершение отслеживается через неблокирующий poll для сохранения субмиллисекундной точности.
- Текстовый эндпоинт статистики включает поля задержки, среднего значения, счётчика и ошибок по каждому DC.
4.7.0¶
Посекретные квоты, лимиты уникальных IP и срок действия (#26).
- Квота трафика - ограничение суммарного объёма переданных данных по секрету; при исчерпании активные подключения закрываются, новые отклоняются. Настраивается в байтах или в читаемом формате (
quota = "10G") - Лимит уникальных IP - ограничение числа уникальных клиентских IP, одновременно использующих секрет (
max_ips = 5). Дополнительные подключения с уже подключённого IP всегда разрешены - Срок действия секрета - автоматическое отключение секрета после метки времени (
expires = 2025-12-31T23:59:59Z). Существующие подключения продолжают работать; отклоняются только новые - Счётчики отклонений по причинам в Prometheus и текстовой статистике (
rejected_quota,rejected_ips,rejected_expired) - Docker env:
SECRET_QUOTA_N,SECRET_MAX_IPS_N,SECRET_EXPIRES_N - Поддержка upstream-прокси SOCKS5 (#22)
- Страница быстрого развёртывания в облаке
- Документация: инструкции установки/обновления, документация SOCKS5, ссылка на Observatory
4.6.0¶
Устойчивость к DPI и эксплуатационные улучшения.
- Вариативность размера ServerHello расширена с ±1 до ±32 байт, имитируя естественное разнообразие размеров цепочки сертификатов и сессионных тикетов реальных TLS-серверов
- Фрагментация ServerHello: ServerHello и CCS+AppData теперь отправляются как отдельные TCP-сегменты, нейтрализуя DPI, который сопоставляет полный ответ рукопожатия в одном пакете
- Healthcheck Docker учитывает пользовательский
STATS_PORT- ранее был жёстко задан 8888, теперь использует${STATS_PORT:-8888}(#38) install.shподдерживает несколько секретов черезSECRETс разделителем-запятой или пронумерованныеSECRET_N- Эндпоинт
/linkотдаёт ссылки подключения как HTML-страницы со сканируемыми QR-кодами
Новая документация: Устойчивость к DPI - серверные контрмеры, рекомендуемая настройка и инструменты обхода на стороне клиента.
Обнаружение на стороне клиента
Основной вектор обнаружения MTProxy fake-TLS в России - TLS-отпечаток клиента Telegram, который невозможно исправить на стороне сервера. Telegram Desktop исправил несколько артефактов отпечатка; обновляйте клиенты. Для затронутых сетей помогут инструменты обхода DPI на стороне клиента: zapret и GoodbyeDPI.
4.5.0¶
QR-коды для ссылок подключения.
- Подкоманда
teleproxy linkвыводит URL прокси и отображает сканируемый QR-код в терминале с помощью символов UTF-8 half-block - Docker
start.shиinstall.shтеперь автоматически показывают QR-коды при запуске - наведите камеру телефона на экран для подключения - Встроенный nayuki/QR-Code-generator (MIT) для рендеринга QR без внешних зависимостей на любой платформе
- E2E-тесты декодируют отрисованный QR-код с помощью pyzbar и проверяют совпадение с ожидаемым URL
- Документация: новая страница «Ссылки подключения» (en + ru)
4.4.0¶
- Диагностическая подкоманда
teleproxy check- валидация конфигурации и тестирование подключений перед приёмом клиентов. Проверяет доступность DC, NTP-дрейф часов, зондирование домена fake-TLS и совпадение SNI/DNS. Коды выхода: 0/1/2 (успех/ошибка/неверные аргументы).
4.3.0¶
Устойчивость подключений в прямом режиме.
- Автоопределение IPv6: проверка при запуске, включение без
-6если доступен - Несколько адресов на DC с синхронным failover при ошибке подключения
- Повторные попытки подключения с экспоненциальным backoff (200-800 мс, 3 попытки)
--dc-override dc_id:host:portдля добавления или замены адресов DC (повторяемый). Docker:DC_OVERRIDE=2:1.2.3.4:443,2:5.6.7.8:443- Новая метрика:
direct_dc_retries/teleproxy_direct_dc_retries_total
4.2.1¶
- Исправление сборки aarch64: удалён неиспользуемый x86-специфичный include
sys/io.h - Добавлена нативная ARM64 glibc-сборка в CI (выявляет платформоспецифичные проблемы, скрытые Alpine/musl)
4.2.0¶
- Флаг
--stats-allow-net CIDRдля расширения доступа к эндпоинту статистики за пределы RFC1918-диапазонов (повторяемый). Docker:STATS_ALLOW_NET=100.64.0.0/10,fd00::/8
4.1.0¶
Улучшения совместимости с транспортным протоколом MTProto.
- Обнаружение и логирование транспортных кодов ошибок (-404, -429 и т.д.) от DC в прямом режиме
- Обнаружение транспортных кодов ошибок в пути разбора клиентских данных medium mode
- Счётчик пакетов quick ACK:
teleproxy_quickack_packets_total - Счётчик транспортных ошибок:
teleproxy_transport_errors_total
4.0.0¶
Ребрендинг в Teleproxy. Бинарный файл переименован из mtproto-proxy в teleproxy.
- Имя бинарного файла:
teleproxy(былоmtproto-proxy) - Префикс метрик Prometheus:
teleproxy_(былоmtproxy_) - Docker пользователь/пути:
/opt/teleproxy/(было/opt/mtproxy/) - Переменные окружения:
TELEPROXY_*(старыеMTPROXY_*принимаются с предупреждением об устаревании) - Docker-образ включает symlink обратной совместимости
mtproto-proxy -> teleproxy - CLI-флаги и поведение без изменений