Happ VPN

Trojan: что это

Автор
Екатерина Лебедева, редактор раздела knowledge base
Проверил:
Артём Волков
Проверено:
Опубликовано:
, обновлено
Версия гайда:
1.0

Коротко

Trojan — протокол прокси, который передаёт данные внутри обычного TLS-соединения и проверяет клиента по паролю, а не по UUID или времени. В Happ сервер Trojan добавляется ссылкой trojan://, QR-кодом или подпиской.

Trojan устроен так, чтобы снаружи выглядеть как обращение к обычному HTTPS-сайту: клиент открывает TLS-соединение с сервером и первым сообщением передаёт хэш пароля. У протокола нет собственного шифрования — всю защиту канала берёт на себя TLS, поэтому серверу нужны настоящий домен и действующий сертификат. Xray-core, на котором работает Happ, поддерживает Trojan наравне с VLESS и VMess, а способы добавления сервера у них одинаковые. Большинство проблем с Trojan связаны не с самим протоколом, а с сертификатом или несовпадением параметра sni.

Trojan — протокол прокси, который передаёт данные внутри обычного TLS-соединения и проверяет клиента по хэшу пароля вместо UUID. Собственного шифрования у него нет, поэтому без TLS протокол не используют.

Суть термина

Trojan решает ту же задачу, что VLESS и VMess, — передаёт трафик прокси между клиентом и сервером Xray-core, — но делает это иначе. Клиент устанавливает с сервером обычное TLS-соединение и сразу после рукопожатия отправляет хэш SHA-224 от пароля. Дальше идут данные, тоже внутри уже зашифрованного TLS-канала.

Сервер проверяет присланный хэш по своему списку паролей. Если он совпал, сервер соединяется с адресом назначения и пересылает трафик в обе стороны. Если нет — соединение можно передать резервному адресу, например обычному веб-сайту на том же сервере: снаружи оба сценария выглядят как одинаковое обращение к HTTPS.

Собственного шифрования у Trojan нет: он полностью полагается на TLS, поэтому без него протокол попросту не используется. Это делает Trojan одним из самых простых по устройству протоколов Xray-core — весь смысл в аккуратной проверке пароля поверх стандартного шифрования.

Как это выглядит в Happ

Документация Happ ставит Trojan в один ряд с VLESS, VMess, Shadowsocks, Socks5 и Hysteria2 — способы добавления одинаковы для всех.

Подписка. Список серверов от провайдера содержит строки, начинающиеся с trojan://; после добавления подписки такой сервер появляется в общем списке рядом с другими протоколами.

Отдельная ссылка. Ключ trojan:// добавляется из буфера обмена, QR-кодом или диплинком. Повреждённая ссылка приводит к сообщению «Конфигурация trojan не валидная» — например, если пароль со спецсимволами скопирован без процентного кодирования; подробнее на странице ошибки «Конфигурация не валидная».

Ручной ввод. Кнопка «+» вверху справа → «Ручной ввод» → протокол Trojan → пароль, адрес, порт и sni → «Готово».

Если сертификат сервера просрочен, не совпадает с sni или подписан для другого домена, Happ, скорее всего, покажет ошибку TLS-рукопожатия — с точки зрения приложения это не отличается от такой же ошибки у VLESS с обычным TLS.

Trojan среди протоколов Happ

Все шесть протоколов, которые поддерживает Happ, по-разному распределяют работу между собой и слоем TLS. У Trojan эта граница проходит предельно чётко: сам протокол — только проверка пароля, а шифрование целиком на TLS.

ПротоколШифрование данныхЧто проверяет серверТранспорты в Happ
Trojanделает TLSхэш пароляTCP, WebSocket, gRPC
VLESSделает TLS или RealityUUIDTCP, WebSocket, gRPC, XHTTP
VMessсам протоколUUID и времяTCP, WebSocket, gRPC
Shadowsocksсам протоколобщий пароль или ключTCP, UDP

Чем Trojan отличается от похожих терминов

