Протокол Trojan: что это и как работает
Разбор протокола Trojan: принцип маскировки под HTTPS-трафик, архитектура, отличия от VLESS и Shadowsocks, преимущества и недостатки.
Что такое Trojan
Trojan — это прокси-протокол, созданный с единственной целью: сделать трафик неотличимым от обычного HTTPS-соединения. Название отсылает к троянскому коню — технология «притворяется» легитимным веб-трафиком.
Проект появился около 2019 года и быстро завоевал популярность благодаря эффективной маскировке. Исходный код открыт и доступен на GitHub.
Принцип работы
Trojan работает поверх настоящего TLS-соединения. Схема выглядит следующим образом:
- Клиент устанавливает TLS-соединение с сервером (как обычный HTTPS)
- Внутри зашифрованного TLS-туннеля клиент отправляет специальный заголовок с хэшем пароля
- Сервер проверяет хэш: если он совпадает — обрабатывает как прокси-запрос
- Если хэш не совпадает (или это обычный браузер) — сервер перенаправляет запрос на реальный веб-сайт
Ключевой момент: сервер Trojan всегда показывает настоящий TLS-сертификат и реально отдаёт веб-страницы при прямом обращении. Стороннему наблюдателю (включая системы DPI) это выглядит как обычный HTTPS-сервер.
Отличие от традиционных прокси
Традиционные прокси-протоколы имеют несколько уязвимостей с точки зрения обнаружения:
- Shadowsocks: создаёт статистически случайный поток данных, который отличается от реального TLS
- OpenVPN: имеет характерные fingerprints в TLS-handshake
- VMess (V2Ray без camouflage): трафик имеет нестандартный вид
Trojan устраняет эти проблемы, используя настоящий TLS с валидным сертификатом и маскируясь под реальный HTTPS-сервер.
Требования для развёртывания
Для работы сервера Trojan необходимы:
- Доменное имя: Trojan требует TLS, а TLS требует домен для получения сертификата
- TLS-сертификат: можно получить бесплатно через Let's Encrypt
- Веб-сервер (опционально): для отдачи реального контента при прямых запросах
Это отличает Trojan от VLESS+Reality, который не требует домена и сертификата.
Trojan vs VLESS+Reality
| Параметр | Trojan | VLESS+Reality |
|---|---|---|
| Нужен домен | ✅ Да | ❌ Нет |
| Нужен сертификат | ✅ Да (Let's Encrypt) | ❌ Нет |
| Маскировка | Настоящий HTTPS-сервер | Имитация TLS чужого домена |
| Сложность настройки | Средняя | Средняя |
| Производительность | Высокая | Выше (XTLS Vision) |
| Обнаружение | Очень сложно | Очень сложно |
Trojan vs Shadowsocks
| Параметр | Trojan | Shadowsocks |
|---|---|---|
| Тип трафика | Настоящий TLS | Случайный поток |
| Маскировка | Под HTTPS-сервер | Минимальная |
| Скорость | Высокая | Высокая |
| Устойчивость к DPI | Высокая | Средняя |
| Сложность настройки | Средняя | Низкая |
Реализации протокола
Существует несколько реализаций протокола Trojan:
- trojan (оригинальный): написан на C++, первая реализация
- trojan-go: реализация на Go с расширенными возможностями (мультиплексирование, плагины)
- Xray-core: поддерживает Trojan как один из протоколов наряду с VLESS и VMess
- Sing-Box: современное универсальное ядро с поддержкой Trojan
Наиболее распространена поддержка Trojan в Xray-core, что даёт доступ ко всей экосистеме клиентов XRay.
Клиентские приложения с поддержкой Trojan
Trojan поддерживается большинством популярных клиентов:
- iOS: ShadeVPN, Shadowrocket, Sing-Box
- Android: ShadeVPN, v2rayNG, Hiddify
- Windows: v2rayN, Hiddify
- macOS: ShadeVPN, Surge, Clash
Когда выбрать Trojan
Trojan — хороший выбор, если:
- У вас есть доменное имя и вы можете настроить TLS-сертификат
- Вам нужна максимальная маскировка под обычный веб-трафик
- Вы хотите, чтобы сервер выглядел как настоящий веб-сайт
Если домена нет или вы хотите упростить настройку — VLESS+Reality предлагает аналогичный уровень маскировки без необходимости получать сертификат.
Заключение
Trojan — элегантное решение для защиты соединений. Его главное преимущество — аутентичность: в отличие от протоколов, которые лишь имитируют HTTPS, Trojan реально является HTTPS-сервером.
ShadeVPN поддерживает Trojan как один из протоколов подключения. Клиентское приложение автоматически выбирает оптимальный протокол в зависимости от условий сети, обеспечивая стабильное и защищённое соединение.