Для чего нужен метод: Помогает решить проблему, которая появилась с 4 июня, когда telegram клиент не может подключиться к mtproto прокси-серверу. Признаки: Подключение может зависать, долго устанавливаться или нестабильно проходить начальный TCP-этап, с дальнейшей блокировкой доступа клиента к серверу на 2 минуты после первого подключения. Проверен на: Telemt, MTProto.zig, Mtg, MTProtoProxy, JSMTProxy
Данный скрипт используется для серверов с MTPROTO - (telemt,mtproto zig и тд.), фиксит проблему долгого первичного TCP-подключения клиентов, в отличие от созданных и популярных в сообществе ранее фиксов с SYN limit имеет ряд преимуществ:
- Быстрое подключение за <3-8 сек. (Оригинальный SYN Limit: >10-20сек.) даже при большом количестве юзеров
- Один порт для Ios/Android/Macos/Desktop etc.
- Медиа грузят практически с прежней скоростью
- Ставится в один клик
Внимание, данный скрипт платный, цена: 1 ⭐ на репозиторий
- Установить стандартный Telemt версии 3.4.18 (версия новее работает нестабильно, появляются реконнекты и медиа могут грузить хуже.) Также альтернативой вы можете поставить "MTPROTO.zig", но тогда при установке необходимо указать --no-dpi, например sudo mtbuddy install --port 443 --domain rutube.ru --no-dpi --yes
- Установить/обновить наш скрипт:
curl -fsSL https://raw.githubusercontent.com/Mekotofeuka/MTPROTO_FIX_By_MEKO/main/install.sh | sudo bash- Выполнить удаление старого SYN limit, (если он уже стоял на сервере ранее) нажав 1(либо удалить в ручную). Выполнить установку нашего фикса снова нажав 1.
- Отключить встроенные MSS и SYN из конфига телемт нажав 2 (если он уже был добавлен в конфиг телемт на сервер ранее)
- Готово.
- Дополнительно: Кнопка 3 выполнит базовую оптимизацию сервера под прокси.
Открыть меню:
mekoprПрименяет к серверу набор правил, который разделяет устройства на 2 вида - ios и не ios и применяет к каждому свой лимит
- 1 слой - Проверяет является ли устройство ios или нет.
- Если да - Оставляем устройство на первом слое и применяем к нему правила конкретно для ios.
- Если нет - Переходим на второй слой и применяем к нему правила второго слоя для всех устройств.
Более подробное описание
- Решает проблему мёртвого соединения Ios/android
- Проблема: мобильный клиент сворачивается, после чего сокет не закрывается чисто, из-за чего сервер держит мёртвое соединение и при возврате клиент зависает на умершем сокете.
- Скрипт делает так, чтобы мёртвый коннект рвался за пару минут, вместо нескольких часов. Клиент при возврате из фона сразу видит "сокет мёртв" и переподключается без зависания.
- Решает проблему TCP-рукопожатия, которое режется с помощью технических средств ограничения траффика
- Скрипт ограничивает частоту входящих SYN на 1.1/сек. с одного IP, так как тех. средства ограничивают TCP соединение только если их >1 в секунду.
- iOS отдельно
- У iOS в отличии от Android и Desktop разные паттерны подключений. В одном лимите они мешают друг другу. Разделение на порты конечно решение, но костыльное. Наш фикс производит разделение этих клиентов по TTL+Length, таки образом с одного порта могут сидеть клиенты любых устройств без лишней мороки
- 54/minute (а не 1 сек)
- В iptables модуль hashlimit не поддерживает миллисекунды. 54/минута = 1.1 сек на соединение. Запас в 100 мс нужен, чтобы исключить погрешность возникающую при мгновенном Reject, которая приводит к блокировке подключения с вашего устройства к серверу с mtproto на 2 минуты
- REJECT вместо DROP
- DROP просто обрывает соединение клиента, не сообщая ему об этом, из-за чего происходят таймауты (3-5 сек) -> ретраи с бОльшими паузами -> бОльшая задержка. REJECT с RST же в свою очередь обрывая соединение даёт мгновенный ответ клиенту об обрыве из-за чего он(клиент) пробует переподключаться без ожидания, из-за чего подключение к telegram происходит куда быстрее
- В MSS просто нет необходимости для данного билда, поэтому в скрипте добавлена функция его отключения. Если вы оставите у себя правило, либо настройку в конфиге с MSS или другим вариантом SYN ограничения, то медиа и скорость так и будут урезаны, так что их рекомендуется закомментировать/удалить с сервера до применения фикса.
Как сделать прокси из РФ напрямую, с работающим MiddleProxy(полезно для тех, кто использует "канал спонсор")
В данном мануале описан способ для запуска прокси напрямую на сервере, доступ с которого к ME/DC серверам телеграм ограничен. Работает с android/ios/desktop
- Ставим MTPROTO ZIG
curl -fsSL https://raw.githubusercontent.com/sleep3r/mtproto.zig/main/deploy/bootstrap.sh | sudo bashsudo mtbuddy install --port 443 --domain rutube.ru --middle-proxy --yes- Ставим скрипт MEKO
curl -fsSL https://raw.githubusercontent.com/Mekotofeuka/MTPROTO_FIX_By_MEKO/main/install.sh | sudo bash- Пропускаем информацию про Telemt, открывается меню скрипта, жмём 1 и жмём y
- Подключаемся к прокси и пользуемся
Если вам не помог фикс, наибольшая вероятность в том, что у вас более старая модель ios(если проблема в подключении только с Ios) и его ttl/длина пакета отлична, либо у вас на сервере остались какие-то старые настройки, это встречается пока в большинстве случаев.
- Наиболее полезное, простое и рабочее решение в 99% случаев, если у клиента, с которого не работает прокси не старый айфон, это:
- Переустановить ОС, поставить чистый телемт 3.4.18 и наш фикс.
- Проверить все правила, настройки/кфг сервера, возможно там остались старые правила SYN,MSS возможно другие, их все необходимо убрать. Также в кфг телемт необходимо отключить встроенные SYN и MSS
- Установить более старую версию(на телемт 3.4.19 работает не стабильно, на данный момент самый стабильный вариант - 3.4.18)
- Смена подсети/провайдера/просто айпи. В целом провайдеру клиента, с которого не работает прокси может не нравиться айпи текущего сервера(весьма частое явление), либо он может быть заблокирован не только у вашего провайдера, а в целом везде.
Важно также сказать, что все тесты проводились на моделях айфона 11 и выше, а также без сторонних надстроек - хапрокси, амнезия,даблхоп/каскад и тд., поэтому с какими-либо изменениями оригинального прокси может не работать, дайте нам знать по поводу возникших проблем, если есть способ это исправить - сообщите нам, попробуем что-то с этим сделать. Если же вы нашли решение сами - аналогично сообщите нам ;)
MEKO fix — создан в свободное время для сообщества.
Ваша поддержка поможет проводить дальнейшие тесты;)
Вы можете поддержать проект, поставив ⭐ этому репозиторию (сверху справа этой страницы)
💰 Криптовалюта:
от 0.1 USDT
Также вы можете поддержать меня, воспользовавшись моим сервисом:
