Trojan

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

Что такое Trojan

Авторы Trojan в 2019 году заметили: подозрительным бывает не только содержимое соединения, но и реакция сервера на неправильное подключение. Туннель, который отвечает ошибкой или молчит, выдаёт себя этим не хуже, чем отпечатком в трафике: настоящий сайт так себя не ведёт.

Отсюда идея: пусть на том же адресе стоит настоящий сайт и отвечает всем, кто пришёл без ключа. Тогда активная проверка ничего не находит — она встречает то же, что встретила бы у любого другого ресурса.

Название отсылает к троянскому коню: снаружи одно, внутри другое. Схема несколько лет была основным способом обхода глубокой фильтрации — до тех пор, пока Reality не предложил обходиться вовсе без собственного домена и сертификата. Сегодня Trojan — крепкий второй вариант, а не первый.

Как работает Trojan

Соединение неотличимо от захода на защищённый сайт: тот же порт, то же рукопожатие, тот же сертификат, выписанный на настоящее имя. Никаких собственных заголовков, никакой обвязки поверх — внутри защищённого канала сразу идут данные.

По замыслу протокола активная проверка натыкается на веб-страницу: без пароля сервер отдаёт сайт, а не ошибку. На сервере toNet такого сайта нет, соединение без пароля просто закрывается. Это слабее, чем у Reality: тот в том же случае показывает настоящий чужой сайт.

В сравнении с Reality разница в том, чей сертификат показывают. Trojan показывает свой, выписанный на имя вашего сервера; в исходной схеме за ним ещё стоит настоящий сайт. Reality показывает чужой, взятый у настоящего постороннего ресурса. Второе надёжнее, потому что не требует, чтобы ваш сервер выглядел живым и посещаемым сайтом.

Плюсы Trojan

Минимум накладных расходов. Внутри защищённого канала нет дополнительных слоёв, поэтому по скорости он близок к пределу, который даёт само шифрование.

Нет собственного отпечатка. Рукопожатие — обычный TLS с настоящим сертификатом, без служебных полей, по которым узнают VMess или OpenVPN.

Живёт на порту обычного веба и проходит там, где разрешён только он.

Не зависит от UDP, а значит, работает в сетях, где тот закрыт.

Его понимают все распространённые клиенты: протокол старый, устоявшийся, без разночтений в реализациях.

Минусы Trojan: когда не подходит

Нужны домен и сертификат на него. Обойтись без них нельзя: без настоящего имени вся конструкция разваливается.

Без сайта-прикрытия сервер на неверный пароль отвечает закрытием соединения. Настоящие сайты так себя не ведут, и активная проверка может это заметить. Даже с прикрытием пустая страница на адресе, куда никто не заходит, сама по себе выглядит странно.

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

Reality решает ту же задачу без домена и сертификата, поэтому в новых установках Trojan чаще оказывается вторым, а не первым выбором.

Когда выбрать Trojan

Берите, когда нужен быстрый и незаметный протокол поверх обычного соединения, а домен и сертификат вас не смущают.

Хорош как замена Reality там, где тот почему-то не работает: задачи у них близкие, а устройство разное, и фильтрация, настроенная против одного, не обязательно ловит другой.

На нестабильном мобильном канале уступает Hysteria2: тот умеет переживать потери пакетов, а здесь потеря тормозит весь поток.

Trojan или VLESS Reality и VLESS WebSocket

Trojan и VLESS + Reality — ближайшие родственники: оба поверх TCP, оба выглядят как HTTPS, оба без лишних слоёв внутри. Разница в сертификате. Trojan предъявляет свой, выписанный на имя сервера, Reality — сертификат настоящего чужого сайта. Свой сертификат нужно выпускать и продлевать, а проверка приводит к адресу, за которым нет известного сайта.

У VLESS + WebSocket и VMess + WebSocket Trojan выигрывает в скорости, потому что не оборачивает данные в WebSocket. Проигрывает в одном: за CDN его не поставить. CDN пропускает веб-запросы, а Trojan — это TLS без HTTP внутри.

  • Trojan
    Транспорт
    TCP
    Как выглядит в сети
    HTTPS-соединение
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    высокая
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    HTTPS к известному сайту
    Сертификат
    не нужен
    Если UDP закрыт
    проходит
    Скорость
    высокая
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    WebSocket поверх HTTPS
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    средняя
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    WebSocket поверх HTTPS
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    ниже средней
    Батарея
    средний расход
    Мобильная сеть
    средне

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

Подробнее: VLESS vs VMess vs Trojan. Все протоколы в одной таблице — на странице о протоколах.

Чем подключиться к Trojan

Приложения бесплатные, ссылки ведут в официальные магазины и на страницы релизов разработчиков.

Как добавить: скопируйте ссылку-подписку в личном кабинете и вставьте её в приложение («+» → «Добавить из буфера обмена») или отсканируйте QR-код — в списке появятся все протоколы сервера, включая этот.

Протоколу нужен настоящий сертификат: он выпускается и продлевается при установке автоматически, от вас тут ничего не требуется.

Пошаговые инструкции по платформам: Android, iPhone и iPad, Windows, macOS, Linux; все вместе — в разделе инструкций.

Trojan: частые вопросы

Показывает ли сервер toNet сайт-прикрытие для Trojan?

Нет. В исходной схеме Trojan за сервером стоит настоящий сайт, который отвечает всем без пароля. На сервере toNet отдельного сайта нет: соединение без правильного пароля сервер закрывает. Если важна незаметность при проверке сервера, берите VLESS Reality — там соединение без ключа получает настоящий чужой сайт.

Нужен ли для Trojan свой домен?

Нужен сертификат на имя сервера, но покупать домен не придётся: toNet выпускает сертификат Let’s Encrypt на служебное имя вида «IP-сервера.sslip.io» и продлевает его сам. Если сертификат выпустить не удалось, Trojan не включается — с самоподписанным клиент всё равно не подключился бы.

Чем Trojan отличается от VLESS?

Trojan проверяет пароль, VLESS — идентификатор пользователя, а в остальном они близки: оба не шифруют данные второй раз и доверяют защиту TLS. Разница в обвязке. VLESS бывает с Reality, WebSocket и другими транспортами, а Trojan в toNet идёт напрямую поверх TLS.

Чего не делает ни один протокол

Протокол прячет содержимое соединения от сети по дороге, но не делает вас анонимным: сайты по-прежнему узнают вас по учётным записям и cookie, хостинг видит трафик своего сервера, а объём и время соединений скрыть нельзя. Что при этом видит сам сервис, разобрано в разделе о безопасности.

Что дальше

Выбирать один протокол не нужно: на сервере поднимаются все сразу, каждый на своём порту, и переключение занимает пару нажатий. Разбор остальных — на странице о протоколах.

Заведите свой VPN-сервер

Вход по ссылке из письма — пароль придумывать не нужно. Дальше мастер всё настроит сам.

Создать свой VPN