MTproxy-reanimation — утилита для серверов с Telemt / MTProxyMax, которая помогает стабилизировать первичное TCP-подключение клиентов с помощью inbound SYN limiter через nftables и применяет базовый безопасный тюнинг Telemt.
За основу взяты мануалы сообщества: Ссылка №1 · Ссылка №2 · Ссылка №3
curl -fsSL https://raw.githubusercontent.com/Liafanx/MTproxy-reanimation/main/install.sh | sudo bashПосле установки запускается мастер настройки. При повторной установке — обновляет скрипт.
Также скрипт автоматически проверяет обновления при каждом запуске mtpr.
Открыть меню:
mtprПеред использованием ознакомтесь с readme, и обратите внимание на раздел Советы
1.0.8 от 16.06.2026
- Добавлено восстановление конфигурации из бэкапа при удалении реаниматора
- При удалении можно выбрать:
- восстановить конфиг из бэкапа
- или оставить бэкап и восстановить его позже вручную
- Исправлен Fix для iOS вариант 1:
- теперь сохраняются исходные значения
tcp_keepalive_*перед применением - при откате восстанавливаются именно исходные значения, а не жёстко
7200 / 75 / 9
- теперь сохраняются исходные значения
- Улучшены сообщения при откате и удалении
- Мелкие правки логики и текста в меню
1.0.7 от 15.06.2026
- Для Docker bridge добавлен выбор режима:
- Простой режим — правило только по порту
- Точный Docker-режим — внутренний IP контейнера + watcher
- Обновлён README
- Теперь при применении тюнинга недостающие разделы в конфиге могут создаваться через скрипт автоматически, все будет предложено при первой установке.
1.0.6 от 15.06.2026
- Автоматическая проверка обновлений при запуске
- При установке Fix для iOS №1 по умолчанию N
- Значения в Fix для iOS №1 теперь можно редактировать
- После изменения сетевых параметров скрипт предлагает сразу применить новые NFT-правила (по умолчанию Y)
- При первом запуске перед применением тюнинга подробнее показывается, какие параметры будут выставлены
- Если в конфиге Telemt нет секций
[general]или[timeouts], скрипт предлагает создать их автоматически - Логика привязки к IP улучшена:
- можно заранее выбрать, использовать ли конкретный IP
- если IP не указывать, правило будет работать для всех IP сервера на выбранном порту
- Readme приведён в порядок, добавлен раздел "Советы"
1.0.5 от 14.06.2026
- Изменены значения тюнинга по умолчанию:
tg_connect = 30(было 10)client_handshake = 90(было 15)client_keepalive = 120(было 60)
- Сообщество сообщает что новые значения работают лучше стоковых
- Параметры тюнинга всегда можно изменить в настройках
- Пробуйте и делитесь опытом в https://t.me/telemtrs
1.0.4 от 11.06.2026
- Добавлен Фикс для iOS вариант 1 (TCP keepalive через sysctl)
- Можно менять значения keepalive_time, keepalive_intvl, keepalive_probes
- Добавлен Фикс для iOS вариант 2 (MSS + redirect на отдельный порт)
- Рекомендуется перевести iOS-клиентов на отдельный порт
- Исправлена работа с Telemt Panel (конфиги Panel не затрагиваются)
- Исправлена работа с голым Telemt (systemd,
/etc/telemt/telemt.toml)
- Linux с
systemd nftables(устанавливается автоматически)curl- Права
root
- Находит Telemt автоматически: MTProxyMax, Docker, systemd, локальный процесс
- Telemt Panel игнорируется — её конфиги не затрагиваются
- Определяет нужный netfilter hook:
input— если Telemt работает на хосте / через host networkforward— если Telemt работает в Docker bridge
- Для Docker bridge предлагает два режима:
- Простой режим — правило только по порту
- Точный Docker-режим — внутренний IP контейнера + watcher
- Применяет per-client inbound SYN limiter через nftables
- Безопасно применяет тюнинг Telemt (с бэкапом конфига перед изменениями)
- При удалении может восстановить конфигурацию из сохранённого бэкапа
- Фикс для iOS вариант 1 — TCP keepalive через sysctl (настраиваемые значения)
- Фикс для iOS вариант 2 — MSS + redirect на отдельный порт для iOS-клиентов
- Ставит systemd-службу с автозапуском
- Поставьте реаниматор, на все нажмите enter, если реанимировался прокси, то отлично лучше ничего не трогать. Если хотите, можете поиграться с настройками, чтобы увеличить скорость подключения.
- В 95% случаев все заводится на Стандартный конфиг + Реаниматор.
- client_mss = tspu не работает с реаниматором во многих случаях, лучше закомментировать если есть.
- Если есть проблемы с iOS клиентами, пробуйте фиксы. Их всегда можно мгновенно откатить.
- Если у вас
telemtв Docker bridge:- сначала пробуйте Точный Docker-режим
- если не помогает, используйте Простой режим, он по умолчанию при установке так как точно работает.
- Если у вас Double Hop, ставьте реаниматор на входящей ноде, он скажет, что не находит на сервере telemt, так и должно быть, просто жмете на все enter, но не забудьте указать правильный порт подключения обычно это 443, значения тюнинга можно прописать вручную на принимающей ноде, где стоит telemt.
- В последнем обновлении telemt 3.4.18 были добавлены функции, которые использует реаниматор, выбирайте что-то одно, либо новые параметры в telemt, либо реаниматор. Но эксперименты никто не отменял.
- Если удаляете реаниматор и выбираете восстановление из бэкапа, все изменения, внесённые в конфиг Telemt после установки реаниматора, будут потеряны.
Ограничение входящих SYN-пакетов отдельно для каждого IP клиента:
tcp dport <PORT>
tcp flags & (syn | ack) == syn
meter { ip saddr timeout 60s limit rate over 1/second burst 1 packets }
counter drop
Каждый клиентский IP получает свой независимый bucket.
Про IP-адрес в правилах:
- Если указан IP → правила применяются только к трафику на этот адрес и порт
- Если IP пустой → ко всему входящему трафику на указанный порт
- В Docker bridge режиме внешний IP может не совпадать с destination после NAT, поэтому там часто лучше использовать:
- Простой режим — без IP-привязки
- или Точный Docker-режим — по внутреннему IP контейнера
| Параметр | По умолчанию | Описание |
|---|---|---|
tg_connect |
30 | Таймаут подключения к Telegram DC |
client_handshake |
90 | Ожидание начального handshake |
client_keepalive |
120 | Ожидание активности клиента |
Все параметры можно изменить в настройках скрипта (пункт [3]).
| Пресет | Rate | Burst | Описание |
|---|---|---|---|
| Жёсткий | 1/second | 1 | Рекомендуется как основной |
| Средний | 1/second | 3 | Если жёсткий слишком строг, можно попробовать |
| Мягкий | 2/second | 5 | Для серверов с большим числом клиентов |
Ускоряет обнаружение мёртвых сокетов через sysctl.
Подходит, если iOS-клиенты после закрытия/сна не могут нормально переподключиться.
Значения можно менять прямо из меню.
Перед применением сохраняются исходные системные значения tcp_keepalive_*, и при откате они восстанавливаются.
По умолчанию:
time = 60intvl = 15probes = 3
Примерное время обнаружения мёртвого соединения: ~105 сек
Создаёт отдельный порт для iOS (по умолчанию 4443) с MSS=92 и прозрачным редиректом на основной порт Telemt.
Важно: если в конфиге Telemt есть
client_mss = ..., его нужно убрать перед использованием Варианта 2.
В этом режиме:
- Telemt-конфиг не меняется
- Android / Desktop продолжают использовать основной порт
- iOS-клиентам нужно заменить только порт в ссылке
Пример:
- было:
tg://proxy?server=IP&port=443&secret=... - стало:
tg://proxy?server=IP&port=4443&secret=...
mtprОткрыть меню управления.
Обычный режим:
systemctl status mtpr-syn-limit.service --no-pagerТочный Docker-режим:
systemctl status mtpr-bridge-watch.service --no-pagernft list table inet telemt_limitnft list ruleset | grep -A20 -B5 mtprТюнинг применяется через штатные команды, без прямого редактирования config.toml.
Для отката:
mtproxymax tune clear tg_connect
mtproxymax tune clear client_handshake
mtproxymax tune clear client_keepalive
mtproxymax restartПеред изменением telemt.toml или config.toml создаётся бэкап (*.mtpr-backup-*).
Для отката:
ls /etc/telemt/telemt.toml.mtpr-backup-*
cp /etc/telemt/telemt.toml.mtpr-backup-<timestamp> /etc/telemt/telemt.toml
systemctl restart telemtИз меню: клавиша u / U
При удалении скрипт может предложить:
- восстановить конфигурацию Telemt из бэкапа
- или оставить бэкап на диске для ручного восстановления позже
Тюнинг MTProxyMax и изменения после установки реаниматора автоматически не сохраняются при восстановлении старого бэкапа.
- Скрипт не трогает конфиги Telemt Panel
- Скрипт не является заменой Telemt или MTProxyMax
- NFT-правила работают на уровне ядра
- В Docker bridge режиме лучше сначала пробовать Точный Docker-режим, а потом уже простой если не помогает.
- При использовании Fix для iOS вариант 2:
- уберите
client_mss = ...из конфига Telemt - не забудьте открыть iOS-порт в фаерволе, если закрыт
- уберите
- При смене сетевых параметров лучше сразу пере-применять NFT-правила из меню
MTproxy-reanimation by LiafanX · GitHub