Название протокола иногда путают с обычным вредоносным ПО того же имени — это исторически разные вещи.

  • Trojan (протокол) — открытая реализация прокси поверх TLS в экосистеме Xray-core; описан в этой статье.
  • TLS — слой шифрования, без которого Trojan не работает; сам Trojan шифрование не выполняет.
  • SNI — параметр, который должен совпадать с доменом сертификата сервера; ошибка здесь — частая причина сбоя.
  • VLESS — протокол с похожей ролью TLS, но с проверкой по UUID и поддержкой Reality и XTLS Vision, которых у Trojan нет.

Полный разбор параметров ссылки, транспортов и типичных проблем — на странице Trojan в Happ.

Главное

  • Trojan не шифрует данные сам: всю защиту канала обеспечивает TLS, поэтому серверу обязательно нужен домен с действующим сертификатом.
  • Сервер проверяет клиента по хэшу SHA-224 от пароля, который передаётся в начале TLS-соединения, — не по UUID и не по времени.
  • Снаружи трафик Trojan выглядит как обращение к обычному HTTPS-серверу: на порту 443 может одновременно работать сайт для тех, кто подключился без пароля.
  • Xray-core поддерживает Trojan через транспорты TCP, WebSocket и gRPC, но flow XTLS Vision у него нет — это функция только VLESS.
  • Happ добавляет Trojan так же, как остальные протоколы: ссылкой trojan://, QR-кодом, диплинком, подпиской или вручную.

Частые вопросы

Почему Trojan вообще не работает без TLS?

Потому что у самого протокола нет шифрования: пароль и данные передаются как есть, и всю защиту канала обеспечивает исключительно внешний слой TLS. Без него трафик Trojan шёл бы открытым текстом, включая сам пароль. Разработчики протокола сознательно не стали дублировать TLS собственным шифрованием — это упрощает протокол и снимает двойную нагрузку на процессор.

Что означает слово Trojan в названии протокола?

Название отсылает к идее спрятать прокси внутри обычного, ничем не примечательного TLS-соединения — так, чтобы оно выглядело как обращение к рядовому HTTPS-сайту. Клиент с верным паролем получает доступ к прокси, а без пароля сервер может показать обычную веб-страницу. К вредоносному программному обеспечению название отношения не имеет — это самостоятельный открытый протокол прокси в экосистеме Xray.

Чем проверка пароля в Trojan отличается от UUID в VLESS?

И то и другое — общий секрет, который сервер сверяет со своим списком, но формат разный. VLESS передаёт UUID в виде строки вида 00000000-0000-0000-0000-000000000000, а Trojan — хэш SHA-224 от пароля, который может быть произвольной строкой. Практической разницы для пользователя Happ нет: оба значения нужно бережно хранить и не публиковать.

Обязательно ли покупать сертификат для сервера с Trojan?

Нужен любой действующий сертификат на домен сервера, и бесплатный вариант вроде Let's Encrypt для Trojan подходит так же хорошо, как платный. Важно вовремя его продлевать: просроченный сертификат TLS-рукопожатие не пройдёт. Если домена и сертификата в принципе нет, для сервера практичнее протокол VLESS с Reality — там свой сертификат не нужен.

Как Trojan передаёт голосовые звонки и другой трафик в реальном времени?

UDP-пакеты Trojan заворачивает внутрь того же TLS-соединения поверх TCP, и Xray-core эту возможность поддерживает. Из-за TCP такой UDP чувствительнее к потерям в сети, чем протоколы на QUIC: одна потерянная часть может задержать доставку остальных. Для голосовых звонков и игр на нестабильном канале стоит сравнить задержку Trojan с Hysteria2, если сервер поддерживает оба варианта.

Правда ли, что Trojan проще в настройке, чем VLESS?

Клиенту действительно нужно указать меньше обязательных параметров: пароль, адрес, порт и sni — против UUID, транспорта, слоя защиты и, часто, ещё нескольких значений у VLESS. Но простота Trojan оборачивается требованием к серверу: там обязательно должны быть настоящий домен и сертификат, тогда как VLESS с Reality работает без них. Что проще в целом, зависит от того, что уже есть у сервера.

Упомянутые темы

Разделы по теме

Источники

  1. Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
  2. Документация Happ: добавление конфигурации и подписки — обращение 28 сентября 2026
  3. Документация Happ: ошибки — обращение 28 сентября 2026