Протоколы
Trojan-GFW
Протокол VPN-маскировки, имитирующий легитимный HTTPS-сайт. Использует настоящий TLS-сертификат и реверс-проксирует probing-запросы на запасной веб-сервер.
Определение
Trojan-GFW — это VPN-протокол, разработанный в 2017 году с явной целью обхода Great Firewall of China. Идея: туннель имитирует обычный HTTPS-сайт, и при active probing сервер ведёт себя как настоящий веб-сервер. Имя «Trojan» — отсылка к троянскому коню: трафик внешне неотличим от обычного веб-трафика.
Существует две основные реализации: trojan (оригинал на C++) и trojan-go (порт на Go с расширениями). Современные VPN-стеки часто используют trojan-протокол внутри xray-core или sing-box.
Как работает
Trojan-GFW требует, чтобы сервер имел валидный TLS-сертификат от Let’s Encrypt (или другого CA) и реальный домен. Шаги соединения:
- Клиент устанавливает TLS к серверу на порт 443 — JA3-отпечаток обычно подделывается под Chrome через uTLS.
- После TLS-handshake клиент отправляет HTTP-like запрос с заголовком, содержащим SHA-224 от pre-shared password.
- Если password валидный — сервер открывает SOCKS5-туннель и проксирует трафик. Если нет — сервер передаёт TCP-соединение на запасной веб-сервер (
fallback), и клиент видит обычный HTML или 404.
Ключевая особенность — fallback. DPI делает active probing (шлёт запросы как обычный браузер) и получает реальный ответ от запасного веб-сервера. Это убеждает DPI, что на 443 порту обычный сайт.
Сравнение с VLESS Reality
Trojan-GFW и VLESS Reality решают одну и ту же задачу — TLS-маскировка — но разными способами.
| Параметр | Trojan-GFW | VLESS Reality |
|---|---|---|
| Сертификат | Свой Let’s Encrypt | Чужой (Microsoft и т.п.) |
| Fallback | Нужен реальный веб-сервер | Реверс-прокси к чужому сайту |
| Active probing | Возвращает реальный ответ fallback’а | Возвращает сертификат настоящего сайта |
| Сложность | Средняя (нужен домен + сертификат) | Средняя (нужны ключи x25519) |
| Уязвимость | DPI может видеть домен в SNI | DPI видит чужой популярный домен |
На 2026 год VLESS Reality архитектурно сильнее: нет проблемы регистрации белого домена и поддержки реального сайта. Trojan остаётся актуальным в проектах, где уже есть инфраструктура с веб-сервером.
Trojan-GFW и ТСПУ
ТСПУ начала эффективно блокировать классический Trojan-GFW примерно с 2024 года через комбинацию подходов. Конкретные триггеры:
- SNI-blacklisting. Домены, замеченные в трафике Trojan-серверов, попадают в чёрный список.
- Анализ паттернов трафика. Trojan имеет характерное распределение размеров пакетов после handshake, отличающееся от настоящего веб-серфинга.
- Активный пробинг. Хотя fallback работает, ТСПУ научилась флагить домены, где сертификат свежий (новый Let’s Encrypt) и трафик идёт только с одного IP-блока — типичный признак VPN.
В РФ-сетях 2026 Trojan-GFW работает, но менее стабильно, чем VLESS Reality. Часто используется как backup-протокол.
Где используется
Trojan-GFW — стандартный протокол во многих self-hosted VPN-панелях и коммерческих провайдерах, ориентированных на КНР и Иран.
v2rayN,v2rayNG,Shadowrocket— поддерживают trojan-протокол.x-ui,Marzban,Hiddify— серверные панели с управлением Trojan-туннелями.- AmneziaVPN — Trojan как один из доступных протоколов в самосозданных конфигах.
Базовая серверная установка занимает 5-10 минут: домен → Let’s Encrypt → trojan binary → nginx как fallback.
Конфигурация
Минимальный server-side конфиг (trojan-go):
run_type: server
local_addr: 0.0.0.0
local_port: 443
remote_addr: 127.0.0.1
remote_port: 80
password:
- your_password_here
ssl:
cert: /etc/letsencrypt/live/example.com/fullchain.pem
key: /etc/letsencrypt/live/example.com/privkey.pem
fallback_port: 8080
На клиенте — пара host + password, JA3-fingerprint через uTLS-эмуляцию.
Источники
- Trojan-GFW repository — github.com/trojan-gfw/trojan.
- Trojan-Go — github.com/p4gefau1t/trojan-go.
- Trojan protocol spec — trojan-gfw.github.io/trojan/protocol.
Связанные термины
- VLESS Reality — современная альтернатива.
- DPI — что Trojan обходит.
- ТСПУ — российский DPI.
- JA3 / JA4 — отпечаток, который Trojan подделывает.