mistgate Документация
RU
186

MTProto (прокси для Telegram)

Профиль MTProto: прокси только для приложения Telegram за Fake TLS. Когда он выручает и где бессилен, два варианта имени в рукопожатии, добавление профиля, как дать человеку ссылку, перевыпуск и отзыв ключа, ретрансляции, что доказывает проверка здоровья и что ещё не сделано.

На этой странице

MTProto — собственный протокол прокси Telegram. Профиль MTProto в Mistgate превращает каждую ноду, на которой он работает, в прокси-сервер только для приложения Telegram: человек нажимает на ссылку, Telegram добавляет прокси в свои настройки, и трафик Telegram идёт через ноду. Это не VPN: другие приложения им не пользуются, и ни одно VPN-приложение его не читает. На этой странице — настройки профиля MTProto и то, как человек получает ссылку; как профиль создаётся и ставится на ноды, описано в разделе Профили.

Важно

MTProto — экспериментальный протокол. Это первая версия протокола в Mistgate, на практике она ещё не проверена; панель помечает его как экспериментальный там, где вы выбираете протокол. Настройки и поведение ещё могут измениться.

Когда это помогает и где пределы#

Он нужен там, где Telegram заблокирован или замедлен, а остальной интернет нет, или как более лёгкий второй путь к Telegram рядом с VPN. Прокси говорит на Fake TLS: для всякого, кто наблюдает за соединением, оно начинается как обычное рукопожатие TLS 1.3 с сайтом, а всем, кто не клиент, нода отвечает настоящим сайтом (см. Имя в рукопожатии).

Чего он не умеет:

  • В России он может не работать. С весны 2026 года MTProto-прокси там обнаруживают и блокируют волнами. Прокси может проработать неделю и перестать. Если ваши люди в России, рассчитывайте на это и держите профиль VPN (Hysteria2, VLESS) как основной способ.
  • Зелёная проверка не доказывает, что у ваших людей он работает. Проверки панели идут с сервера панели, из-за пределов любой страны. Они показывают, что нода делает своё дело, но не что сеть внутри страны с цензурой пропустит соединение. Прежде чем что-то обещать, попробуйте ссылку в тех сетях, которые важны.
  • Дотошный проверяющий всё же отличит подделку от настоящего сайта. Ответ ноды на приветствие Fake TLS собран так, чтобы выглядеть как сервер TLS 1.3, но сканирование, которое сравнивает его с настоящим обменом настоящего сайта, увидит разницу. Поэтому посторонних отправляют на настоящий сайт, и поэтому никакая настройка не делает прокси невидимым.
  • Только Telegram. Нажатие на ссылку меняет только настройку прокси в Telegram. Никакое другое приложение через него не идёт.
  • Нет промежуточного прокси. Нода подключается прямо к дата-центрам Telegram. Продвигаемый канал Telegram (спонсорская метка) недоступен; см. Что ещё не сделано.

Имя в рукопожатии#

В секрете прокси Telegram записан домен: Telegram кладёт его в рукопожатие TLS как имя сервера. Нода принимает только рукопожатие с этим именем и ключом человека, а всех остальных — другие имена, неверные ключи, повторённые приветствия, обычный HTTP, браузеры и сканеры — отправляет на сайт. Домен выбирается для каждого профиля в настройке Имя в TLS-рукопожатии:

Имя этой ноды Другой сайт
Домен Собственное имя хоста ноды (или Домен (SNI), заданный для профиля на этой ноде) Настоящий сайт, который вы называете, например www.example.org
Что посторонний видит на порту Собственный сайт-ширма ноды, тот же, что показывают Hysteria2 и VLESS, с сертификатом ноды Настоящий сайт: нода передаёт соединение ему, поэтому проверяющий проходит настоящее рукопожатие с этим сайтом и видит его сертификат
Let's Encrypt на ноде Продолжает работать, в том числе на TCP 443: проверка отвечает на этом порту На TCP 443 собственный сайт ноды и эта проверка здесь не отвечают, поэтому сертификат ноды продлевается через порт 80
Нода только с IP-адресом Нельзя: нет имени, которое можно взять Работает
Слабое место Сайт-ширма должен выглядеть естественно для имени ноды Домен не принадлежит IP-адресу сервера, и некоторые сети это замечают

