feat(mtproxy): прозрачный Telegram прокси через Cloudflare WebSocket

Transparent proxy для Telegram — работает без настройки клиентов.
iptables REDIRECT перехватывает трафик к Telegram DC и пробрасывает
через Cloudflare WebSocket (pclead.co.uk).

Реализовано:
- Прозрачный режим: все устройства в сети работают автоматически
- MTProxy режим (опционально): tg://proxy ссылка для ручной настройки
- DNS кеш с stale fallback при DNS сбоях
- Retry (3 попытки) на каждое WS подключение
- Init script S97tg-mtproxy с автоперезапуском и conntrack flush
- Меню [T] с автоскачиванием бинарника для текущей архитектуры
- Бинарники для всех архитектур в GitHub releases
- Instagram DNS redirect при установке (ip host через ndmc)
- Сохранение пользовательских настроек при переустановке [1]
- LICENSE (MIT), README обновлён

Архитектура: Telegram → роутер(:9443) → WSS → Cloudflare CDN → Telegram DC

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Necronicle 2026-04-10 01:17:51 +03:00
parent 32da02314e
commit 2a84fd6f1c
16 changed files with 1222 additions and 553 deletions

View file

@ -6,7 +6,9 @@
- USDT (ERC20): `0xA1D6d7d339f05C1560ecAF0c5CB8c4dc80Dc46A9`
**Важно:** после установки применяются autocircular стратегии. Им нужно время и несколько попыток, чтобы подстроиться под DPI. Если сайт не открывается сразу — дайте странице несколько раз перезагрузиться. Параметры перебираются автоматически, после чего сайт обычно начинает открываться.
**Важно:** после установки применяются autocircular стратегии. Им нужно время и несколько попыток, чтобы подстроиться под сетевую среду. Если сайт не открывается сразу — дайте странице несколько раз перезагрузиться. Параметры перебираются автоматически, после чего соединение обычно стабилизируется.
> Данный проект предназначен для исследования сетевых протоколов и изучения работы систем анализа трафика. Используется исключительно в учебных целях.
---
@ -14,7 +16,7 @@
z2k — модульный установщик zapret2 для роутеров Keenetic с Entware.
Цель проекта: максимально упростить установку zapret2 на Keenetic и дать рабочий набор стратегий с автоподбором (autocircular) и поддержкой IPv6 там, где это возможно.
Цель проекта: упростить установку zapret2 на Keenetic и предоставить набор сетевых стратегий с автоподбором (autocircular) и поддержкой IPv6.
---
@ -22,14 +24,15 @@ z2k — модульный установщик zapret2 для роутеров
- Установка zapret2 (openwrt-embedded релиз) без компиляции, с проверкой работоспособности `nfqws2`
- Три TCP autocircular профиля с разными стратегиями:
- **RKN**заблокированные сайты (TCP/TLS + HTTP) — 45 стратегий
- **RKN**список ресурсов (TCP/TLS + HTTP) — 45 стратегий
- **YouTube TCP** — youtube.com и связанные домены — 22 стратегии
- **YouTube GV** — googlevideo CDN (стриминг) — 22 стратегии
- QUIC autocircular профиль: YouTube QUIC (UDP/443) — 12 стратегий с z2k morph
- Discord профили:
- TCP: hostlist Discord включён в RKN-профиль
- UDP voice/video: `circular_locked` (стратегия закрепляется per-domain)
- Hostlist режим: стратегии применяются только к доменам из списков (не "на весь интернет")
- Telegram: прозрачное проксирование через Cloudflare WebSocket (тестовая функция)
- Hostlist режим: стратегии применяются только к доменам из списков
- Whitelist: домены-исключения (госуслуги, Steam, VK, Яндекс и др.) не обрабатываются
- IPv6: автоопределение и включение правил если поддерживается
- Списки доменов устанавливаются автоматически
@ -84,8 +87,9 @@ curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k.sh | sh
| **[5]** | Удалить zapret2 |
| **[A]** | Режим без хостлистов (Austerus) — обработка всего TLS-трафика |
| **[W]** | Whitelist — управление списком исключений |
| **[R]** | RST-фильтр — блокировка поддельных TCP RST от ТСПУ |
| **[F]** | Silent fallback для РКН — ускоренная ротация при тихих блокировках |
| **[R]** | RST-фильтр — фильтрация аномальных TCP RST |
| **[F]** | Silent fallback — ускоренная ротация при отсутствии ответа |
| **[T]** | Telegram прокси — прозрачное проксирование через WebSocket |
| **[S]** | Скрипты custom.d |
---
@ -96,9 +100,9 @@ curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k.sh | sh
### Детекция неудач
- **Стандартный детектор** — TCP ретрансмиссии (сервер не отвечает) и RST от DPI
- **TLS alert детектор** (`z2k_tls_alert_fatal`) — ловит TLS fatal alert от ТСПУ. Включён по умолчанию для РКН
- **Silent fallback** — детектор тихих чёрных дыр: если несколько ClientHello подряд без ответа, принудительно ротирует стратегию. Включается через меню [F]
- **Стандартный детектор** — TCP ретрансмиссии и аномальные RST
- **TLS alert детектор** (`z2k_tls_alert_fatal`) — анализирует TLS alert. Включён по умолчанию для РКН
- **Silent fallback** — детектор отсутствия ответа: если несколько запросов подряд без ответа, принудительно ротирует стратегию. Включается через меню [F]
### Персистентность
@ -106,6 +110,14 @@ curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k.sh | sh
---
## Telegram прокси
Прозрачное проксирование Telegram через Cloudflare WebSocket. Не требует настройки на устройствах — работает автоматически для всех устройств в сети.
Включается через меню `[T]`.
---
## Управление сервисом
```bash
@ -119,14 +131,14 @@ curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k.sh | sh
## Полная зачистка (z2k_cleanup)
Если zapret или zapret2 были удалены некорректно, остались зависшие процессы `nfqws`/`nfqws2`, мусорные iptables правила или директории — используйте скрипт полной зачистки:
Если zapret или zapret2 были удалены некорректно, остались зависшие процессы или мусорные правила — используйте скрипт полной зачистки:
```bash
curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k_cleanup.sh | sh
```
**ВНИМАНИЕ:** Скрипт удаляет ВСЁ связанное с zapret и zapret2:
- Убивает все процессы `nfqws` и `nfqws2` (kill -9)
- Останавливает все процессы `nfqws` и `nfqws2`
- Удаляет init-скрипты, netfilter хуки, iptables цепочки
- **Полностью удаляет директории `/opt/zapret` и `/opt/zapret2`** (включая конфиги, списки, стратегии)
- Очищает ipset и временные файлы
@ -157,7 +169,7 @@ curl -fsSL https://raw.githubusercontent.com/necronicle/z2k/master/z2k_cleanup.s
- Если вы используете IPv6 в сети, убедитесь что он включён в прошивке (см. требования выше).
- Если в системе нет `cron`, автообновление списков может быть недоступно — обновляйте списки вручную.
- Если многие РКН-сайты не открываются — попробуйте включить Silent fallback через меню [F].
- Если многие сайты не открываются — попробуйте включить Silent fallback через меню [F].
---