Telemt принимает соединение от Telegram, проверяет секретный ключ и передаёт трафик на инфраструктуру Telegram. Пользователю достаточно открыть специальную ссылку, после чего клиент Telegram сохраняет настройки прокси.
Для маскировки Telemt поддерживает режим Fake TLS. Трафик внешне напоминает соединение TLS, а в начальных данных присутствует имя домена SNI. Дополнительные механизмы позволяют отвечать на некоторые проверочные запросы как обычный HTTPS-сервис.
Но Fake TLS не делает соединение полностью неотличимым от браузерного HTTPS. Системы DPI могут учитывать особенности TLS-отпечатка, сетевое поведение и IP-адрес сервера. Успешная работа зависит также от версии Telegram и ограничений конкретной сети.
Используйте прокси на принадлежащем вам сервере или с разрешения владельца. Не публикуйте административный API и секретные ключи. Самостоятельный прокси не гарантирует анонимность и не защищает от блокировки IP-адреса.
Для установки потребуется VPS с Ubuntu или Debian, доступ по SSH и публичный IP-адрес. Выделять отдельный сервер необязательно, если на существующем VPS достаточно ресурсов и есть свободный TCP-порт.
| Компонент | Что потребуется |
|---|---|
| Операционная система | Ubuntu Server или Debian |
| Архитектура | Совместимая с опубликованными сборками Telemt, обычно x86-64 или ARM64 |
| Права | root или sudo |
| Сетевой доступ | Публичный IP, входящий TCP-порт и исходящие соединения с Telegram |
| Порт прокси | 443 или другой свободный TCP-порт, например 8443 |
| Домен | Доступный HTTPS-домен для Fake TLS, желательно контролируемый администратором |
| Контейнеризация | Необязательна. Telemt работает напрямую через systemd |
Для личного прокси небольшой VPS обычно достаточен. Конкретные требования к CPU и памяти зависят от количества одновременных подключений, скорости передачи данных и выбранных функций.
2. Установка Telemt на Ubuntu или Debian
Шаг 1. Подключаемся к серверу
Подключитесь к VPS по SSH, заменив IP-адрес на свой.
ssh root@YOUR_SERVER_IP
Если используется обычная учётная запись с sudo, получите административную оболочку.
sudo -i
Дальнейшие команды предполагают, что вы работаете от root.
Обновите список пакетов и установите вспомогательные программы.
apt update
apt install -y curl ca-certificates openssl jq nano
Шаг 2. Проверяем свободные порты
Перед установкой обязательно проверьте, какие службы уже работают на сервере.
ss -tulnp
Для проверки конкретных портов выполните команду.
ss -ltnp | grep -E ':(443|8443|9091) ' || true
Если вывод содержит строку вида 0.0.0.0:443 с процессом nginx, apache2 или docker-proxy, порт уже занят.
Не останавливайте существующие службы ради Telemt. На сервере с Docker, веб-сайтом или другими прокси безопаснее сначала установить Telemt на отдельный порт 8443.
Если используете Docker, дополнительно проверьте проброшенные порты контейнеров.
docker ps --format "table {{.Names}}t{{.Ports}}"
Команда нужна только при установленном Docker. Отсутствие Docker не мешает работе Telemt.
Шаг 3. Скачиваем официальный установщик
У проекта есть установщик, который загружает программу, создаёт конфигурацию и регистрирует службу systemd.
Вместо непосредственного запуска удалённого скрипта сначала сохраним файл, чтобы при необходимости проверить его содержимое.
curl -fsSL
https://raw.githubusercontent.com/telemt/telemt/main/install.sh
-o /root/telemt-install.sh
Посмотреть скрипт можно через less.
less /root/telemt-install.sh
Для нового сервера со свободным портом 443 используйте следующую команду.
sh /root/telemt-install.sh --lang ru --port 443
Установщик предложит выбрать TLS-домен, если не передать его заранее. Не оставляйте предложенное значение бездумно. Выбирайте доступный HTTPS-хост, подходящий для вашей схемы маскировки.
Если порт 443 уже занят, устанавливаем Telemt на 8443.
sh /root/telemt-install.sh --lang ru --port 8443
Можно указать TLS-домен явно.
sh /root/telemt-install.sh
--lang ru
--port 8443
--domain tls.example.org
Замените tls.example.org на реальный доступный HTTPS-домен. Примерный домен из инструкции использовать буквально нельзя.
Собственный домен удобен, если вы контролируете DNS и HTTPS-сервис. Однако простая запись DNS на адрес Telemt не превращает прокси в полноценный веб-сервер с действительным сертификатом. Для настоящего TLS-фронтинга потребуется дополнительно настроить HTTPS-сайт или TLS-маршрутизацию.
Шаг 4. Проверяем установку
После завершения установщик должен создать службу telemt.service и конфигурационный файл /etc/telemt/telemt.toml.
Проверьте состояние службы.
systemctl status telemt --no-pager
Успешный запуск сопровождается статусом active (running).
Проверьте порт.
ss -ltnp | grep telemt
Пример успешного результата при работе на 8443.
LISTEN 0 4096 0.0.0.0:8443 0.0.0.0:* users:(("telemt",pid=1234,fd=10))
Числа очереди, PID и дескриптора могут отличаться.
Убедитесь, что программа запускается после перезагрузки сервера.
systemctl is-enabled telemt
Если вывод содержит enabled, автозапуск включён.
При необходимости включите его самостоятельно.
systemctl enable telemt
Шаг 5. Открываем порт в межсетевом экране
Если на сервере используется UFW, посмотрите действующие правила.
ufw status verbose
Для прокси на 8443 разрешите входящие TCP-соединения.
ufw allow 8443/tcp
Для установки на 443 используйте соответствующее правило.
ufw allow 443/tcp
Не включайте UFW на удалённом сервере без проверки правила для фактического SSH-порта, иначе можно потерять административный доступ. Если UFW отключён, открывать порт через него недостаточно для полноценной настройки защиты.
Проверьте также межсетевой экран провайдера VPS. Некоторые панели управления облачными серверами отдельно ограничивают входящие соединения, даже если Linux разрешает нужный порт.
Шаг 6. Получаем ссылку для Telegram
У Telemt предусмотрен локальный API для управления пользователями. Стандартная конфигурация установщика включает интерфейс на 127.0.0.1:9091.
Для просмотра пользователей выполните команду.
curl -fsS http://127.0.0.1:9091/v1/users | jq
Для вывода готовых TLS-ссылок используйте более короткий вариант.
curl -fsS http://127.0.0.1:9091/v1/users
| jq -r '.data[] | .links.tls[]?'
Вы получите адрес примерно следующего вида.
tg://proxy?server=YOUR_SERVER_IP&port=8443&secret=ee...
Настоящий секрет длиннее. В режиме Fake TLS он содержит специальный префикс и закодированное имя TLS-домена.
Используйте ссылку, сгенерированную Telemt, а не собирайте секрет вручную. Иначе легко получить неправильный параметр secret.
Для подключения отправьте ссылку в Telegram и откройте её. Клиент предложит добавить MTProto-прокси. Подтвердите подключение и проверьте отправку сообщений, загрузку изображений и открытие каналов.
На компьютере параметры можно открыть вручную через настройки Telegram, раздел «Продвинутые настройки» и «Тип соединения» или «Прокси», в зависимости от версии клиента.
3. Ручная конфигурация Telemt и дополнительные настройки
Автоматический установщик создаёт базовую конфигурацию. Но именно в файле telemt.toml задаются параметры соединения, секретные ключи, режимы передачи данных и административные интерфейсы.
Перед изменениями сохраните резервную копию.
cp -a /etc/telemt/telemt.toml
/etc/telemt/telemt.toml.bak
Откройте файл.
nano /etc/telemt/telemt.toml
Ниже пример полной минимальной конфигурации для порта 8443. Используйте образец при самостоятельной настройке, заменяя значения уже существующих параметров, а не добавляя повторяющиеся разделы.
[general]
use_middle_proxy = true
log_level = "normal"
[general.modes]
classic = false
secure = false
tls = true
[general.links]
show = "*"
[server]
port = 8443
[server.api]
enabled = true
listen = "127.0.0.1:9091"
whitelist = ["127.0.0.1/32"]
[[server.listeners]]
ip = "0.0.0.0"
[censorship]
tls_domain = "tls.example.org"
mask = true
tls_emulation = true
tls_front_dir = "tlsfront"
[access.users]
main = "REPLACE_WITH_32_HEX_CHARACTERS"
В конфигурации необходимо заменить домен и секрет. Секрет генерируется командой.
openssl rand -hex 16
Например, команда вернёт 32 шестнадцатеричных символа. Не используйте один и тот же ключ на всех серверах и не публикуйте его вместе с конфигурацией.
Разберём наиболее полезные параметры.
| Параметр | Назначение |
|---|---|
| server.port | Порт, на котором Telemt принимает соединения |
| general.modes.tls | Разрешает Fake TLS |
| general.modes.secure | Разрешает отдельный режим MTProto с префиксом dd |
| general.use_middle_proxy | Включает передачу трафика через инфраструктуру middle proxy Telegram |
| censorship.tls_domain | Домен SNI для TLS-режима |
| censorship.mask | Включает механизм маскировки для неподходящих подключений |
| censorship.tls_emulation | Включает имитацию отдельных характеристик TLS-соединения |
| access.users | Секретные ключи пользователей |
| server.api.listen | Адрес административного API |
После изменения конфигурации можно перезапустить службу.
systemctl restart telemt
systemctl status telemt --no-pager
Telemt умеет применять ряд изменений пользователей без перезапуска. Однако изменения порта и некоторых других серверных параметров требуют более осторожного подхода. Плановый перезапуск гарантирует чтение обновлённого файла, но кратковременно разрывает активные соединения.
Добавляем отдельные ключи для пользователей
Telemt позволяет создавать несколько пользователей с независимыми секретами. Полезно, если вы хотите предоставить доступ родственникам, коллегам или нескольким устройствам и иметь возможность отключать отдельные ключи.
Сгенерируйте два дополнительных секрета.
openssl rand -hex 16
openssl rand -hex 16
Добавьте записи в существующий раздел [access.users].
[access.users]
main = "32_HEX_SECRET_1"
phone = "32_HEX_SECRET_2"
friend = "32_HEX_SECRET_3"
Каждая строка должна содержать отдельный реальный секрет из 32 шестнадцатеричных символов. Значения из примера не подходят.
После применения конфигурации получите ссылки.
curl -fsS http://127.0.0.1:9091/v1/users
| jq -r '.data[] |
.username as $user |
.links.tls[]? |
"($user) (.)"'
При компрометации отдельного секрета достаточно заменить или удалить соответствующего пользователя.
Для ограничения числа одновременно используемых IP-адресов предусмотрен раздел [access.user_max_unique_ips].
[access.user_max_unique_ips]
friend = 1
Учитывайте, что несколько устройств за одним NAT могут иметь одинаковый внешний IP. Напротив, одно устройство при переходе с Wi-Fi на мобильную сеть может использовать разные адреса.
Настраиваем домен в ссылке и Fake TLS
Параметр tls_domain задаёт имя, которое клиент использует при TLS-подобном подключении. Параметр public_host отвечает за адрес сервера в выдаваемой ссылке.
Если у вас есть собственный домен proxy.example.org с A-записью на публичный IP сервера, можно добавить в существующий раздел [general.links].
[general.links]
show = "*"
public_host = "proxy.example.org"
public_port = 8443
Для полноценной HTTPS-маскировки желательно иметь рабочий HTTPS-сайт. Telemt поддерживает пересылку неавторизованного трафика на отдельный TLS-сервер через параметры mask_host и mask_port.
Например, при заранее настроенном локальном HTTPS-сервере на 8444 соответствующая часть конфигурации может выглядеть следующим образом.
[censorship]
tls_domain = "proxy.example.org"
mask = true
mask_host = "127.0.0.1"
mask_port = 8444
Сервер на 8444 должен действительно обслуживать HTTPS с сертификатом для указанного домена. Простой HTTP-сервис или случайный открытый порт не подходят. Если на 8444 ничего не запущено, маскировка не заработает как полноценный HTTPS-сайт.
Такая схема описана в руководстве по TLS-фронтингу.
Если на сервере уже работает nginx на 443, не пытайтесь добавить ещё один процесс на тот же публичный адрес и порт. Есть два варианта. Оставить Telemt на 8443 либо заранее перестроить схему приёма соединений с nginx, отдельным HTTPS-сервисом и Telemt. Второй вариант требует изменений действующей сетевой конфигурации.
Настраиваем статистику и мониторинг
Проверить активность прокси можно через локальный API.
curl -fsS
http://127.0.0.1:9091/v1/stats/summary
| jq
Для просмотра пользователей и их показателей доступен соответствующий API.
curl -fsS
http://127.0.0.1:9091/v1/users
| jq
Telemt также поддерживает метрики для систем мониторинга. Для включения локального интерфейса добавьте следующие параметры внутрь существующего раздела [server].
metrics_listen = "127.0.0.1:9090"
metrics_whitelist = ["127.0.0.1/32"]
После перезапуска проверьте доступность порта.
ss -ltnp | grep 9090
Не открывайте порты 9090 и 9091 наружу. Доступ к статистике лучше организовать через SSH-туннель или защищённую административную сеть.
Подключаем спонсорский Telegram-канал
Telemt поддерживает рекламный тег ad_tag, который выдаёт Telegram через @MTProxybot. Такая функция пригодится владельцам публичных каналов.
В Telegram откройте @MTProxybot, отправьте команду /newproxy и передайте боту публичный IP с портом вашего прокси, а затем базовый пользовательский секрет. Полученный рекламный тег добавьте в раздел [general].
[general]
use_middle_proxy = true
ad_tag = "YOUR_32_HEX_AD_TAG"
После перезапуска Telemt откройте в боте /myproxies, выберите зарегистрированный прокси и настройте продвижение публичного канала.
Не путайте базовый ключ пользователя с ad_tag. Первый разрешает клиенту подключаться к серверу, второй связан с функцией продвижения канала. Ссылку, которую выдаёт бот, не следует автоматически считать рабочей ссылкой Telemt с Fake TLS. Получайте её через API самого прокси.
4. Диагностика, безопасность и обновление
Telemt работает, но Telegram не подключается
Проверяйте соединение последовательно, начиная с состояния службы.
systemctl status telemt --no-pager
journalctl -u telemt -n 100 --no-pager
Если служба работает, проверьте прослушивание TCP-порта.
ss -ltnp | grep ':8443 '
Затем с другого компьютера, находящегося вне сети сервера, проверьте TCP-доступность.
nc -vz YOUR_SERVER_IP 8443
Если установлен netcat, команда покажет, удалось ли установить TCP-соединение. Проверка не подтверждает правильность MTProto и секретного ключа, а лишь доступность порта.
Для диагностики сетевых ошибок также полезна команда.
journalctl -u telemt -f
После её запуска попробуйте подключить Telegram и посмотрите, появляются ли сообщения об ошибках.
Наиболее распространённые причины проблем собраны ниже.
| Проблема | Что проверить |
|---|---|
| Connection refused | Telemt не запущен, не слушает нужный адрес или порт |
| Connection timed out | Межсетевой экран, маршрутизация, блокировка IP или порта |
| Unknown TLS SNI | Несовпадение домена в секрете с текущим tls_domain |
| Telegram не принимает ключ | Неправильно сформирован секрет или выбран тип прокси |
| API на 9091 недоступен | API отключён, привязан к другому адресу или занят порт |
| Соединение работает только в одной сети | Разные ограничения провайдеров, DNS или фильтрация трафика |
| Прокси внезапно перестал работать | Изменение конфигурации, секретов, IP-адреса или блокировка |
Проверяйте прокси отдельно через домашний интернет и мобильную сеть. Если сервер работает в одной сети, но недоступен в другой, переустановка Telemt обычно не решает сетевую проблему.
Основные меры защиты
- Оставляйте API и метрики доступными только локально.
- Используйте независимые случайные секреты для разных пользователей.
- Не отправляйте конфигурацию вместе с ключами в публичные репозитории.
- Не открывайте на сервере ненужные порты.
- Не запускайте несколько прокси на одном TCP-порту.
- Следите за обновлениями Telemt и Telegram.
- Ограничивайте подробное журналирование, если не требуется диагностика.
- Храните резервную копию конфигурации с ограниченным доступом.
Ссылка на прокси фактически представляет собой реквизит доступа. Любой человек, получивший действительный секрет, может попытаться воспользоваться прокси, если дополнительные ограничения не запрещают подключение.
Обновляем Telemt
Узнать установленную версию можно командой.
telemt --version
Если программа установлена в /bin, допустим и явный вызов.
/bin/telemt --version
Перед обновлением сделайте копию текущей конфигурации.
cp -a /etc/telemt/telemt.toml
/root/telemt-before-update.toml
Официальный установщик поддерживает повторный запуск для обновления. Однако на рабочем сервере сначала ознакомьтесь с новой версией скрипта и изменениями релиза. Особенно внимательно проверяйте совместимость конфигурации, если используете нестандартные сетевые настройки или несколько прокси.
После обновления проверьте службу, порт и подключение через Telegram. Не меняйте одновременно версию программы, TLS-домен и пользовательские секреты. Иначе будет сложнее найти причину возможной неисправности.
Вариант без командной строки
Если не хочется вручную управлять конфигурационными файлами, существует альтернативный способ через AmneziaVPN.
AmneziaVPN поддерживает установку Telemt на собственный сервер через графический интерфейс. В разделе серверных сервисов можно выбрать Telemt, задать порт, получить ссылку и посмотреть состояние подключения. Установка доступна в поддерживаемых версиях приложения.
Такой вариант удобнее для личного прокси без сложного администрирования. Порядок установки и поддерживаемые функции приведены в инструкции Amnezia.
Частые вопросы
Можно ли установить Telemt на сервер, где уже работает Docker?
Да. Telemt не требует Docker и может работать как отдельная служба systemd. Главное, чтобы выбранный TCP-порт не был занят контейнером или другой программой. Если Docker уже занимает 443, можно использовать 8443.
Обязательно ли покупать домен для Telemt?
Для самого MTProto-прокси домен не обязателен. Клиенты могут подключаться по IP-адресу. Но для Fake TLS нужен TLS-домен, а для качественной маскировки с настоящим HTTPS-сайтом удобнее иметь собственное доменное имя и действительный сертификат.
Чем Telemt отличается от обычного MTProxy?
Telemt представляет собой альтернативную реализацию Telegram MTProxy. Помимо базового проксирования, проект поддерживает дополнительные механизмы маскировки, управление пользователями, статистику и отдельные сценарии маршрутизации. Наличие дополнительных функций не гарантирует лучшую работу во всех сетях.
Можно ли пользоваться звонками Telegram через Telemt?
Обычный MTProto-прокси не предназначен для передачи Telegram-звонков. Для звонков требуется другой сетевой путь или поддерживаемый клиентом способ проксирования, например SOCKS5 при соответствующих условиях. Telemt не заменяет полноценный VPN.
Можно ли использовать один Telemt на нескольких телефонах?
Да. По умолчанию одним секретным ключом могут пользоваться несколько устройств и людей. Для раздельного управления лучше создать независимые ключи через раздел access.users.
Можно ли использовать Cloudflare перед Telemt?
Обычное HTTP-проксирование Cloudflare не предназначено для произвольного MTProto TCP-трафика. Простое включение облачного проксирования DNS-записи не превратит Telemt в совместимый HTTPS-сервис. Для TCP-проксирования требуются специально поддерживаемые решения, а не стандартная схема веб-сайта за CDN.
Поможет ли смена порта, если Telemt заблокировали?
Иногда, если ограничен конкретный порт. Но смена порта бесполезна при блокировке IP-адреса или более глубокой фильтрации протокола. Для диагностики сначала проверьте доступность сервера и сравните результаты подключения из разных сетей.
Можно ли совместить Telemt и Telegram Web Proxy?
Telemt поддерживает разные режимы, включая WEB, однако настройка WEB-прокси отличается от обычного MTProto. Требуются отдельные параметры веб-службы, домена и TLS, а также совместимый клиент Telegram. Простая установка Telemt в режиме Fake TLS автоматически WEB-прокси не включает.
Что выбрать для собственного сервера
Для обычного личного Telegram-прокси я бы начал с официального Telemt, установленного как служба systemd. Docker здесь не нужен. Если сервер уже обслуживает сайт или другие приложения на 443, безопаснее сначала попробовать порт 8443, не вмешиваясь в существующую конфигурацию.
После запуска проверьте статус службы, получите ссылку через локальный API, подключите Telegram и протестируйте работу из нескольких сетей. Когда базовая схема заработает, можно добавлять пользователей, статистику и полноценную HTTPS-маскировку.
Не рассчитывайте, что один режим Fake TLS навсегда защитит IP. Стабильность зависит от сети, версии Telegram, параметров прокси и доступности серверов Telegram.