Как выбирать:

  • Начните с Имя этой ноды на ноде, у которой есть домен. Посторонние получают ту же ширму, что и на других протоколах ноды (Свой сайт-ширма), и больше на ноде ничего не меняется.
  • Выбирайте Другой сайт для ноды, известной только по IP-адресу, или когда хотите, чтобы посторонние встречали большой, известный сайт. Берите сайт, который быстро открывается, не заблокирован там, где ваши люди, и не имеет к вам отношения. Не берите домен панели: любой, кто проверит ноду, увидит адрес панели.
  • С Другой сайт на TCP 443 держите порт 80 ноды доступным, иначе её сертификат не продлится. Редактор профиля предупреждает об этом и о несовпадении с IP-адресом.
  • Сайт, который вы называете, должен быть обычным именем хоста (www.example.org): без IP-адреса, порта и пути.

Настройки#

Редактор показывает настройки в группе Основное. Критичные настройки меняют ссылки, которые у людей уже есть, поэтому людям придётся добавить новую ссылку заново; перед их сохранением редактор переспрашивает (см. Профили).

Настройка По умолчанию Критичная Что делает
TCP-порт 443 да TCP-порт, на котором слушает нода, от 1 до 65535.
Имя в TLS-рукопожатии Имя этой ноды да Имя этой ноды или Другой сайт. См. выше.
Сайт пусто да Только для другого сайта: имя хоста этого сайта.

На ноде у профиля может быть свой Порт и, при Имя этой ноды, свой Домен (SNI), который тогда и становится именем в рукопожатии.

MTProto — TCP-профиль. Он не может делить порт с другим TCP-профилем той же ноды, например с VLESS; если на ноде VLESS уже стоит на 443, поставьте MTProto на другой порт. Telegram принимает любой порт. Встроенный сайт, который Hysteria2 показывает на TCP 443, уступает порт MTProto, как уступает и VLESS (VLESS и Hysteria2 на одной ноде); при Имя этой ноды посетитель этого порта всё равно видит сайт ноды.

Здесь важны часы ноды. Рукопожатие несёт время клиента, и нода принимает его в пределах примерно пяти минут от своих часов. Нода с неверными часами отказывает всем клиентам; проверка Часы в докторе предупреждает об этом (см. Здоровье).

Добавление профиля#

  1. Откройте Профили и нажмите Новый профиль. Первый шаг — выбор протокола: выберите карточку MTProto. Второй шаг — форма.
  2. Задайте TCP-порт и Имя в TLS-рукопожатии; с Другой сайт впишите Сайт.
  3. Назовите профиль и скажите, куда он идёт: поставьте его на ноды и добавьте в группу. Telegram человек получает только из группы, в которой есть профиль MTProto на разрешённой ему ноде.
  4. Создать профиль.

Если у ноды только IP-адрес, а профиль использует Имя этой ноды, нода откажет и назовёт причину: впишите для профиля на этой ноде домен или выберите Другой сайт. Панель справа показывает ссылку, которую получил бы человек, со скрытым ключом.

MTProto работает на ноде с агентом v0.1.69 или новее. Старому агенту панель профиль не отправляет: там сервер показан незапущенным, потому что агент ноды устарел, а всё остальное на ноде продолжает обновляться. Обновите агента на странице Обновления.

Как дать Telegram человеку#

Telegram — переключатель у человека, рядом со ссылкой подписки и ключами AmneziaVPN, в форме пользователя и в его карточке. По умолчанию он выключен.

  • Включение сразу создаёт ключ Telegram человека: один ключ на человека, одинаковый для всех профилей MTProto и всех нод, которые ему разрешены.
  • Переключатель Telegram идёт в дополнение к Happ или AmneziaVPN, а не вместо них. Хотя бы один из этих двух остаётся включённым.
  • Ключ показан среди устройств человека как Telegram-прокси, но не занимает места в лимите устройств, поэтому ему никогда не отказывают из-за нехватки места. Выключение переключателя или удаление человека отзывает его.
  • Ссылки человек получает, только пока он активен и у группы есть профиль MTProto на разрешённой ему ноде. Отключённый, просроченный или превысивший квоту человек теряет прокси вместе с остальным доступом.
  • Ни одна ссылка не попадает в подписку. VPN-приложения показали бы строку tg:// как нерабочий сервер, а приложение Telegram подписки не читает. Ссылка берётся только со страницы человека или из админки.

