Trojan VPN: протокол поверх TLS с паролем
Кратко
Trojan — протокол, который передаёт трафик внутри обычного TLS-соединения. Клиент подтверждает себя паролем: в начале соединения отправляется его хеш SHA224. Серверу нужны домен и действующий сертификат. Ключ выглядит как ссылка trojan://пароль@сервер:порт. В INCY его достаточно вставить кнопкой «Вставить».
Что такое Trojan
Trojan — протокол, который описан проектом Trojan-GFW и реализован в ядре Xray-core, на котором работает INCY. Идея простая: сначала устанавливается стандартное TLS-соединение, а внутри него клиент отправляет хеш пароля (hex(SHA224(password))) и запрос на подключение к нужному адресу, похожий по формату на SOCKS5. Если хеш верный, сервер пересылает трафик дальше.
Из этого следуют два свойства:
- шифрование обеспечивает TLS — отдельного шифрования в протоколе нет;
- аутентификация построена на пароле, а не на UUID, как в VLESS и VMess.
Что нужно серверу
Для Trojan серверу нужны домен и действующий сертификат: без них TLS не настроить. В этом главное отличие от Reality, которому собственный домен и сертификат не нужны. Пользователю это полезно знать только при выборе сервиса: если ключ выдал сервис, всё уже настроено, а на собственном сервере придётся подготовить домен.
В документации Xray сказано, что Trojan следует использовать с транспортной защитой TLS. Отключить её можно только для частных адресов и доверенных каналов.
Как выглядит ссылка trojan://
trojan://пароль@host:port?security=tls&sni=example.com&type=tcp#Название
По описанию форматов INCY, ссылка Trojan похожа на ссылку VLESS, но вместо UUID стоит пароль, а security по умолчанию равен tls. Параметры:
| Параметр | Что означает |
|---|---|
| пароль | Секрет для аутентификации, стоит перед @ |
| host:port | Адрес и порт сервера |
| sni | Имя сервера для TLS, при отсутствии используется peer |
| type | Транспорт: tcp, ws, grpc и др. |
| fp, alpn | Параметры TLS |
После # идёт название сервера.
Как добавить Trojan в INCY
- Скопируйте ссылку
trojan://или адрес подписки, выданный сервисом. - Откройте INCY и нажмите «Вставить» на главном экране либо «+ Добавить» во вкладке «Серверы».
- Выберите добавленный сервер и нажмите кнопку подключения.
Пошаговая инструкция — «Как добавить ключ в INCY». Если ссылка не добавляется, проверьте, что пароль в ней не изменён при копировании. О том, откуда берутся ключи, читайте на странице «Ключи».
Чем Trojan отличается от других протоколов
- От VLESS его отличает пароль вместо UUID и обязательный TLS: у VLESS защиту можно выбирать между TLS и Reality.
- От VMess — отсутствие собственного шифрования и независимость от точного времени на устройстве.
- От Hysteria2 — TCP вместо UDP: Trojan обычно работает в тех сетях, где доступен обычный HTTPS-трафик.
Когда выбирать Trojan
Trojan удобен, когда у сервера уже есть домен с сертификатом, а клиенту нужна простая схема с паролем. Если важна работа в нестабильных мобильных сетях, обратите внимание на Hysteria2. Сравнение по транспорту и защите — в таблице на странице «Протоколы VPN».
Частые вопросы
Что такое Trojan VPN?
Trojan — протокол, где данные идут внутри TLS-соединения, а клиент подтверждает себя паролем. Шифрование обеспечивает TLS, как у сайтов с HTTPS. Это один из протоколов, которые INCY поддерживает через ядро Xray.
Нужен ли Trojan свой домен и сертификат?
На стороне сервера — да: Trojan работает поверх TLS, поэтому серверу нужен домен и действующий сертификат. Пользователю ничего настраивать не нужно: адрес и параметры TLS уже записаны в ссылке trojan://, которую выдал сервис.
Можно ли использовать Trojan без TLS?
Документация Xray допускает отключение TLS только для частных адресов, например в доверенной локальной сети. В публичной сети Trojan должен использоваться с TLS. Поэтому в ключах Trojan параметр security по умолчанию равен tls.
Как добавить Trojan в INCY?
Скопируйте ссылку trojan:// или адрес подписки, откройте INCY и нажмите «Вставить» на главном экране либо «+ Добавить» во вкладке «Серверы». Затем выберите сервер и нажмите кнопку подключения. Параметры приложение возьмёт из ссылки.