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 или Reality | UUID | TCP, 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 работает без них. Что проще в целом, зависит от того, что уже есть у сервера.
Упомянутые темы
Похожие материалы
- TLS в Happ: как работает защита канала и где встречается
- SNI
- VLESS: что это за протокол и как он работает в Happ
- Trojan в Happ: ссылка trojan://, TLS и пароль
- VLESS или Trojan в Happ: что выбрать
- VLESS в Happ
- VMess в Happ: ссылка vmess://, шифрование и время
- Что такое VPN простыми словами и чем он отличается от прокси-клиента
Разделы по теме
Источники
- Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
- Документация Happ: добавление конфигурации и подписки — обращение 28 сентября 2026
- Документация Happ: ошибки — обращение 28 сентября 2026