Где человек находит ссылку#

  • Его страница. Блок Telegram-прокси под серверами, когда Telegram для него включён. Каждая ссылка названа по стране и месту сервера, а не по имени ноды в панели, и у неё есть Открыть в Telegram и Скопировать ссылку. Пока прокси не готов, блок об этом говорит. См. Страницу пользователя.
  • Админка. На странице человека в разделе Пользователи блок Telegram-прокси перечисляет ссылки с Открыть в Telegram, копированием и QR-кодом, а также кнопки Выпустить заново и Отозвать. Отправьте ссылку или покажите QR-код по любому надёжному каналу.

Ссылка выглядит так, где ключ и имя записаны в шестнадцатеричном виде:

INI
tg://proxy?server=de1.example.com&port=443&secret=ee<key><name>

Ссылка и есть ключ: кто её получил, тот может пользоваться прокси. Обращайтесь с ней как с паролем. Перед тем как использовать прокси, Telegram просит человека подтвердить.

Перевыпуск и отзыв#

  • Выпустить заново даёт человеку новый ключ. Все ссылки, сделанные раньше, сразу перестают работать на всех нодах, а открытые соединения на старом ключе закрываются. Новые ссылки появляются в блоке; человек добавляет их в Telegram. Пользуйтесь, когда ссылка утекла.
  • Отозвать забирает ключ. Ссылки пропадают, открытые соединения закрываются, а Telegram у человека остаётся включённым, но без ключа. Новый ключ можно создать из того же блока.
  • Выключение переключателя Telegram или удаление устройства Telegram-прокси тоже отзывает ключ.

Один ключ держит до 64 соединений одновременно. Telegram в самый напряжённый момент открывает около 10–15 на аккаунт, поэтому утёкший ключ не обслужит больше горстки людей. Соединение, по которому 10 минут не было данных, закрывается.

Ретрансляции и IPv6-двойники#

Ссылки Telegram у человека подчиняются тем же правилам, что и другие серверы (см. Подписки), и подписи у них те же:

  • если у ноды есть вход по IPv6, появляется вторая ссылка на её IPv6-адрес с пометкой IPv6;
  • для каждой работающей ретрансляции ноды появляется ещё одна ссылка через ноду входа с пометкой через RU (страна входа). Ретрансляция передаёт соединение без изменений, поэтому ключ и имя в рукопожатии остаются как у выхода.

Что доказывает проверка здоровья#

Панель проверяет каждый профиль MTProto так, как им пользовался бы Telegram, со своим скрытым ключом, который не принадлежит ни одному человеку (Здоровье):

  1. открывает TCP-соединение с портом профиля;
  2. проходит рукопожатие Fake TLS с этим именем и ключом;
  3. через прокси просит у дата-центра Telegram 2 первое сообщение (req_pq_multi) и проверяет, что приходит корректный ответ.

Зелёная ячейка, таким образом, доказывает, что нода принимает клиента, достаёт до Telegram и что Telegram отвечает через неё. Она не доказывает, что сеть внутри страны, которая блокирует MTProto, пропустит трафик. Если проверка не прошла, ячейка говорит, на каком шаге.

Что ещё не сделано#

  • Промежуточный прокси и продвигаемый канал. Нода говорит с дата-центрами Telegram напрямую. Собственная конфигурация прокси Telegram, а с ней и спонсорская метка, которую могут показывать прокси, не поддерживаются.
  • Ограничения скорости на человека и на устройство. Лимиты в карточке пользователя действуют на Hysteria2 и VLESS, но не на Telegram-прокси.
  • Люди только с Telegram. Telegram идёт вместе с Happ или AmneziaVPN; у человека не может быть прокси и больше ничего.
  • Подгонка поддельного ответа под настоящий сайт. Нода пока не замеряет настоящее рукопожатие сайта и не копирует его форму.

Править страницу на GitHub